次のタスクを割り当てられました。私は 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
を「True」として渡すとuser3
、出力には次の内容が含まれるはずです。
コマンド (例) : "\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
スキップされます。