doxygen latex make输入编码错误失败

时间:2014-02-11 13:40:37

标签: pdf latex doxygen miktex

我在eclipse中有一个git repo项目,我一直在使用doxygen(v1.8.4)进行记录。 如果我运行乳胶制作项目的新克隆,它运行良好,PDF制作。 但是,如果我然后运行doxy构建,完成OK,那么然后尝试运行latex make,它就失败了

! Package inputenc Error: Keyboard character used is undefined 
(inputenc)                in inputencoding `utf8'. 

See the inputenc package documentation for explanation. 
Type  H <return>  for immediate help. 
 ... 

我尝试通过将DOXYFILE_ENCODING设置为ISO-8859-1而不改变结果来切换doxyfile的编码...我该如何解决这个问题?感谢。

编辑:据我所知,在我的文件中没有使用非UTF-8字符,错误之前引用的文件非常短,并且肯定没有非UTF-8字符。我甚至尝试清理我的乳胶输出目录,并从头开始构建,没有运气......

编辑:我认为只有的doxy构建才能正常运行。它没有显示任何错误,但它应该,例如运行DOT并构建大约10个图。控制台输出表示运行点,但它并没有像生成图表那样生成图形(n / x)...

2 个答案:

答案 0 :(得分:3)

简短回答:因此,通过缓慢的消除过程,我发现这是由一个文件中的单个撇号引起的,该文件似乎已经构建并且没有错误!

答案很长:首先我使用项目属性将编码从默认的Cp1252翻转到UTF-8。然后我开始逐个删除文件,直到每次删除后重建和重新生成,直到make成功运行。我重新添加了所有文件,但删除了最近删除的文件中的内容并测试了make - 以确认它是此文件而此文件导致了该问题。制作好了。所以我将内容粘贴回空文件,并开始删除文件中较小和较小的部分,每次重新重建和重新制作,直到我留下一个没有撇号的好制作和一个坏的... ...我只是重新输入撇号(因为这会强制它成为UTF-8字符)并成功!!这样一个烦人的错误!

答案 1 :(得分:0)

老兄,你做得很难。为什么不使用python为你做的工作:

f = open(fn,"rb")
data = f.read()
f.close()
for i in range(len(data)):
    ch = data[i]
    if(ch > 0x7F): # non ASCII character
        print("char: %c, idx: %d, file: %s"%(ch,i,fn))
        str2 = str(data[i-30:i+30])#.decode("utf-8")
        print("txt: %s" % (str2))