我知道我可以使用\setcounter{figure}{0}
来实现我想要的,但这意味着我必须在每个部分后添加此命令。我想知道是否可以编写一个命令,这样每次我使用时\section{}
,它都会自动将图形编号设置为 0。
例如:如果\section{}
使用,那么\setcounter{figure}{0}
我希望图形显示为图 1-1,这样 chngctr 包就不起作用。
答案1
LaTeX 有这样的命令\counterwithin
:
\documentclass{article}
\counterwithin{figure}{section}
\begin{document}
\section{First}
\begin{figure}[ht]
\centering
\fbox{FIRST}
\caption{First}
\end{figure}
\section{Second}
\begin{figure}[ht]
\centering
\fbox{SECOND}
\caption{Second}
\end{figure}
\end{document}
答案2
我保存了一份副本\section
,然后重新定义它,以便在调用已保存的副本之前立即重置图形计数器\section
。
要更改排版图号的样式,请更新 的定义\thefigure
,此处将其改为\renewcommand\thefigure{\thesection--\arabic{figure}}
,以便每个新部分的第一个图都有编号<section number>--1
。(也适用于附录)。
\documentclass{article}
\let\svsection\section
\def\section{\setcounter{figure}{0}\svsection}
\renewcommand\thefigure{\thesection--\arabic{figure}}
\begin{document}
\section{First}
\begin{figure}[ht]
\centering
\fbox{FIRST}
\caption{First}
\end{figure}
\section{Second}
\begin{figure}[ht]
\centering
\fbox{SECOND}
\caption{Second}
\end{figure}
\begin{appendix}
\section{Appendix}
\begin{figure}[ht]
\centering
\fbox{APPENDIX}
\caption{Appendix}
\end{figure}
\end{appendix}
\end{document}