我如何为自己的命令添加一个计数器并打印?

我如何为自己的命令添加一个计数器并打印?

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

在此处输入图片描述

相关内容