每添加一个标题,标题数量就会增加两个

每添加一个标题,标题数量就会增加两个

marginpar我正在尝试使用和在页边距中排版我的标题captionof。这是我通过 MWE 得到的结果。请注意错误的标题编号。 错误的标题编号

第一个标题使用宏包含\fixedmarginpar,第二个标题使用\marginpar。每使用 包含一个标题,图号就会增加 2 \fixedmarginpar

请阅读vspace-in-marginpar 添加不需要的垂直空间对于\fixedmarginparMWE 中使用的宏。此宏将标题设置在框中,并根据框的高度偏移垂直对齐。标题编号增加 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 }%
}

这样,测量所用的盒子就不需要重新排版,而是直接使用。

相关内容