为“文章”文档设计样式

为“文章”文档设计样式

我正在使用该类编写文档文章。有些事情我想改变,例如:

  • 始终居中\section\subsection显示标题,无需每次手动操作\begin{center} ... \end{center}
  • 减少列表元素之间的间距,而无需\begin{enumerate}[itemsep=-1mm]每次都写入。
  • ETC。

我可以在哪里找到有关此内容的说明?我找不到可以查找所有选项和键的“手册”。如果没有手册,我该如何实现这些结果?

答案1

要自定义分段单元,您可以使用sectsty包(用于相对“较小”的更改)或titlesec包;为了定制列表式环境,您可以使用enumitem包;enumitemtitlesec都有很好的文档记录,文档中包含大量示例。这里有一个小例子来说明你在问题中提到的变化:

\documentclass{article}
\usepackage{titlesec}
\usepackage{enumitem}

\titleformat*{\section}{\centering\bfseries\Large}
\titleformat*{\subsection}{\centering\bfseries\large}

\setlist[enumerate]{itemsep=-1mm}

\begin{document}

\section{A test numbered section}
\begin{enumerate}
\item First item.
\item Second item.
\end{enumerate}
\subsection{A test numbered subsection}
\subsection*{A test unnumbered subsection}
\section*{A test unnumbered section}

\end{document}

在此处输入图片描述

上述方法主要适用于标准文档类(bookarticlereport);其他类(memoir或来自包的类KOMA-Script)有自己的机制;例如,应该注意,memoirKOMA-Script类和titlesec是不兼容的(参见关于 memoir 和 titlesec 不兼容KOMA-Script 与 titlesec 之间的不兼容性)。

出于完整性考虑,我将使用 document 类为问题中提到的两个问题添加一个可能的解决方案memoir。正如我之前所说,现在不建议使用titlesec来自定义章节单元标题,而是使用类提供的功能;我使用了 class 选项article和预定义的crosshead章节样式来获取章节的居中标题(现在使用 生成\chapter),并用于\setsecheadstyle居中小节标题(现在使用 生成\section);enumitem仍然用于自定义enumerate环境:

\documentclass[article]{memoir}
\usepackage{enumitem}

\chapterstyle{crosshead}
\setsecheadstyle{\centering\bfseries\large}

\setlist[enumerate]{itemsep=-1mm}

\begin{document}

\chapter{A test numbered section}
\begin{enumerate}
\item First item.
\item Second item.
\end{enumerate}
\section{A test numbered subsection}
\section*{A test unnumbered subsection}
\chapter*{A test unnumbered section}

\end{document}

在此处输入图片描述

scrartcl从捆绑包中使用KOMA-Script,再次使用titlesec是不可取的,但你可以改用\sectfont

\documentclass{scrartcl}
\usepackage{enumitem}

\renewcommand\sectfont{\centering\bfseries}
\setlist[enumerate]{itemsep=-1mm}

\begin{document}

\section{A test numbered section}
\begin{enumerate}
\item First item.
\item Second item.
\end{enumerate}
\subsection{A test numbered subsection}
\subsection*{A test unnumbered subsection}
\section*{A test unnumbered section}

\end{document}

在此处输入图片描述

正如我所使用的\sectfont,这些变化也会影响子部分。

最后,如果您想将更改应用于amsart文档类,则只需更改子节格式(默认情况下,此类中的节标题居中);可以通过重新定义来实现更改,\subsection如在 中实现的amsart.cls,或使用titlesec(如第一个示例所示,因为它titlesec与 AMS 系列文档类兼容),或者通过借助包等修补此命令etoolbox。一个小例子(此类中的列表具有更紧密的垂直间距,因此我保留了修改注释):

\documentclass{amsart}
\usepackage{enumitem}

\makeatletter
\def\subsection{\@startsection{subsection}{2}%
  \z@{.5\linespacing\@plus.7\linespacing}{.5\linespacing}%
  {\normalfont\bfseries\centering}}
\makeatother
%\setlist[enumerate]{itemsep=-1mm}

\begin{document}

\section{A test numbered section}
\begin{enumerate}
\item First item.
\item Second item.
\end{enumerate}
\subsection{A test numbered subsection}
\subsection*{A test unnumbered subsection}
\section*{A test unnumbered section}

\end{document}

在此处输入图片描述

相关内容