我想使用一个变量,这样我就可以定义在编译时要包含哪个文件(传递给 LaTeX 的参数 - 见下文)。
问题是我无法插入带“_”的文档名称,否则所有内容都会崩溃。有没有简单的方法来执行此类任务?
使用命令行
pdflatex "\def\testpath{my\_document}\input{my_tex_document}"
下面是我的 LaTex 文档的一个最小示例
\documentclass{article}
\title{Librairie \testpath}
\author{Author}
\begin{document}
\section{Insertion of \testpath}
\include{lib_12/\testpath}
\end{document}
答案1
我将使用以下命令:
pdflatex --jobname 'my_document' my_tex_document
这将产生一个my_document.pdf
对我来说更有意义的。然后,您还可以使用它\jobname
来访问文件名,而不会出现下划线问题。该宏的内容已被去标记化。
\documentclass{article}
\title{Librairie \texttt{\jobname}}
\author{Author}
\begin{document}
\section{Insertion of \texttt{\jobname}}
\input{lib_12/\jobname}
\end{document}
然后,您应始终确保不使用\input{\jobname}
和编译没有参数的文档--jobname
。否则,您将陷入无限循环。
如果您需要仅编译文档的某些章节(使用 包含所有章节\include
),请使用以下命令。以下是仅编译论文引言的示例:
pdflatex --jobname introduction '\includeonly{introduction}\input{thesis}'
答案2
你可以试试
pdflatex "\edef\testpath{\detokenize{my_document}}\input{my_tex_document}"