我正在尝试更改文档附录中的图号格式。我还想在文档中使用双倍行距并使用包endfloat
。对于仅更改图号格式的基本情况,我可以完美地遵循此示例回答对于这个问题:更改附录的图号。但是,当我尝试添加两个都包装endfloat
和双倍行距,解决方案就失败了。奇怪的是,单独使用它们都可以正常工作。下面是一个基于上面引用的答案的最小工作示例。如果我做任何一个通过以下两种修改,示例成功改变了图形编号的格式,但缺少了这一点,它并没有:
注释掉
\begin{spacing}{2}
并\end{spacing}
注释掉
\usepackage[notablist,nofiglist,nomarkers]{endfloat}
并\processdelayedfloats
。
\documentclass{article}
\usepackage[notablist,nofiglist,nomarkers]{endfloat} %% places all figures and tables at the end.
\usepackage{setspace} % Allows for double spacing
\begin{document}
\begin{spacing}{2}
Body Text.
\begin{figure}
\centering\rule{1cm}{1cm}
\caption{This is a figure}
\end{figure}
\processdelayedfloats
\appendix
\renewcommand\thefigure{\thesection.\arabic{figure}}
\section{Appendix}
\setcounter{figure}{0}
Appendix Text.
\begin{figure}
\centering\rule{1cm}{1cm}
\caption{This is a figure in appendix A}
\end{figure}
\end{spacing}
\end{document}
我也尝试了建议的解决方案这里。我不相信它有效,但问题中没有提供任何可重现的例子,答案也没有明确说明如何/在何处实现它,因此可能存在一种使用这些技术的机制,而我却无法理解。
答案1
引入的嵌套\begin{spacing}...\end{spacing}
阻止了\thefigure
按预期工作——所做的更改仅在本地进行,但不能在外部工作,即在文档末尾的\renewcommand
写入过程中,即超出环境范围。解决方案是使用以全局启用更改。endfloat
spacing
\gdef\thefigure{...}
这当然会改变任何\thefigure
事情,但由于这是在附录中完成的,所以在我看来,这应该不会造成麻烦。
\documentclass{article}
\usepackage[notablist,nofiglist,nomarkers]{endfloat} %% places all figures and tables at the end.
\usepackage{setspace} % Allows for double spacing
\begin{document}
\begin{spacing}{2}
Body Text.
\begin{figure}
\centering\rule{1cm}{1cm}
\caption{This is a figure}
\end{figure}
\processdelayedfloats
\appendix
\gdef\thefigure{\thesection.\arabic{figure}}
\section{Appendix}
\setcounter{figure}{0}
Appendix Text.
\begin{figure}
\centering\rule{1cm}{1cm}
\caption{This is a figure in appendix A}
\end{figure}
\end{spacing}
\end{document}