定义可重复使用的内容——最好在正文中,或者在标题中

定义可重复使用的内容——最好在正文中,或者在标题中

我正在写一份文件,其中人 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}

相关内容