我尝试在下面的代码中设置所有内容\baselineskip
,但文本和图像之间的空间与文本的其余部分不匹配。
\documentclass[14paper,12pt]{article}
\usepackage{graphicx,lipsum,caption,csquotes,setspace}
\makeatletter
\setstretch{1.5}
\setlength{\intextsep}{\baselineskip}
\setlength{\floatsep}{\baselineskip}
\setlength{\textfloatsep}{\baselineskip}
\setlength{\abovecaptionskip}{0pt}
\setlength{\belowcaptionskip}{0pt}
\setlength{\abovedisplayskip}{\baselineskip}
\setlength{\belowdisplayskip}{\baselineskip}
\setlength{\abovedisplayshortskip}{\baselineskip}
\setlength{\belowdisplayshortskip}{\baselineskip}
\setlength{\jot}{\baselineskip}
\renewcommand\section{
\@startsection {section}{1}{\z@}
{-\baselineskip}
{\baselineskip}
{\normalfont\normalsize\bfseries}
}
\makeatother
\begin{document}
\section{ALSDJKFH ALSKDJFH}
ALSDJKFH ALSKDJFH LASKJDHF ALSKDJFHALSDKJFHA SLDKJFHALSKDJFHALSKDJFH ALSKDJF ALKSJDHF ALSJDKFHALKJSD FLAKJSD FLKJAHSDF LKJAHSD FLJKAHSDF LKJAHSD FLKJAHSD FLKJAHSDFLKJAHSD LFKJHKLAJSDHFLAKJ SDHFL AKSJDHF LAKJSDHF ALKDJSFH
\begin{figure}[!htb]
\centering
\caption*{ALSDJKFH ALSKDJFH}
\includegraphics[width=.6\textwidth]{example-image}
\caption*{ALSDJKFH ALSKDJFH}
\end{figure}
ALSDJKFH ALSKDJFH LASKJDHF ALSKDJFHALSDKJFHA SLDKJFHALSKDJFHALSKDJFH ALSKDJF ALKSJDHF ALSJDKFHALKJSD FLAKJSD FLKJAHSDF LKJAHSD FLJKAHSDF LKJAHSD FLKJAHSD FLKJAHSDFLKJAHSD LFKJHKLAJSDHFLAKJ SDHFL AKSJDHF LAKJSDHF ALKDJSFH
\end{document}
下图中,所有绿色矩形的高度都相同。但图片标题上方的间距小于 1 \baselineskip
(黄色矩形),下方的间距大于 1 \baselineskip
(红色矩形)。但对于我的大学模板,所有内容的间距都应该相同。如何解决这个问题?
答案1
免责声明:这只是部分答案,因为有些空格仍然不正确。将其作为答案,因为它有点长,我无法评论。
首先,您绘制的块大于\baselineskip
。A\baselineskip
是两个基线之间的长度。因此,部分标题后的间距似乎大于\baselineskip
。我建议查看包\titlespacing
中的命令titlesec
。
其次,该caption
包会猜测标题和图像的相对位置,以添加正确的间距。在这种情况下,它认为标题出现在图像上方,因此第二个标题的间距不正确。如果删除顶部标题,则不会发生这种情况。(也就是说,提供的示例实际上通过向单个图添加两个标题来创建错误场景。)
caption
最后,当一起使用和包时setspace
,您需要单独设置标题的字体拉伸(如下所示font=stretch={1.5}
)。请参考文档了解caption
详情。
以下是部分修复的版本及其输出:
\documentclass[a4paper,12pt]{article}
\usepackage{graphicx}
\usepackage[font={stretch=1.5}]{caption}
\usepackage{setspace}
\makeatletter
\setstretch{1.5}
\setlength{\intextsep}{\baselineskip}
\setlength{\floatsep}{\baselineskip}
\setlength{\textfloatsep}{\baselineskip}
\setlength{\abovecaptionskip}{0pt}
\setlength{\belowcaptionskip}{0pt}
\setlength{\abovedisplayskip}{\baselineskip}
\setlength{\belowdisplayskip}{\baselineskip}
\setlength{\abovedisplayshortskip}{\baselineskip}
\setlength{\belowdisplayshortskip}{\baselineskip}
\setlength{\jot}{\baselineskip}
\renewcommand\section{
\@startsection {section}{1}{\z@}
{-\baselineskip}
{\baselineskip}
{\normalfont\normalsize\bfseries}
}
\makeatother
\begin{document}
\section{ALSDJKFH ALSKDJFH}
ALSDJKFH ALSKDJFH LASKJDHF ALSKDJFHALSDKJFHA SLDKJFHALSKDJFHALSKDJFH ALSKDJF ALKSJDHF ALSJDKFHALKJSD FLAKJSD FLKJ
\begin{figure}[!htb]
\centering
\caption*{ALSDJKFH ALSKDJFH}
\includegraphics[width=.4\textwidth]{example-image}
% \caption*{ALSDJKFH ALSKDJFH}
\end{figure}
ALSDJKFH ALSKDJFH LASKJDHF ALSKDJFHALSDKJFHA SLDKJFHALSKDJFHALSKDJFH ALSKDJF ALKSJDHF ALSJDKFHALKJSD FLKJHKL
\begin{figure}[!htb]
\centering
% \caption*{ALSDJKFH ALSKDJFH}
\includegraphics[width=.4\textwidth]{example-image}
\caption*{ALSDJKFH ALSKDJFH}
\end{figure}
ALSDJKFH ALSKDJFH LASKJDHF ALSKDJFHALSDKJFHA SLDKJFHALSKDJFHALSKDJFH ALSKDJF ALKSJDHF ALSJDKFHALKJSD FLAKJSD FLKJ
\end{document}
希望这能让您更接近期望的输出。