标签可以“重置”吗,以便可以多次输入同一个文件?

标签可以“重置”吗,以便可以多次输入同一个文件?

我正在尝试在公司实施 LaTeX,以避免大量的手动工作和错误

答案1

欢迎!您可以直接将内容附加到标签上(非常感谢 Phelype Oleinik 和 cfr 指出附加功能可用hyperref!)\MyTag

\documentclass{memoir}
\usepackage{graphicx}
% \usepackage{hyperref}
% \usepackage{cleveref}
\newcommand{\MyLabel}[1]{\label{\MyTag#1}}
\newcommand{\MyRef}[1]{\ref{\MyTag#1}}

\pagestyle{empty}

\begin{document}
\setcounter{chapter}{1}

\newcommand{\MyTag}{Qn-11}
\input{fileex}

\renewcommand{\MyTag}{Qn-12}
\input{fileex}

\end{document}

这要求您将中的\label和分别替换\ref\MyLabel和:\MyReffileex.tex

\section{Header}

The component setting is \MyTag. See figure \MyRef{fig:setting}.

\begin{figure}[htbp]
\includegraphics[width=3cm]{example-image-a}
\caption{Caption}
\MyLabel{fig:setting}
\end{figure} 

在此处输入图片描述

我已经测试过,它可以与 一起使用hyperrefcleveref也可以与 一起使用。我无法让它与 一起使用,但和fancyref之间似乎存在一些冲突。可以找到有关这些相互(不)兼容性的详细讨论memoirfancyref这里

在当前设置中,您还可以通过 添加标签\MyTag

\documentclass{memoir}
\usepackage{graphicx}
\pagestyle{empty}
\let\oldlabel\label
\let\oldref\ref
\renewcommand{\label}[1]{\oldlabel{\MyTag#1}}
\renewcommand{\ref}[1]{\oldref{\MyTag#1}}
\begin{document}
\setcounter{chapter}{1}

\newcommand{\MyTag}{Qn-11}
\input{fileex}

\renewcommand{\MyTag}{Qn-12}
\input{fileex}

\end{document}

如上所述,如果您使用更多花哨的引用方法,此解决方案可能不起作用。

相关内容