我被分配了以下任务。由于我不擅长使用 Latex,所以我对它的可能性感到疑惑。
我想在开发文档时分配参数。例如:
file1.tex
\chapter chapter_name1 [arg1=true]or [arg1]
file2.tex
\chapter chapter_name2 [arg1][arg2]
\include<file3> (here it should go to file3.tex and again checks there relevant argument in order to include correct chapter/section)
file3.tex
\section chapter_name1 [arg2][arg3]
\subsection sunsection_name [arg4]
myfile.tex
它有一些循环和解析器来分割输入参数以包含相关文件。
在终端编译时我应该决定(通过传递参数)将哪一章插入到myfile.pdf
文件中。例如:
pdflatex "\def \parameter {arg2 arg3} input{myfile.tex}"
那么myfile.pdf
应该
chapter_name2
section_name1
我听说过xargs
和xkeyval
软件包,但我几乎不了解它们。我仍然不确定它们对我有什么帮助。我的任务可以完成吗?如果可以,请建议我应该怎么做?
为了避免混淆,我修改了这个问题。
我为用户准备了大量内容。对于不同的用户,我想显示不同的内容。为此,我想通过显示和不显示文档的某些内容(例如章节、部分和子节)来产生不同的输出。
我的想法是:在编写章节/部分时,我通过将参数设置为 true 或 false 来声明它可以向哪种用户显示。
如果 user1==true 那么它应该在 user1.pdf 中
例如
宏是(例如):\Modifiedchapter [bool arg1][bool arg2][bool arg3]
\Modifiedchapter <chapterName1> [user1==true][user2==false][user3==false]
\Modifiedchapter <chapterName2> [user1==true][user2==true][user3==false]
\Modifiedsection <sectionName1> [user1==true][user2==true][user3==true]
如果我传递user1
并且user3
为“True”,那么我的输出应该包含
命令(例如):“\def\arg1=true,arg2=false,arg1=true \input{myfile}”
chapterName1
sectionName1
我怎样才能做到这一点?
答案1
这是个好主意不是\chapter
更改标准命令(如和 )的语法\section
。尽管 LaTeX 允许您优化系统的任何部分,但利用这种灵活性将使您的文档片段难以在任何其他上下文中处理。
您已经在使用\include
旨在支持部分编译的功能,这似乎是您的实际用例。
使用时\include
你应该不是使用文件扩展名,你应该只使用
\include{file3}
否则 LaTeX 将找不到相关aux
文件。
添加\includeonly{file3}
(可以通过类似于您的示例的命令行完成,或者直接添加到您的主文件)将导致file3
被包含并且任何其他通过引用的文件\include
被跳过。