如何在使用浮动时使用 titlesec 控制标题中的间距

如何在使用浮动时使用 titlesec 控制标题中的间距

titlesec在使用包和命令编辑章节标题后,我发现使用包中的\titleformat选项的图形环境时,行距会发生变化。我可以替换,让LaTeX 将图形移到它认为更合适的位置,或者添加,将标题中的行距恢复为原始行距。[H]float[H][h]\clearpage

我喜欢在编辑时使用,[H]以避免 LaTeX 替换图形,而我仍然不知道文本的最终版本,甚至不知道图形大小。所以:

  1. 我应该怎么做才能避免标题中出现不必要的行距?
  2. 当浮动文本时,有什么好方法来控制文本的行距?

我检查了titlesec 格式但我好像没起到什么效果。

MWE 如下:

\documentclass{book}
\usepackage[margin=2cm]{geometry}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage{float}

\usepackage{titlesec}
\titleformat{\chapter}[display]
{\vspace{-2.5cm}\normalfont\Large\filcenter\bfseries} % \sffamily
{\titlerule[1.5pt]%
  \vspace{5pt}%
  {\Huge{\chaptertitlename} {\thechapter}}
}
{2pt}
{\titlerule
  \vspace{2pt}%
  \Huge\bfseries
  \vspace{5pt}
}
[{\titlerule[1.5pt]}\vspace{-20pt}]
% I don't know how and if titlespacing would help
%\titlespacing*{\chapter}{5pt}{0.7in}{20pt}

\begin{document}
\chapter{title}

\lipsum[1-4]

% \clearpage
\begin{figure}[H] % [h]
  \includegraphics[width = 0.9\linewidth]{example-image-a}
  \caption{Caption}
\end{figure}

\end{document}

以下是数据:

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

答案1

您永远不应该使用。无论如何,通过在章节标题中将其[H]设置为零可以在一定程度上解决这个问题。\parskip

\documentclass{book}
\usepackage[margin=2cm]{geometry}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage{float}

\usepackage{titlesec}
\titleformat{\chapter}[display]
{\setlength{\parskip}{0pt}\normalfont\Large\filcenter\bfseries} % \sffamily
{\titlerule[1.5pt]%
  \vspace{5pt}%
  {\Huge{\chaptertitlename} {\thechapter}}
}
{2pt}
{\titlerule
  \vspace{2pt}%
  \Huge\bfseries
  \vspace{5pt}
}
[{\titlerule[1.5pt]}]
% I don't know how and if titlespacing would help
\titlespacing*{\chapter}{0pt}{0pt}{20pt} % fix the 20pt to suit

\begin{document}
\chapter{title}

\lipsum[1-4]

\begin{figure}[H] % [h]
  \includegraphics[width = 0.9\linewidth]{example-image-a}
  \caption{Caption}
\end{figure}

\end{document}

我删除了“眼睛计算的”负垂直空间,并添加了\titlespacing指令来获取精确的结果。

在此处输入图片描述

拉伸仅发生在文本段落之间,而不发生在章节标题中。结果无论如何都是灾难性的,但这是由 造成的[H]

\documentclass{book}
\usepackage[margin=2cm]{geometry}
\usepackage{lipsum}
\usepackage{graphicx}

\usepackage{titlesec}
\titleformat{\chapter}[display]
{\setlength{\parskip}{0pt}\normalfont\Large\filcenter\bfseries} % \sffamily
{\titlerule[1.5pt]%
  \vspace{5pt}%
  {\Huge{\chaptertitlename} {\thechapter}}
}
{2pt}
{\titlerule
  \vspace{2pt}%
  \Huge\bfseries
  \vspace{5pt}
}
[{\titlerule[1.5pt]}]
% I don't know how and if titlespacing would help
\titlespacing*{\chapter}{0pt}{0pt}{20pt}% fix the 20pt to suit

\begin{document}
\chapter{title}

\lipsum[1-4]

\begin{figure}[!htp]
  \centering
  \includegraphics[width = 0.8\linewidth]{example-image-a}
  \caption{Caption}
\end{figure}

\lipsum[1-20]

\end{document}

在此处输入图片描述

相关内容