latex - 如何使用 doxygen 生成带有自定义乳胶样式表和命令的 pdf?
问题描述
如何使用 doxygen 生成带有自定义乳胶样式表和命令的 pdf?
我需要记录此代码:
~\doxygenLaTex> more main.cpp
#include <iostream>
//! \page MainPage Main program
//! This program is meant to say hello!
int main() {std::cout << "Hello World!"; return 0;}
我需要使用我的自定义样式获取一个 pdf 文档,mystyle.sty
其中包括自定义 LaTex 命令,例如\mytable
,我需要在文档中使用:
~\doxygenLaTex> more mystyle.sty
\NeedsTeXFormat{LaTeX2e}[1999/01/01]
\ProvidesPackage{mystyle}[2018/05/28]
\newcommand*{\mytable}{%
\begin{tabular}{ll}
1 & 2 \\
3 & 4 \\
\end{tabular}
}
\endinput
所以我寻找如何使用 doxygen :
~\doxygenLaTex> ls
Doxyfile main.cpp mainpage.dox mystyle.sty
~\doxygenLaTex> more .\mainpage.dox
//!
//! \mytable
//!
//! \page MainPage
//!
~\doxygenLaTex> grep LATEX_EXTRA_STYLE .\Doxyfile
# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
LATEX_EXTRA_STYLESHEET = mystyle.sty
~\doxygenLaTex> grep ALIASES .\Doxyfile
ALIASES = "mytable=\\mytable"
尽管阅读了文档,但它没有用:我将命令作为文本!运行doxygen; cd latex; make pdf; AcroRd32.exe refman.pdf
给出:
我用谷歌搜索了这个并找到了Doxygen: include custom latex command或How to get Doxygen to identify custom latex command不幸的是,这对我没有帮助。
尝试了更多的东西,但也没有奏效:
~\doxygenLaTex> git diff
diff --git a/Doxyfile b/Doxyfile
-ALIASES = "mytable=\\mytable"
+ALIASES = "mytable=\mytable"
~\doxygenLaTex> git diff
diff --git a/Doxyfile b/Doxyfile
-ALIASES = "mytable=\\mytable"
+ALIASES = "mytable=@mytable"
问题似乎是我得到了这种东西:
~\doxygenLaTex\latex> more .\_main_page.tex
This program is meant to say hello!
\textbackslash{}mytable
但不是
~\doxygenLaTex\latex> more .\_main_page.tex
This program is meant to say hello!
\mytable
我错过了什么 ?
附加问题:有没有办法不使用doxygen.sty
但实际上只是 mystyle.sty
为了避免任何类型的冲突?
~\doxygenLaTex\latex> grep usepackage refman.tex
\usepackage{doxygen}
\usepackage{mystyle}
弗兰克
注意:Windows 10,doxygen 1.9.1
编辑
在发布前进行谷歌搜索时,我测试了\latexonly
. 这个
~\doxygenLaTex> git diff
diff --git a/Doxyfile b/Doxyfile
-ALIASES = "mytable=\\mytable"
+ALIASES = "\\latexonly mytable=\\mytable \\endlatexonly"
或这个
~\doxygenLaTex> git diff
diff --git a/Doxyfile b/Doxyfile
-ALIASES = "mytable=\\mytable"
+ALIASES = "\latexonly mytable=\\mytable \endlatexonly"
没有工作。但是,事实上,事实证明这
~\doxygenLaTex> git diff
diff --git a/mainpage.dox b/mainpage.dox
-//! \mytable
+//! \latexonly \mytable \endlatexonly
确实有效并产生了几乎我预期的结果:
但现在我有另一个问题:真正\mytable
的没有表,需要在这里设置:
~\doxygenLaTex\latex> more .\_main_page.tex
This program is meant to say hello!
\mytable
但实际上这里
~\doxygenLaTex\latex> more .\refman.tex
\begin{document}
\mytable
有没有办法在这里找到 LaTex 命令?理想情况下不使用doxygen.sty
但实际上只是 mystyle.sty
为了避免任何类型的冲突?
解决方案
当我理解正确时,您想\mytable
在 LaTeX 输出/生成的 pdf 中使用 LaTeX 命令。
完成的大多数步骤都是正确的,认为问题在于\mytable
LaTeX 命令而不是 doxygen 命令,因此您必须在 doxygen 解析的注释中说明它。
为此,有几种可能性:
- 评论中的
\latexonly ... \endlatexonly
ie添加:\latexonly \mytable \endlatexonly
- 用它作为公式
\f[ \mytable \f]
当然,您可以将上述代码段打包到一个专用的ALIASES
.
所以总而言之,我使用了:
多西文件
LATEX_EXTRA_STYLESHEET = mystyle.sty
主文件
#include <iostream>
/** \page MainPage Main program
* This program is meant to say hello!
*
* \latexonly
* \mytable
* \endlatexonly
*
* \f[ \mytable \f]
*/
int main() {std::cout << "Hello World!"; return 0;}
mystyle.sty
\NeedsTeXFormat{LaTeX2e}[1999/01/01]
\ProvidesPackage{mystyle}[2018/05/28]
\newcommand*{\mytable}{%
\begin{tabular}{ll}
1 & 2 \\
3 & 4 \\
\end{tabular}
}
推荐阅读
- python - FFT预测、金融
- ruby - 使用 Chrome 设置代理的 Ruby Selenium-Webdriver 选项
- asp.net - 如何在asp.net core中连接amazon rds
- c# - Asp.Net Core 2.1 Windows 身份验证。HttpContext.User.Identity.Name 在 IIS 中不起作用
- gitlab - GitLab CE 升级失败
- entity-framework - 外键id设置为0
- c# - 虚拟路径到物理路径
- crash - 用于显示台球的铯片段着色器错误
- scala - 用于处理具有变量类型的数据的案例类中的嵌套 Spark Row?
- azure - 在 Azure 中将 Kudu 与多实例应用服务一起使用