在 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}
答案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}