
패키지를 사용하여 Procedure라는 환경을 만들었습니다 tcolorbox
. 절차에 번호가 매겨져 있으니 참고 \thechapter-\theproc
하시면 좋겠습니다 .cleveref
\label{proc:One}
다음은 를 사용하여 상호 참조하는 방법을 알 수 없는 최소 작업 예입니다 \cref
.
\documentclass{book}
\usepackage{tcolorbox}
\newcounter{proc}[chapter]
\newtcolorbox{Procedure}[1]{title=#1}
\usepackage{cleveref}
\begin{document}
\chapter{First Chapter}
\label{ch:First}
\refstepcounter{proc}
\label{proc:One}%
\begin{Procedure}%
{%begin title
\emph{\textbf{Procedure \thechapter-\theproc. }}A TITLE%
}
Some stuff
\end{Procedure}
I would like to refer to the above procedure but neither
\textbf{Procedure \cref{proc:One}} on \cpageref{proc:One}
nor
\textbf{Procedure \labelcref{proc:One}} on \cpageref{proc:One}
give the hoped-for
\textbf{Procedure 1-1} on page 1
\end{document}
답변1
Mico의 대답은 좋습니다. 여기에 또 다른 가능성이 있습니다!
기능 cleveref
은 에서 이미 제공되었으며 tcolorbox
, crefname=
또는 Crefname=
옵션을 사용하여 label=
레이블에 대한 옵션으로 사용되었습니다. tcolorbox Procedure
는 약간 재정의될 수 있습니다.
\documentclass{book}
\newcounter{proc}%[chapter]
\usepackage{tcolorbox}
\usepackage{cleveref}
\newtcolorbox[use counter=proc,number within=chapter,crefname={procedure}{procedures},Crefname={Procedure}{Procedures}]{Procedure}[2][]{%
title={\textbf{\textit{Procedure \thetcbcounter. }}#2},#1}
\begin{document}
\chapter{First}
%\setcounter{chapter}{1} % just for this example
\begin{Procedure}[label={proc:One}]{A TITLE}
Some stuff
\end{Procedure}
I would like to cross-reference the above procedure.
Now, ``\cref{proc:One} on \cpageref{proc:One}'' and
``Procedure \labelcref{proc:One} on \cpageref{proc:One}''
both work and \cref{proc:Two} works two!
\chapter{Second}
\begin{Procedure}[label={proc:Two}]{And now for something completely different}
Some stuff
\end{Procedure}
\end{document}
답변2
cleveref
카운터와 관련된 항목에 대한 상호 참조를 "레이블"하는 방법을 알려야 합니다 proc
. 이를 수행하는 한 가지 방법은 다음 지침을 사용하는 것입니다.
\crefname{proc}{Procedure}{Procedures}
지시문의 두 번째 및 세 번째 인수에는 \crefname
"레이블"의 단수형과 복수형이 포함되어야 합니다.
아래 코드에서는 Procedure
환경의 각 인스턴스와 관련된 오버헤드도 간소화하고 단순화했습니다.
\documentclass{book}
\newcounter{proc}[chapter]
% prefix the 'chapter' counter to 'proc' counter
\renewcommand{\theproc}{\thechapter-\arabic{proc}}
\usepackage{tcolorbox}
% reduce the overhead needed to create title of procedure
\newtcolorbox{Procedure}[1]{%
title=\textbf{\textit{Procedure \theproc. }}#1}
% automatically increment the 'proc' counter at start of each 'Procedure'
\usepackage{etoolbox}
\BeforeBeginEnvironment{Procedure}{\refstepcounter{proc}}
% Provide the singular and plural forms of label associated with 'proc' counter
\usepackage{cleveref}
\crefname{proc}{Procedure}{Procedures}
\begin{document}
\setcounter{chapter}{1} % just for this example
\begin{Procedure}{A TITLE} \label{proc:One}
Some stuff
\end{Procedure}
I would like to cross-reference the above procedure.
Now, ``\cref{proc:One} on \cpageref{proc:One}'' and
``Procedure \labelcref{proc:One} on \cpageref{proc:One}''
both work.
\end{document}