我正在处理一份带有附录的文档。我希望它有以下标题:“附录 A. 渐进式制定的任务“
这是我正在使用的代码
\appendix
\newpage
\section{Tasks for Progressive Formulation}
我得到的结果是缺少单词“Appendix”和字母“A”之间的空格。它显示如下:
附录A. 渐进式制定的任务
如何强制在附录和信件之间留出空白?
编辑:更多代码
\documentclass{elsarticle}
\usepackage[english]{babel}
\usepackage{booktabs}
\usepackage[autostyle, english = american]{csquotes}
\usepackage{float}
\restylefloat{figure}
\usepackage[margin=3cm]{geometry}
\usepackage{graphicx}
\usepackage{lineno}
\usepackage{multirow}
\usepackage{natbib}
\usepackage{tabulary}
\begin{document}
\appendix
\newpage
\section{Tasks for Progressive Formulation}
\end{document}
答案1
这是一个错误的elsarticle.cls
选择
\def\appendixname{Appendix }
带有空格,而babel
正确做法是
\renewcommand{\appendixname}{Appendix}
没有空格。您可以通过elsarticle
以下方式恢复预期的行为:
\addto\captionsenglish{\renewcommand{\appendixname}{Appendix }}
这是一个最小的例子(您加载的其他包与该问题无关)但实际上elsarticle
应该这样做 \documentclass{elsarticle}
\usepackage[english]{babel}
\addto\captionsenglish{\renewcommand{\appendixname}{Appendix }}
\begin{document}
\appendix
\section{Tasks for Progressive Formulation}
\end{document}
但实际上,elsarticle
应该做不同的事情:从第 748 行到第 758 行的代码elsarticle.cls
应该是
\renewcommand\appendix{\par
\setcounter{section}{0}%
\setcounter{subsection}{0}%
\setcounter{equation}{0}
\gdef\thefigure{\@Alph\c@section.\arabic{figure}}%
\gdef\thetable{\@Alph\c@section.\arabic{table}}%
\gdef\thesection{\appendixname\space\@Alph\c@section}%
\@addtoreset{equation}{section}%
\gdef\theequation{\@Alph\c@section.\arabic{equation}}%
}
无需重新定义\appendixname
,也无需在 的重新定义中添加空格\thesection
。固定标签应该只是一个标签,没有属于其他地方的“格式化指令”。
答案2
请尝试以下 MWE(我稍微减少了您的代码以使其最小化):
\documentclass{elsarticle}
\usepackage[english]{babel}
\usepackage[margin=3cm]{geometry}
\usepackage{blindtext} % dummy text
\begin{document}
\blindtext % dummy text
\appendix
\renewcommand*{\thesection}{\appendixname~\Alph{section}}
\section{Tasks for Progressive Formulation}
\blindtext
\subsection{Test}
\blindtext
\end{document}
您的要点是行\renewcommand*{\thesection}{\appendixname~\Alph{section}}
。在这里,我重新定义了您使用的文档类中的错误。 \appendixname
给出“附录”并\Alph{section}
包含编号(A)和标题。 \thesection
是写错误行的宏并用重新定义\renewcommand
。
结果: