ドキュメントの内容を制御するユーザーインターフェイスの作成

ドキュメントの内容を制御するユーザーインターフェイスの作成

私は、誰か (たとえば、LaTeX に詳しくない人) が特定のドキュメントのコンテンツを制御できるようにする最も簡単な方法を探しています。さらに詳しく説明すると、私は、約 30 個の「小さな」ドキュメント (それぞれが基本的に「メイン」ドキュメント内のセクションまたはサブセクション) のさまざまな組み合わせでほぼ排他的に構成された、同じ形式の「​​メイン」ドキュメントのコレクションを作成しようとしています。重要な注意点は、「小さな」ドキュメントは頻繁にマイナー アップデートされるため、別のファイルから「メイン」ドキュメントに呼び出されるということです (小さな変更が発生したときに多くの「メイン」ドキュメントを手動で変更する必要がないようにするため)。

これまで私が到達したのは、一般的な「メイン」文書です。この文書には、どの「小さな」文書が「メイン」文書に表示されるかを制御するトグルがプリアンブルに含まれています。この時点ではすべて正常に動作しており、「メイン」文書を作成する人が行う唯一の手順は、作成中の「メイン」文書に特定の「小さな」文書を表示したくない場合は、プリアンブルの%前に「 」\toggletrueとコメントすることです (たとえば、以下の「TheFirstDocument」は「メイン」文書には表示されません)。また、私が以下に記述したものは、もちろんコンパイルを意図したものではなく (ファイルとパッケージが不足しています)、一般的な例を示すためだけのものです。

私の質問は、おそらく「メイン」文書を作成する人が、含めたい「小さな」文書のボックスをチェックするだけで済むような、非常に使いやすいユーザー インターフェイスを作成する方法はあるでしょうか? LaTeX 自体ではこれが不可能な場合、これを実現するためにここから最も簡単に実行できる方法を提案してくれる人はいますか?

\documentclass{article}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Select Desired Documents %%%

\newtoggle{TheFirstDocument}
%\toggletrue{TheFirstDocument}

\newtoggle{TheSecondDocument}
\toggletrue{TheSecondDocument}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\iftoggle{TheFirstDocument}
{ExecuteMetaData[TheFirstDocument.tex]{tag}
}
{%nothing
}

\iftoggle{TheSecondDocument}
{ExecuteMetaData[TheSecondDocument.tex]{tag}
}
{%nothing
}

\end{document}

答え1

回答の LaTeX 部分:

Main.texまず、 3 つのファイルに分割できます。

InitMain.tex\documentcalssには、、2 番目のファイルに必要ないくつかのパッケージ、および\newtoggle必要なすべての が含まれています。

\documentclass{article}
\usepackage{etoolbox}

\newtoggle{TheFirstDocument}
\newtoggle{TheSecondDocument}

2番目のファイル(Main_A.tex\inputにはInitMain.tex\toggletrue必要なすべての が含まれ、最後に\inputが含まれます。Main.tex

\input{InitMain}
\toggletrue{TheFirstDocument}
%\toggletrue{TheSecondDocument}
\input{Main}

Main.tex追加の s やその他の必要なものを含めることができます。\usepackageもちろん、小さなドキュメントを条件付きでここに入力します。

% additional preamble stuff

\begin{document}

\iftoggle{TheFirstDocument}
{\input{TheFirstDocument.tex}
}
{%nothing
}

\iftoggle{TheSecondDocument}
{\input{TheSecondDocument.tex}
}
{%nothing
}

\end{document}

Main_A.texその後は、最終的なドキュメントを取得するためにコンパイルするだけです。

これにより、ユーザーは小さなファイルを編集するだけで、さまざまな設定のMain_A.texファイルなどを作成できるようになります。Main_B.texMain_C.tex

残りの答えは、オペレーティング システム、使用可能なスクリプト言語、スキルなどによって異なります。 を読み取りMain_A.tex、チェックボックスを初期化し、最後に%記号を追加または削除した新しいバージョンを書き込むスクリプトを作成できます。 たとえば、Windows では、jscript を使用して、示したような GUI を構築できます。 コンピューターに LaTeX がインストールされている場合は、たとえば latexmk (これは使用したことがない) を呼び出してダイアログから直接最終ドキュメントを生成するボタンを追加することもできます。

関連情報