titlesec 边距样式在使用 itemize 时添加了不必要的空间

titlesec 边距样式在使用 itemize 时添加了不必要的空间

使用时页边距中的节标题放在段落页边距中的标题,当段落以itemize或开头时enumerate,段落顶部会出现一个额外的空格,而如果以普通文本开头则不会出现这种情况。

我该如何防止这种情况发生?

示例代码:

\documentclass{report}
\usepackage[a4paper]{geometry}
\usepackage[compact]{titlesec}
\usepackage{lipsum}

\titleformat{\paragraph}[leftmargin]
{\normalfont
\bfseries\filleft}
{}{0pt}{}
\titlespacing{\paragraph}
{4pc}{1.5ex plus .1ex minus .2ex}{1pc}

\begin{document}
\section{Section}
\paragraph{first paragraph with title}
\begin{itemize}
\item item one
\item item two
\item item three
\end{itemize}
\lipsum[1]

\paragraph{second paragraph with title}
\lipsum[1]


\end{document}

输出: 输出截图

答案1

您看到的空格只是列表开始前的段落第一行(空白)。要删除它,您可以使用enumitem添加负间距。

\documentclass{report}
\usepackage[a4paper]{geometry}
\usepackage[compact]{titlesec}
\usepackage{enumitem}
\usepackage{lipsum}

\newlist{startitemize}{itemize}{1}
\newlist{startenumerate}{enumerate}{1}
\setlist[startitemize]{
    label=\textbullet,
    before=\leavevmode\vspace*{-\baselineskip}\vspace*{-\topsep},
}
\setlist[startenumerate]{
    label=\arabic*.,
    before=\leavevmode\vspace*{-\baselineskip}\vspace*{-\topsep},
}

\titleformat{\paragraph}[leftmargin]
{\normalfont
\bfseries\filleft}
{}{0pt}{}
\titlespacing{\paragraph}
{4pc}{1.5ex plus .1ex minus .2ex}{1pc}

\begin{document}
\section{Section}
\paragraph{first paragraph with title}
\begin{startitemize}
\item item one
\item item two
\item item three
\end{startitemize}
\lipsum[1]

\paragraph{second paragraph with title}
\lipsum[1]


\end{document}

相关内容