章节样式:间距、字体和段落缩进

章节样式:间距、字体和段落缩进

我正在使用sectsty来配置我的部分样式。我读过也许titlesec更强大。下面使用的解决方案titlesec完全令人满意。

目前我正在设置和的字体section如下subsection

\sectionfont{%                      % Change font of \section command
    \noindent
    \usefont{OT1}{phv}{b}{n}%       % bch-b-n: CharterBT-Bold font
    \sectionrule{0pt}{0pt}{-5pt}{2pt}}

\subsectionfont{\noindent\usefont{OT1}{phv}{b}{n}}

然后我按如下方式调整间距。

\renewcommand\section{\@startsection{section}{1}{\z@}%
    {\bigskipamount}%
    {\bigskipamount}%
    {\normalfont\large\bfseries\SS@sectfont}}
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
    {\bigskipamount}%
    {\medskipamount}%
    {\normalfont\normalsize\bfseries\SS@subsectfont}}

此调整的模板来自这个 SE 问题: 如何使用 sectsty 包调整标题间距titlesec可以从这个 SE 问题中找到 一个稍微等价的模板:减少标题后的间距

现在我的问题如下。当我这样做时\renewcommand\section...,第一段会缩进。我不想这样。使用,可以向包调用或使用titlesec添加一个选项来删除此缩进。请参阅此 SE 问题:noindentafter\titlespacing*取消章节标题后的首行缩进。我找不到类似的东西sectsty,也没有实验成功。

那我为什么要使用sectsty呢?嗯,我喜欢字体和sectionrule选项。我无法使用titlesec\titleformat选项获得相同的字体——这让我有些困惑。该命令\sectionrule似乎特定于sectsty

因此我想要以下解决方案之一。

  1. 使用 获取相同的字体和章节规则titlesec
  2. 使用 消除缩进sectsty

选项 (1) 更可取,但选项 (2) 也可以接受。


两个 MWE。第一个是为 设立的sectsty,第二个是为 设立的titlesec

\documentclass[]{article}

\usepackage{sectsty}
\sectionfont{%                      % Change font of \section command
    \noindent
    \usefont{OT1}{phv}{b}{n}%       % bch-b-n: CharterBT-Bold font
    \sectionrule{0pt}{0pt}{-5pt}{2pt}}
\subsectionfont{\noindent\usefont{OT1}{phv}{b}{n}}

\begin{document}

\section{Section Title}
This is not indented

\makeatletter
\renewcommand\section{\@startsection{section} {1}{\z@}%
    {\bigskipamount}%
    {\bigskipamount}%
    {\normalfont\large\bfseries\SS@sectfont}}
\makeatother
\section{Next Section}
This is indented now \texttt{:frowning:}

\end{document}
\documentclass[]{article}

\usepackage{titlesec}
\titleformat{\section}
    {\sffamily \normalsize \bfseries \usefont{OT1}{phv}{b}{n}}{\thesection}{1em}{}

\begin{document}

\section{Section Title}
This is not indented

\titlespacing{\section}
    {0pt}
    {\bigskipamount}
    {\medskipamount}
\section{Next Section}
This is indented now \texttt{:frowning:}

\titlespacing*{\section}
    {0pt}
    {\bigskipamount}
    {\medskipamount}
\section{Final Section}
But viola, it is no longer indented by adding \texttt{*}

\end{document}

答案1

这里有一个使用 titlesec 实现您想要的功能的方法。我擅自\titlespacing在序言中加入了 Helvetica 字体,用其克隆的 TeX Gyre Heros 替换了 Helvetica 字体,后者具有更多字形,并将章节编号和标题之间的间距缩小到半个四边形,在我看来,这样看起来更好。

\documentclass[]{article}

\usepackage[noindentafter]{titlesec}
\titleformat{\section}
    {\usefont{T1}{qhv}{b}{n} \normalsize\boldmath}{\thesection}{0.5em}{}[{\titlerule[2pt]}]
\titlespacing{\section}
    {0pt}
    {\bigskipamount}
    {\medskipamount}

\begin{document}

\section{Section Title}
This is not indented

\section{Next Section}%
This is \emph{not} indented now\texttt{:frowning:}

\section{Final Section}
But Viola, it is no longer indented by adding \texttt{*}

\end{document} 

在此处输入图片描述

相关内容