\ref{}를 사용하여 형식화된 방식으로 여러 카운터에 대한 참조를 어떻게 가질 수 있습니까?

\ref{}를 사용하여 형식화된 방식으로 여러 카운터에 대한 참조를 어떻게 가질 수 있습니까?

counterA내 문서 에는 두 개의 카운터가 있고 counterB.

내 문서의 참조를 또는 등 \ref{}으로 인쇄하고 싶습니다 . 여기서 숫자는 을 나타내고 문자는 를 나타냅니다 .1.a)2.counterAcounterB

가능합니까? 내가 어떻게 해?

\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}

여기에 이미지 설명을 입력하세요

답변1

counterB명령어를 사용하여 이라는 카운터 변수를 생성할 때마다 LaTeX는 상호 참조를 생성하기 위해 레이블에 다른 정보를 "접두사"로 붙이는 데 사용할 수 있는 \newcounter매크로를 설정합니다 . \p@counterB즉, 다음을 입력할 수 있습니다.

\makeatletter
\renewcommand\p@counterB{\thecounterA.}
\makeatother

LaTeX의 현재 값 counterA+ a .에 대한 LaTeX의 값 표현 앞에 접두사를 붙입니다 counterB.

전체 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}

답변2

다음 명령을 사용할 수 있습니다.

\renewcommand{\thecounterB}{\textbf{\thecounterA}.\alph{counterB})}

완전한 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}

관련 정보