![希望图形高度忽略侧面标题高度](https://linux22.com/image/235803/%E5%B8%8C%E6%9C%9B%E5%9B%BE%E5%BD%A2%E9%AB%98%E5%BA%A6%E5%BF%BD%E7%95%A5%E4%BE%A7%E9%9D%A2%E6%A0%87%E9%A2%98%E9%AB%98%E5%BA%A6.png)
我使用放置在较大边距区域的标题。有时,标题文本比图形高,这会导致图形周围的垂直空间过多。
我希望图形的有效高度忽略边距中标题文本的高度。图形周围只留一些垂直空间,就好像没有标题一样。因为标题在边距上方,所以如果标题文本垂直重叠正文文本也没问题。
如何实现?我想要一种方法来做到这一点,这样我就不需要手动调整每个实例。
[编辑 1] 修复仅在 xetex 下有效的示例代码。
[编辑 2] 更新示例问题 PDF 并使用 TH 的 cool 显示修复版本\smashcaption
。
非常感谢!
以下是该问题的一个非常极端的例子:
\documentclass{book}
%%
% Set page layout geometry
% The asymmetric option keeps the margin notes always on the same side of the page which is the way Tufte does it.
\usepackage[
letterpaper,
asymmetric,
includemp,
headheight=0.5in, % needs to be big enough for the Intel logo graphic
left=1.25in,
width=6.75in,
marginparsep=0.25in,
marginparwidth=2in,
bottom=1in,
top=1in,
nofoot,
includehead]
{geometry}
\usepackage{lipsum}
\usepackage{floatrow}
\floatsetup[figure]
{
floatwidth=\linewidth,
capposition=beside,
capbesideposition={right,center},
capbesideframe=yes,
capbesidewidth=\marginparwidth,
capbesidesep=quad,
floatrowsep=qquad
}
\begin{document}
\lipsum[1]
\begin{figure}[ht]
\centering
\rule{8cm}{1cm}
\caption{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus
elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum
gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate
a, magna. Donec vehicula augue eu neque. Pellentesque habitant morbi
tristique senectus et netus et malesuada fames ac turpis egestas. Mauris.}
\end{figure}
\lipsum[2]
\end{document}
它看起来是这样的:
现在 TH 已经\smashcaption
修复:
答案1
注释掉导致示例无法编译的行,这是一个解决方案。定义一个新的宏,\smashcaption
如下所示。
\makeatletter
\newcommand*\smashcaption{
\def\FR@makecaption##1##2{%
\vbox to\z@{%
\vss
\captionfont
{\captionlabelfont##1}\caption@lsep##2%
\par
\vss
}%
}%
\caption
}
\makeatother
现在\caption
用您的代码替换它\smashcaption
,您就会得到我相信您想要的。