更改 \numberwithin 内的数字会导致故障,但不会出现编译错误

更改 \numberwithin 内的数字会导致故障,但不会出现编译错误

这里有一个有趣的问题。这可能是一个错误,也可能是我漏掉了一个技巧。在我的论文中,我习惯\numberwithin{}{}在章节内进行编号。顶层是章节,所以就是这样<chapter>.<section>.<table counter>

在我的附录中,这太多了,所以我只希望在章节内进行编号,即<chapter>.<table counter>。因此编号将跨越不同的部分,并且当章节更改时,最左边的数字将上升。

但是,如果我\numberwithin在附录之后使用,那么它会巧妙地弄乱编号。它使索引数正确,但是最右边的索引没有变化。我的猜测是,它感到困惑,并且仍然认为它应该更改第三个索引(未打印)。

我已提供一个可行示例。有人知道吗?

\documentclass{book}
\usepackage{amsmath}

\numberwithin{table}{section}

\begin{document}
   \chapter{Thing}
      \section{the first section}

      \begin{table}[h!]
      \caption{wib}
         \begin{tabular}{c}
         hello
         \end{tabular}
      \end{table}

      \begin{table}[h!]
      \caption{wib}
         \begin{tabular}{c}
         hello
         \end{tabular}
      \end{table}

      \section{second section}  

      \begin{table}[h!]
      \caption{wib}
         \begin{tabular}{c}
         hello
         \end{tabular}
      \end{table}

      \begin{table}[h!]
      \caption{wib}
         \begin{tabular}{c}
         hello
         \end{tabular}
      \end{table}

\appendix
\numberwithin{table}{chapter}

   \chapter{first appendix chapter}
      \section{first appendix section}

      \begin{table}[h!]
      \caption{wib}
         \begin{tabular}{c}
         hello
         \end{tabular}
      \end{table}

      \begin{table}[h!]
      \caption{wib}
         \begin{tabular}{c}
         hello
         \end{tabular}
      \end{table}

      \section{second appendix section}

      \begin{table}[h!]
      \caption{wib}
         \begin{tabular}{c}
         hello
         \end{tabular}
      \end{table}

      \begin{table}[h!]
      \caption{wib}
         \begin{tabular}{c}
         hello
         \end{tabular}
      \end{table}

\end{document}

答案1

问题在于计数器figure被绑定section并且稍后\numberwithin不会打破这种绑定。

\usepackage{chngcntr}
\counterwithin{figure}{section}

...

\appendix
\counterwithout{figure}{section}
\counterwithin{figure}{chapter}

虽然\counterwithin与 非常相似\numberwithin数学缺乏解除一个计数器与另一个计数器绑定的能力。

相关内容