删除使用左边距格式化的标题的空白部分后的间距

删除使用左边距格式化的标题的空白部分后的间距

我有一些部分没有直接文本(子部分除外)。对于这些空白部分,我试图让子部分文本(或标题)从与有文本的部分相同的位置开始。这似乎特定于使用标题的左边距格式。

以下是 MWE:

\documentclass[a4paper]{article}
\usepackage{titlesec,lipsum}

\titleformat{\section}[leftmargin]
{}
{}
{0em}
{}

\titlespacing{\section}
{0cm}{1cm}{2cm}

\begin{document}

\section{section with text}
Section text
\subsection{subsection}
\lipsum[2]

\section{section with no text}
\subsection{subsection}
\lipsum[2]

\end{document}

下图显示了我的意思。我试图让“2.1 子节”从与“节文本”相同的相对位置开始。(在这个特定的文档中,这没有意义,但我的特定文档有更多的格式。)

示例页面

答案1

这有效。

\subsection只要记住在不是该部分的开头时在 a 前留一个空行,例如

\section{name}
text

\subsection{name}

当它是本节中的第一件事时则相反,例如

\section{name}
\subsection{name}

梅威瑟:

\documentclass[a4paper]{article}
\usepackage{titlesec}
\usepackage{lipsum}

\newcounter{mycounter}

\let\oldpar\par
\def\par{%
  \oldpar%
  \stepcounter{mycounter}%
}

\newcommand\subsecskip{%
  \ifnum\value{mycounter}<2
     \unskip%
     \vspace{-\baselineskip}%
  \fi
}

\titleformat{\section}[leftmargin]
{}
{}
{0em}
{\setcounter{mycounter}{0}}

\titlespacing*{\section}
{0cm}{1cm}{2cm}

\titleformat{\subsection}[hang]
{\subsecskip\normalfont\large\bfseries}
{\thesubsection}
{1em}
{}

\begin{document}
\section{section with text}
some text

\subsection{subsection}
\lipsum[2]

\section{section with no text}
\subsection{subsection}
\lipsum[2]

\end{document} 

输出:

在此处输入图片描述

相关内容