
Я использую следующий код, чтобы нарисовать поле со знаком предупреждения, словом «предупреждение» и текстом содержания. Теперь задача — пронумеровать предупреждения. Как мне это напечатать? Например, если мое предупреждение появляется в главе 1, оно будет называться «предупреждение 1.1». Следующее предупреждение будет называться «предупреждение 1.2» и т. д.
\newcounter{myWarning}
\newcommand{\myWarning}[1]
{
\refstepcounter{myWarning}
\begin{longtable}[H]{|p{0.1\linewidth}m{0.9\linewidth}|}\hline
\textbf{WARNING} & \\
\includegraphics[width=1cm]{"CommonSubdocuments/Pictures/WarningSign"} & \textbf{#1} \\\hline
\end{longtable}
\addtocounter{table}{-1}
}
решение1
Если счетчик, скажем, foo, определен с помощью \newcounter
, то есть автоматическое определение, \thefoo
которое по умолчанию равно \arabic{foo}
, т.е. печать значений счетчика арабскими цифрами.
\newcounter{foo}[chapter]
сбрасывает счетчик каждый раз при начале новой главы (лучше: когда chapter
счетчик увеличивается на \refstepcounter
или \stepcounter
.
Чтобы изменить формат нумерации, используйте \renewcommand{\thefoo}{\thechapter.\arabic{foo}
, т. е. перед номером foo указывается номер главы.
Вот похожий подход, где это делается автоматически с помощью tcolorbox
и с использованием number within
и use counter=...
.
\documentclass{book}
\usepackage[most]{tcolorbox}
\usepackage{bclogo}
\newcounter{myWarning}[chapter]
%\renewcommand{\themyWarning}{\thechapter.\arabic{myWarning}}
\newtcolorbox[use counter=myWarning,number within=chapter]{warningbox}[1][]{enhanced jigsaw, sharp corners,title={Warning \thetcbcounter},#1}
\newcommand{\myWarning}[1][]{%
\begin{warningbox}{#1}
\textbf{WARNING}
\bcattention% Warning sign
\end{warningbox}
}
\begin{document}
\chapter{Foo}
\myWarning
\myWarning
\chapter{Foobar}
\myWarning
\end{document}