文档环境之外的致谢

文档环境之外的致谢

如何\section在我的document环境之外(之前)添加致谢部分(可能不是特别的)?

在我的.cls中,有

\def\@acknowledge{}
...
\def\acknowledge#1{\booltrue{@ack} \gdef\@acknowledge{#1}}
...
\def\ackpage{
\chapter*{Acknowledgments}
\@acknowledge
\newpage
}

但当我把换行符放在 \acknowledge{folks in here}

(看https://www.overleaf.com/latex/templates/virginia-tech-etd-template/cpqhbscstfrx

答案1

当你使用\defTeX 的默认行为时不是允许段落中断,作为检查代码中缺少括号或其他错误的机制。

您有以下几种选择:

如果您可以修改,您可以通过制作宏.cls来使 TeX 允许段落分隔符:\acknowledge\long

\long\def\acknowledge#1{\booltrue{@ack}\gdef\@acknowledge{#1}}

那么它将允许\par在参数中使用标记。

或者您可以使用 LaTeX 语法,并使用\newcommand默认允许段落分隔符:

\newcommand{\acknowledge}[1]{\booltrue{@ack}\gdef\@acknowledge{#1}}

或者,如果您愿意,您可以使用该environ包并使其acknowledge看起来更像一个环境:

\usepackage{environ}
\NewEnviron{acknowledge}{%
  \booltrue{@ack}%
  \global\let\@acknowledge\BODY}

environ将环境内容存储在 中\BODY,那么您只需将其复制到\@acknowledge即可\let。默认情况下,这允许段落分隔。


如果你不能更改.cls,那么您可以绕过 TeX 的检查并使用\endgraf\par换行。例如,如果您有:

\acknowledge{%
  folks in

  here}

(与 相同\acknowledge{folks in \par here})您可以使用:

\acknowledge{folks in\endgraf here}

那么 TeX 就不会知道那里有一个段落分隔符。

相关内容