引用“上”或“下”

引用“上”或“下”

我正在一个大数字列表中编写文本。我可以通过\label和引用另一个数字ref,这样就可以得到数字(这很完美)。但是是否可以将其更改为 infra/supra(取决于数字在文档中是出现在后面还是前面)+ 一些静态文本 + 引用的数字\item

所以我想用 LaTeX 打印的内容是:

\item [text]
\item [text]
\item [text]
\item [text] \label{1}
\item [text]
\item [text]
\item [text] \ref{1} ⇒ supra *static text* 4
\item [text] \ref{2} ⇒ infra *static text* 11
\item [text]
\item [text]
\item [text] \label{2}
\item [text]

答案1

etoolbox可以保留迄今为止在文档中定义的标签列表,并根据标签是否在列表中显示不同的字符串。

梅威瑟:

\documentclass{article}
\usepackage{etoolbox}

\newcommand{\storelabel}[1]{%
    \label{#1}%
    \listcsgadd{Stored}{#1}%
}
\newcommand{\storeref}[1]{%
    \ifinlistcs{#1}{Stored}{supra}{infra} static text \ref{#1}%
}

\begin{document}
\begin{enumerate}
\item text
\item text \storelabel{first}
\item text
\item text \storeref{first}
\item text
\item text \storeref{second}
\item text
\item text \storelabel{second}
\end{enumerate}
\end{document}

结果:

在此处输入图片描述

请注意,定义了两个新命令来代替\label\ref。 如果需要,您还可以修补现有命令以包含列表处理(请参阅手册etoolbox)。

答案2

使用的方法refcount

在此处输入图片描述

% MWE taken from http://tex.stackexchange.com/a/360869/5764
\documentclass{article}

\usepackage{refcount}

\newcommand{\storelabel}{\label}
\newcommand{\storeref}[1]{%
  \mbox{}% Not needed if you always have text in an \item
  \ifnum\getrefnumber{#1}<\value{enumi}\relax supra \else infra \fi
  static text \ref{#1}%
}

\begin{document}

\begin{enumerate}
  \item text
  \item text \storelabel{first}
  \item text
  \item text \storeref{first}
  \item text
  \item text \storeref{second}
  \item text
  \item text \storelabel{second}
\end{enumerate}

\end{document}

它可能无法在嵌套列表中按预期工作。但如果需要,可以更新它以适应这种情况。

相关内容