marginpar
我正在尝试使用和在页边距中排版我的标题captionof
。这是我通过 MWE 得到的结果。请注意错误的标题编号。
第一个标题使用宏包含\fixedmarginpar
,第二个标题使用\marginpar
。每使用 包含一个标题,图号就会增加 2 \fixedmarginpar
。
请阅读vspace-in-marginpar 添加不需要的垂直空间对于\fixedmarginpar
MWE 中使用的宏。此宏将标题设置在框中,并根据框的高度偏移垂直对齐。标题编号增加 2,因为此宏设置了一个带有标题的框来计算高度(\captionof
第一次调用),然后将其设置在marginpar
(\captionof
再次调用)。有什么好的解决方法吗?
\documentclass{scrreprt}
\usepackage{calc}
%https://tex.stackexchange.com/questions/78519/vspace-in-marginpar-adds-unwanted-vertical-space
\newcommand{\fixedmarginpar}[2][0pt]{%
\setbox0=\vtop{#2}\marginpar{\vspace{\dimexpr-\ht0+#1}#2}%
}
\begin{document}
\listoffigures
\fixedmarginpar{\captionof{figure}{A}}
\marginpar{\captionof{figure}{A}}
\end{document}
答案1
图形编号每次都会递增两次,因为您要排版两次标题。您可以通过仅排版一次来避免这种情况:
\newcommand{\fixedmarginpar}[2][0pt]{%
\setbox0=\vtop{\parindent=0pt \hsize=\marginparwidth#2}%
\marginpar{\vspace{\dimexpr-\ht0+#1}\box0 }%
}
这样,测量所用的盒子就不需要重新排版,而是直接使用。