当使用 marginnote 包并直接在两个 \marginnote{text} 字段之后写入时,两个节点会相互冲突。MWE:
\documentclass{memoir}
\usepackage{marginnote}
\begin{document}
\marginnote{first}
\marginnote{second test}
\end{document}
可以修复这个问题吗,以便第二个边注自动垂直移动 - 也就是说,无需使用可选参数手动移动它?
我实际上正在尝试基于 alphabetic-style-cite-command 创建一个自定义引用命令。我希望引用将标签放在文本中,并添加一个边注,其中包含有关引用对象的更多书目信息。当引用多个对象时,即在 中,就会出现上述问题\cite{label1,label2}
。然后,这会为每个引用的对象生成上述边注。我认为实际的 DeclareCiteCommand 细节在这里并不重要,所以我只添加了上述 MWE(如果需要,我当然也可以提供更多细节)。
答案1
对我来说,您的 MWE 给出了您所显示的结果,就像您用 替换的测试一样\marginnote
。\marginpar
但是,如果在带有两个边注的行上有任何文本,它们将垂直分开。
你试过了吗:
\documentclass{memoir}
% \setmarginnotes{7pt}{128pt}{5pt}
\begin{document}
Text \marginpar{first} \marginpar{second}
\end{document}
对我来说,这给出了不重叠的边注。
类memoir
宏\setmarginnotes{sep}{width}{push}
设置注释的布局\marginpar
,其中sep
是文本块和注释之间的空间,width
是注释文本的宽度,push
是注释之间的最小垂直空间(该push
值可以通过标准 LaTeX\marginparpush
长度设置)请参阅memoir
手册中的第 2.6 节。sep
和width
方面可以通过 LaTeX 长度\marginparsep
和单独设置\marginparwidth
;这些都是适用于任何标准文档类的基本 LaTeX 长度。我在注释掉的\setmarginnotes
宏中显示的值是 LaTeX 使用的默认值。
基本上只需使用\marginpar
,并在必要时根据您的需要调整其布局。
如果必须\marginpar
在一行中放置两个或更多个且没有其他文本,那么也许\setlength{\marginparsep}{\baselineskip}
可以满足您的需求。
答案2
来自文档的marginnotes
:
注意:边注将放置在当前垂直行。这意味着,如果您
\marginnote
在同一行使用两个命令,它们将放置在同一个位置。这不是错误,而是一项功能!
如果要在同一行放置更多边注,请使用\marginpar
。