使用局部参数(例如 \thechapter)定义变量,并在任何地方使用它

使用局部参数(例如 \thechapter)定义变量,并在任何地方使用它

我正在做

\chapter{chap_one} \newcommand{\chap_oneChapter}{\thechapter}
bla bla bla
\chapter{chap_two} \newcommand{\chap_twoChapter}{\thechapter}
\chap_oneChapter and then \chap_twoChapter

我预计会打印

1,然后 2

但我却

2,然后 2

好像每次 LaTeX 找到 \chap_oneChapter 时,它都会分配 \thechapter 的值,这不是我想要的。我该如何正确执行此操作?

答案1

您是在寻找\label{..}\ref{..}吗?

\chapter{chap one vector operators} \label{chap:VectorOperators}
bla bla bla
\chapter{chap two another topic} \label{chap:AnotherTopic}
\ref{chap:VectorOperators} and then \ref{chap:AnotherTopic}

无论如何,如果这不是您想要的……

例如,粗略地说,你必须扩展它\edef。请注意,你不能_在命令名称中使用。

\chapter{chap one vector operators} \edef\VectorOperatorsChapter{\thechapter}
bla bla bla
\chapter{chap two another topic} \edef\AnotherTopicChapter{\thechapter}
\VectorOperatorsChapter{} and then \AnotherTopicChapter

这可能会在某些时候带来问题,你需要\protected@edef确保安全。因此,你可能需要定义

\makeatletter
\newcommand\savevalue[2]{\protected@edef#1{#2}}
\makeatletter

然后使用 like \savevalue\AnotherTopicChapter{\thechapter}

相关内容