我正在使用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
。
因此我想要以下解决方案之一。
- 使用 获取相同的字体和章节规则
titlesec
。 - 使用 消除缩进
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}