我在格式化图表/表格的标题时遇到了问题。
实际情况如下:我需要在图片上方添加一行,在标题上方和下方添加两行。为了使效果更好,我必须多次调整垂直间距。
现在,根据标题是显示在一行还是多行中,会出现一个问题。对于单行标题,我需要调整 vspacing {-0.8 \baselineskip}
,对于多行标题,只需要调整 ,{-0.1 \baselineskip}
以使标题下方的行与文本底部的空间完全相同。我对 LaTeX 或排版不太熟悉,所以我完全不明白为什么会发生这种情况。一个解决方案是以某种方式找出标题中的行数,但我不知道如何做到这一点。我试图“滥用”该lineno
软件包来满足我的需求,但没有成功。
有谁知道如何解决这个问题或者知道问题的原因是什么?
下面是我的图像插入的代码。
\newcommand{\includewrappedfigure}[6][0pt]{
% example params: [0pt]{R}{.3}{afigurefile}{figure with long caption}{fig:afigure}
\begin{wrapfigure}{#2}{#3\textwidth}
\centering
\vskip -.8 \baselineskip
\hrule
\includegraphics[width=#3\textwidth, keepaspectratio]{#4}
\vskip -1 \baselineskip
\hrule
\vskip -0.8 \baselineskip
\caption{#5}
\label{#6}
\vskip -.1 \baselineskip % for MULTI line captions
% \vskip -.8 \baselineskip % for SINGLE line captions
\hrule
\end{wrapfigure}
}
答案1
不幸的是,您没有提供一个最小的工作示例,所以我不知道您是否使用了与相同标题代码的类article
,但是文章使用了:
\long\def\@makecaption#1#2{%
\vskip\abovecaptionskip
\sbox\@tempboxa{#1: #2}%
\ifdim \wd\@tempboxa >\hsize
#1: #2\par
\else
\global \@minipagefalse
\hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
\fi
\vskip\belowcaptionskip}
这#1: #2\par
是多行情况,这\hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
是单行情况,因此您可以重新定义此命令并在每种情况下添加所需的间距。