重新贴标签?

重新贴标签?

我面临一个问题,需要“可靠”的标签。

我正在研究一种机制,使用两个不同的参数两次运行 tex 文件的一部分,以便写出文本的不同部分。通过使用 \input 和之前设置的变量。在最终的 PDF 中,两种排列应该一个接一个地打印。

该机制的工作原理如下:

...
\DefCurrentLanguage{DE}
\input{content.tex}
\DefCurrentLanguage{EN}
\input{content.tex}
...

当我使用标签时,这给我带来了一些问题。请参阅此处的简化版本(没有 \input,但有清晰的文本)

\documentclass{scrbook}
\usepackage{etoc}
\usepackage{hyperref}
\counterwithout{section}{chapter}

\begin{document}

% Usually this is input my \input{myfile.txt} with the first option
\chapter{GERMAN}
\etocsettocstyle{\section*{Inhalt}}{}
\etocsettocdepth.toc{subsection}
\localtableofcontents
\setcounter{section}{0}
\section{Eins}
Referenz auf zwei: \ref{mylabel}
\subsection{Ein.Eins}
\section{Zwei}\label{mylabel}


% Usually this is input my \input{myfile.txt} with the second option
\chapter{ENGLISH}
\etocsettocstyle{\section*{Content}}{}
\etocsettocdepth.toc{subsection}
\localtableofcontents
\setcounter{section}{0}
\section{One}
Refenence to two: \ref{mylabel}
\subsection{One.One}
\section{Two}\label{mylabel}
\end{document}

我需要在第一种情况下将标签 mylabel 重命名为 DE.mylabel,在第二种情况下将其重命名为 EN.mylabel。

我猜我需要创建一个单独的 \label 和 \ref 命令?有什么提示吗?按原样使用,当然会导致多个定义的标签

格奥尔格

答案1

感谢@Teepeemm:

\documentclass{scrbook}
\usepackage{etoc}
\usepackage{hyperref}
\counterwithout{section}{chapter}

\begin{document}

% Usually this is input my \input{myfile.txt} with the first option
\def\lang {DE}
\chapter{GERMAN}
\etocsettocstyle{\section*{Inhalt}}{}
\etocsettocdepth.toc{subsection}
\localtableofcontents
\setcounter{section}{0}
\section{Eins}
Referenz auf zwei: \ref{\lang mylabel}
\subsection{Ein.Eins}
\section{Zwei}\label{\lang mylabel}


% Usually this is input my \input{myfile.txt} with the second option
\def\lang {EN}
\chapter{ENGLISH}
\etocsettocstyle{\section*{Content}}{}
\etocsettocdepth.toc{subsection}
\localtableofcontents
\setcounter{section}{0}
\section{One}
Refenence to two: \ref{\lang mylabel}
\subsection{One.One}
\section{Two}\label{\lang mylabel}
\end{document}

相关内容