在 include/input 中使用变量

在 include/input 中使用变量

我想使用一个变量,这样我就可以定义在编译时要包含哪个文件(传递给 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}"

相关内容