我想对我的 latex 文档中的可选标签进行条件引用,请参阅下面的最小工作示例。因此,如果标签存在于文档中的某个位置,那么将在文档中的其他位置对该标签进行引用。我正在使用“etool”包,但我不确定那里的任何命令是否对我的目的有用。
\documentclass{article}
\begin{document}
\section{Method}
...the method is based on Anderson et. al 2012,
% CONDITIONAL FUNCTION
% IF \label{sec-appendix} EXISTS THEN:
{a summary of which is given in Appendix \ref{sec-appendix}.}
% ELSE
{not explained here.}
% END OF CONDITIONAL FUNCTION
\appendix
\section{Appendix}
\label{sec-appendix}
\end{document}
答案1
\label{xyz}
我们可以利用定义的事实\r@xyz
:
\documentclass{article}
\makeatletter
\newcommand{\iflabelexists}[3]{\@ifundefined{r@#1}{#3}{#2}}
\makeatother
\begin{document}
\section{Method}
...the method is based on Anderson et. al 2012,
\iflabelexists{sec-appendix}
{a summary of which is given in Appendix~\ref{sec-appendix}.}
{not explained here.}
\appendix
\section{Appendix}
\label{sec-appendix}
\end{document}
当然,经过几次运行后,情况就会稳定下来。如果你\end{document}
之前添加\appendix
,你会看到。
它etoolbox
更简单,但本质上是等效的:
\usepackage{etoolbox}
\newcommand{\iflabelexists}[3]{\ifcsundef{r@#1}{#3}{#2}}