再利用可能なコンテンツを定義する --- できれば本文かヘッダーに

再利用可能なコンテンツを定義する --- できれば本文かヘッダーに

私は、セクション A の複数の場所に人物 A の名前が表示される文書を作成しています。同様に、セクション B の複数の場所に人物 B の名前が表示されます。

セクション A の直前に、たとえば PersonName という変数を定義し、それに Person A に関連する値を割り当て、それをセクション A で使用し、次にセクション B の始めに PersonName を再定義し、それをセクション B で使用する、というようにする方法はありますか。

PersonName を本体で定義できない場合、プリアンブルで宣言し、本体で異なる値を割り当て続けることはできますか?

答え1

マクロはまさにこのためのものです。 を使用して独自のマクロを定義し\newcommand{\command}{<actions>}、 を使用して再定義することが\renewcommandできます。 両方のコマンドはドキュメント内のどこにでも指定できるため、次のように実行できます。

\documentclass{article}
\begin{document}
\section{Section A}
\newcommand{\PersonName}{Person A}
Some text written by \PersonName.

\section{Section B}
\renewcommand{\PersonName}{Person B}
Some text written by \PersonName.
\end{document}

答え2

とともにscontentsパッケージを使用すると、必要な操作を簡単に実行できます。すべてメモリに保存されます。もちろん、外部ファイルを使用する場合は、環境バージョンとキーを使用できます。write-env=file.texメモリに保存するだけでなく、コンテンツを別のファイルに保存して、 を使用することもできます\input。私はメモリに保存することを好みます:)

\documentclass{article}
\usepackage{scontents}
\setupsc{store-cmd=person}
\Scontents{Person A}
\Scontents{Person B}
\begin{document}
\section{Section A}
Some text written by \getstored[1]{person}

\section{Section B}
Some text written by \getstored[2]{person}
\end{document}

関連情報