Doxygen生成文档时如何修改已默认加载的LaTeX包选项
Doxygen 替换默认inputenc包配置的官方方案
- Doxygen 原生没有提供专门配置项用来删除、替换默认加载的LaTeX依赖包,
EXTRA_PACKAGES参数的设计逻辑仅为在默认加载的包列表后追加用户自定义包,不会覆盖已有加载项,这也是之前配置后出现inputenc选项冲突的直接原因。 - 不需要额外编写bash/python文本替换脚本,使用Doxygen官方支持的自定义LaTeX头模板功能即可解决问题,操作步骤如下:
- 先执行一次完整的Doxygen生成流程,在输出的
latex目录下找到自动生成的refman.tex文件,将文件开头到\begin{document}标记前的所有内容复制出来,保存为项目源码目录下的自定义模板文件,例如命名为custom_latex_header.tex。 - 打开自定义模板文件,找到默认生成的
\usepackage[utf8]{inputenc}行,直接替换为兼容特殊字符需要的配置:
- 先执行一次完整的Doxygen生成流程,在输出的
\usepackage{ucs} \usepackage[utf8x]{inputenc}
- 移除之前CMake配置中
DOXYGEN_EXTRA_PACKAGES里和ucs、inputenc相关的内容,新增配置指向自定义头文件路径:
set(DOXYGEN_LATEX_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/path/to/your/custom_latex_header.tex)
- 注意事项:
- 该方案为Doxygen官方文档明确记载的LaTeX输出自定义方式,配置完成后所有自动化构建会直接使用修改后的模板生成
refman.tex,不会再出现默认utf8选项的inputenc加载行,从根源避免包冲突。 - 如果后续升级Doxygen大版本,建议重新导出一次默认的refman.tex头部内容更新自定义模板,避免Doxygen调整默认头结构导致LaTeX编译失败。
- 该方案为Doxygen官方文档明确记载的LaTeX输出自定义方式,配置完成后所有自动化构建会直接使用修改后的模板生成
内容的提问来源于stack exchange,提问作者Mohamed Abdelaal
相关产品推荐
相关产品推荐

