我使用以下代码绘制一个带有警告标志、警告字样和内容文本的框。现在的任务是给警告编号。我该如何打印它?例如,如果我的警告出现在第 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}