使 \section*{} 与考试类别兼容

使 \section*{} 与考试类别兼容

我想重新定义\section*{}命令,使部分标题左对齐。我实际上可以使用来实现它,\fullwidth{\section*{my section title}} 但您希望执行以下操作:

\renewcommand\section*{\fullwidth{\section*{#1}}}

这当然是行不通的。

答案1

由于exam该类建立在article,因此标准方法是

\makeatletter
\let\article@section\section
\renewcommand\section{\@ifstar\fullwidth@section\article@section}
\newcommand{\fullwidth@section}[1]{\fullwidth{\article@section*{#1}}}
\makeatother

在你的序言中。

答案2

我对@egreg 解决方案有疑问:像这样重新定义部分,引用部分的可能性就丢失了。

引用部分是指label在任何部分之后使用,以及在代码中的任何位置使用ref。这样做,??无论你对代码进行多少次编译,你都只会得到。

我想到的解决方案是使用titlesec包:

\usepackage{titlesec}
\titleformat*{\section}{\normalfont\Large\bfseries\fullwidth}

这种方法的缺点是您必须将\fullwidth作为的最后一个元素titleformat

字幕也可以达到同样的效果(当然要进行适当的更改)。

相关内容