使用 LaTeX xkeyval 進行編程

使用 LaTeX xkeyval 進行編程

我已指派完成以下任務。由於我不擅長乳膠,我想知道它的可能性。

我想在開發文件時分配參數。前任:

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

我聽說過xargsxkeyval包,但我很難理解。我仍然不確定它對我有什麼幫助。我的任務可行嗎?如果是這樣,請建議我該做什麼?


為了避免混淆,我修改了問題。

我為用戶提供了大量的爭論。對於不同的用戶我想顯示不同的內容。為此,我想透過顯示和不顯示文件的某些內容(例如章節、小節)來產生不同的輸出。

我的想法是:在編寫章節/部分時,我聲明它可以透過將參數設為 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]

如果我透過user1anduser3作為“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

相關內容