在 LaTeX 中使用字符串变量

在 LaTeX 中使用字符串变量

我想定义一个包含一些可在本地更改的文本的变量。以下代码给出了我正在寻找的功能的一个示例。

\documentclass{article}
    \newcommand{\someSpecialText}{A text that can be changed locally...}
    \newcommand{\testIt}{The value of someSpecialText is : ''\someSpecialText''.}

\begin{document}

% The default behavior.
\testIt

% Here I would like to change the definition of `\someSpecialText`
% or anywhere else in the document.
\testIt

\end{document}

答案1

您可以使用标准\renewcommand来修改文本:

在此处输入图片描述

\documentclass{article}
\newcommand{\someSpecialText}{A text that can be changed locally\ldots}
\newcommand{\testIt}{The value of \texttt{someSpecialText} is : ``\someSpecialText''.}

\begin{document}

% The default behavior.
\testIt

% Here I would like to change the definition of `\someSpecialText`
% or anywhere else in the document.
{% Start of group
\renewcommand{\someSpecialText}{A text that \textit{was} changed locally\ldots}
\testIt
}% End of group

% The default behavior.
\testIt

\end{document}​

在上面的例子中,被\renewcommand放置在一个由括号和定义的组中,{}局部化重新定义。如果不希望出现这种情况,只需删除括号即可从该点开始使重新定义成为全局的。


当然,你也可以用宏形式来写,这样会比较“简短”,并且带有一些默认值。下面是一个例子:

在此处输入图片描述

\documentclass{article}
\newcommand{\testIt}[1][A text that can be changed locally\ldots]{The value passed to \texttt{testIt} is : ``#1''.}

\begin{document}

% The default behavior.
\testIt

% Here I would like to change the definition of `\someSpecialText`
% or anywhere else in the document.
\testIt[A text that \textit{was} changed locally\ldots]

% The default behavior.
\testIt

\end{document}​

\testIt设置为输出具有默认值的内容。但是,您可以提供一个可选参数来修改默认行为。

相关内容