从 doxygen 生成的 tex 文件生成一个 pdf。一个函数原型非常长,在相应的 tex 文件中生成一行,长度有 1122 个字符。
运行 pdflatex 时,没有生成 pdf - 没有给出错误
奇怪的是,长度并不是导致错误的原因。在每个大写字母之前,都放置了转义序列 +。似乎该行上的转义序列太多:如果我删除其中一个(并添加相同数量或更多的正常字符),则会生成 pdf。
我怎样才能增强 pdflatex 的功能,以便它可以处理更多的转义序列?
我在 Windows7 上通过命令 shell 运行它,使用来自 MikTex 的二进制文件。
pdf 生成失败的行是:
void \hyperlink{a00001_a08fada22bcd057759e344830bbaac50e}{xx\+aa\+bb\+cc\+\_\+\+dd} (int ee\+ff\+gg, \hyperlink{a00001_a6f71136ece8b9a87173c5c86bc6f248f}{aa\+bb\+cc\+\_\+\+ee\+bb\+ff\+\_\+t} eebb\+ffed, \hyperlink{a00001_a33a2104b20eef6806443b52c2b064159}{aa\+bb\+cc\+\_\+\+ee\+bb\+hh\+\_\+t} r, \hyperlink{a00001_af69c4d93122a8eb40c12d6ceae7d682e}{aa\+bb\+cc\+\_\+\+ee\+bb\+ii\+\_\+t} s, \hyperlink{a00001_aab88436ec45f3c97141d5e4ed40dec81}{aa\+bb\+cc\+\_\+\+ee\+bb\+jj\+\_\+t} t, \hyperlink{a00001_a863a5fdf396307748fcdc46b1f5e2fb9}{aa\+bb\+cc\+\_\+\+ee\+bb\+kk\+\_\+t} u, \hyperlink{a00001_a0209334ce20c0d6bd53a72771867a098}{aa\+bb\+cc\+\_\+\+ee\+bb\+ll\+\_\+t} v, \hyperlink{a00001_ab028b29cfe99d78f2d1f6fa163e24eee}{aa\+bb\+cc\+\_\+\+ee\+mm\+nn\+\_\+t} w, \hyperlink{a00001_ae4306c7f1ad814eb2f719542628238f9}{aa\+bb\+cc\+\_\+\+ee\+mm\+oo\+\_\+t} x, \hyperlink{a00001_a4febae17a1d3e78d23df7995a0caf4f5}{aa\+bb\+cc\+\_\+\+ee\+pp\+qq\+\_\+t} y, \hyperlink{a00001_aee53a9af1c43bb5e2b3096c2355a9ec8}{aa\+bb\+cc\+\_\+\+ee\+rr\+ss\+tt\+\_\+t} z)
修改后的 pdf 生成成功行
\+
被替换为xx
:
void \hyperlink{a00001_a08fada22bcd057759e344830bbaac50e}{xxxxaa\+bb\+cc\+\_\+\+dd} (int ee\+ff\+gg, \hyperlink{a00001_a6f71136ece8b9a87173c5c86bc6f248f}{aa\+bb\+cc\+\_\+\+ee\+bb\+ff\+\_\+t} eebb\+ffed, \hyperlink{a00001_a33a2104b20eef6806443b52c2b064159}{aa\+bb\+cc\+\_\+\+ee\+bb\+hh\+\_\+t} r, \hyperlink{a00001_af69c4d93122a8eb40c12d6ceae7d682e}{aa\+bb\+cc\+\_\+\+ee\+bb\+ii\+\_\+t} s, \hyperlink{a00001_aab88436ec45f3c97141d5e4ed40dec81}{aa\+bb\+cc\+\_\+\+ee\+bb\+jj\+\_\+t} t, \hyperlink{a00001_a863a5fdf396307748fcdc46b1f5e2fb9}{aa\+bb\+cc\+\_\+\+ee\+bb\+kk\+\_\+t} u, \hyperlink{a00001_a0209334ce20c0d6bd53a72771867a098}{aa\+bb\+cc\+\_\+\+ee\+bb\+ll\+\_\+t} v, \hyperlink{a00001_ab028b29cfe99d78f2d1f6fa163e24eee}{aa\+bb\+cc\+\_\+\+ee\+mm\+nn\+\_\+t} w, \hyperlink{a00001_ae4306c7f1ad814eb2f719542628238f9}{aa\+bb\+cc\+\_\+\+ee\+mm\+oo\+\_\+t} x, \hyperlink{a00001_a4febae17a1d3e78d23df7995a0caf4f5}{aa\+bb\+cc\+\_\+\+ee\+pp\+qq\+\_\+t} y, \hyperlink{a00001_aee53a9af1c43bb5e2b3096c2355a9ec8}{aa\+bb\+cc\+\_\+\+ee\+rr\+ss\+tt\+\_\+t} z)
答案1
显然\+
可能与制表符有关,但仅限于制表符环境中(在\begin{tabbing}
和\end{tabbing}
块内)。请参阅https://en.wikibooks.org/wiki/LaTeX/Command_Glossary和http://noodle.med.yale.edu/latex/latex2e-html/ltx-58.html
\newcommand{\+}{}
如果在 Jungle 的开头之前某处定义\+
,则命令将扩展为 void,生成成功。在 doxygen 中,可以执行此操作,例如,在 doxyfile 配置文件中将header.tex
其提供给 doxygen 。LATEX_HEADER