为什么使用 titlesec 时 microtype 会影​​响自定义部分的间距?

为什么使用 titlesec 时 microtype 会影​​响自定义部分的间距?

在 LuaLaTeX 中,我有以下代码,允许我拥有一个未编号的部分,并且文本居中,并启用小型大写字体样式。我认为文本看起来像 但没有居中,我试图测试我是否只是看错了,是的,我是正确的。当输入{\centering\textsc{Problem 1.}\par}和时,它们会导致与 的间距不同。\begin{center}\textsc{Problem 1.}\end{center}\section{Problem 1.}

\documentclass[letterpaper,12pt]{article}

\usepackage{microtype}
\usepackage{titlesec}
    \titleformat{\section}
    {\scshape\centering} % format
    {} % label % replace with {\thesection. } if need the section number on sections.
    {0cm} % sep
    {} % before-code
    \titlespacing*{\section}
    {0cm} % left
    {0cm} % before
    {0cm} % after

\begin{document}

\begin{center}
    \textsc{Problem 1.}
\end{center}

{\centering\textsc{Problem 1.}\par}

\section{Problem 1.}

\end{document}

罪魁祸首是microtype包,因为当拿走它时,它将具有{\centering\textsc{Problem 1.}\par}\begin{center}\textsc{Problem 1.}\end{center}相同\section{Problem 1.}。这似乎microtype为这两个添加了不必要的空间,我不确定为什么。

有人能对此提供任何见解,或者有任何方法可以解决这个问题并进行正确调整吗?这将是一个很大的帮助。

答案1

显然,问题在于titlesec插入struts以保持一些垂直距离的一致性。

如果您坚持使用titlesec,一个可能的修复方法(如果它真的困扰您并且不会打乱间距)可能是以下 MWE:

\documentclass[letterpaper,12pt]{article}

\usepackage{microtype}
\usepackage{titlesec}
\titleformat{\section}
{\nostruts\scshape\filcenter} % format
{} % label % replace with {\thesection. } if need the section number on sections.
{0cm} % sep
{} % before-code
\titlespacing*{\section}
{0cm} % left
{0cm} % before
{0cm} % after

\begin{document}
    
    \begin{center}
        \textsc{Problem 1.}
    \end{center}
    
    {\centering\textsc{Problem 1.}\par}
    
    \section{Problem 1.}
    
\end{document}

MWE 的输出

答案2

这是一种替代方法,它可以实现您想要的部分格式,titlesec而无需执行任何操作,从而避免了这个问题。

\documentclass[letterpaper,12pt]{article}
\usepackage{microtype}

\makeatletter
\renewcommand\section{\@startsection {section}{1}{\z@}%
  {-3.5ex \@plus -1ex \@minus -.2ex}%
  {2.3ex \@plus.2ex}%
  {\normalfont\scshape\centering}}
\makeatother
\setcounter{secnumdepth}{0}
\begin{document}

\begin{center}
    \textsc{Problem 1.}
\end{center}

{\centering\textsc{Problem 1.}\par}

\section{Problem 1.}

\end{document}

三个不成问题的问题

相关内容