Ich habe zwei Zähler in meinem Dokument counterA
und counterB
.
Ich möchte, dass die Referenzen in meinem Dokument als oder usw. \ref{}
gedruckt werden , wobei die Ziffer auf und der Buchstabe auf verweist .1.a)
2.
counterA
counterB
Ist das möglich? Wie kann ich das machen?
\documentclass{article}
\begin{document}
\newcounter{counterA}
\setcounter{counterA}{0}
\newcounter{counterB}
\setcounter{counterB}{0}
\refstepcounter{counterA}
\refstepcounter{counterB}
\label{First_Label}
I get: \ref{Second_Label}. I would like \textbf{2.}\,b)
Vestibulum lectus metus, tincidunt at fermentum non, pellentesque at lorem. Vivamus nisl sem, tempor ac mi et, elementum feugiat justo. Pellentesque tristique consequat molestie.
\bigskip
\refstepcounter{counterA}
\refstepcounter{counterB}
\label{Second_Label}
I get: \ref{First_Label}. I would like \textbf{1.}\,a)
Morbi nec nibh nulla. Cras posuere erat vitae lacus convallis, ut consequat urna dignissim.
\end{document}
Antwort1
Jedes Mal, wenn man eine Zählervariable mit dem Namen , beispielsweise counterB
, mit einer \newcounter
Anweisung erstellt, richtet LaTeX ein Makro namens ein \p@counterB
, das verwendet werden kann, um dem Etikett andere Informationen „vorzusetzen“, um einen Querverweis zu erstellen. Sie könnten beispielsweise Folgendes eingeben:
\makeatletter
\renewcommand\p@counterB{\thecounterA.}
\makeatother
um der LaTeX-Darstellung des aktuellen Werts von counterA
plus a ein Präfix .
vor die LaTeX-Darstellung des Werts von zu setzen counterB
.
Ein vollständiges MWE:
\documentclass{article}
\newcounter{counterA}
\newcounter{counterB}
\renewcommand\thecounterA{\arabic{counterA}} % arabic numbering
\renewcommand\thecounterB{\alph{counterB})} % alphabetic numbering
\makeatletter
\renewcommand\p@counterB{\thecounterA.}
\makeatother
\begin{document}
% need to increment the counters via \refstepcounter
\refstepcounter{counterA} \label{refA}
\refstepcounter{counterB} \label{refB}
Here's a cross-reference to item \ref{refB}.
\end{document}
Antwort2
Sie können den folgenden Befehl verwenden:
\renewcommand{\thecounterB}{\textbf{\thecounterA}.\alph{counterB})}
Hier ist ein vollständiges MWE:
% arara: pdflatex
\documentclass{article}
\newcounter{counterA}
\setcounter{counterA}{0}
\newcounter{counterB}
\setcounter{counterB}{0}
\renewcommand{\thecounterB}{\textbf{\thecounterA}.\alph{counterB})}
\begin{document}
\refstepcounter{counterA}
\refstepcounter{counterB}
\label{First_Label}
I get: \ref{Second_Label}. I would like \textbf{2.}\,b)
Vestibulum lectus metus, tincidunt at fermentum non, pellentesque at lorem. Vivamus nisl sem, tempor ac mi et, elementum feugiat justo. Pellentesque tristique consequat molestie.
\bigskip
\refstepcounter{counterA}
\refstepcounter{counterB}
\label{Second_Label}
I get: \ref{First_Label}. I would like \textbf{1.}\,a)
Morbi nec nibh nulla. Cras posuere erat vitae lacus convallis, ut consequat urna dignissim.
\end{document}