删除 titlesec 中部分上方的间距

删除 titlesec 中部分上方的间距

我正在编写一份针对移动设备使用进行了优化的文档,因此我想节省空间。titlesec添加到章节、子章节等的间距有点烦人。有没有(简单的)方法可以消除它?我希望只是更改标题的外观,同时保留所有 LaTeX 默认间距等。

sectsty包没有增加任何间距并且工作得很好,但我想利用一些titlesec功能。

我查看了以下问题,但它们似乎无法解决我的问题:

如果我忽略了上述解决方案中的某些内容,请关闭此主题。

MWE 结果

\documentclass[11pt]{article}
\usepackage{geometry}
\geometry{margin=5mm, paper=a6paper, showframe=true}
\usepackage{titlesec}
\titleformat*\section{\Large}
\titleformat*\subsection{\large}
\usepackage{lipsum}
\begin{document}
\section*{Using titlesec}
\subsection*{Lorem Ipsum}
\lipsum[3]
\end{document}

注意:删除三行titlesec以获得 LaTeX 默认结果。

答案1

更新答案

这样做\usepackage[nostruts]{titlesec}将会移除支柱,就像我下面的回答一样。

该功能已于 2019-07-16 发布的 2.11 版本中添加。

原始答案

该软件包在某些地方titlesec添加了内容\strut。对于你的情况,你必须在三个地方消除这种行为:

\documentclass[11pt]{article}
\usepackage{geometry}
\geometry{margin=5mm, paper=a6paper, showframe=true}

\usepackage{titlesec}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\ttl@select}{\strut}{}{}{}
\patchcmd{\ttlh@hang}{\strut}{}{}{}
\patchcmd{\ttlh@hang}{\strut}{}{}{}
\makeatother

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

\usepackage{lipsum}
\begin{document}

\section*{Using titlesec}
\subsection*{Lorem Ipsum}
\lipsum[3]
\end{document}

涉及的宏有\ttl@select\ttlh@hang(第二个\strut出现两次。如果选择了其他样式,可能需要修补\ttlh@display\ttlh@runin

相关内容