![如何“堆叠”在同一行触发的边注?](https://linux22.com/image/260507/%E5%A6%82%E4%BD%95%E2%80%9C%E5%A0%86%E5%8F%A0%E2%80%9D%E5%9C%A8%E5%90%8C%E4%B8%80%E8%A1%8C%E8%A7%A6%E5%8F%91%E7%9A%84%E8%BE%B9%E6%B3%A8%EF%BC%9F.png)
我正在尝试一种新的论文定义风格。如果引入了新术语,我会在页边距中重复它(并在行内强调它)。简化的演示:
\newcommand*{\idef}[1]{%
\marginnote{\fbox{#1}}%
\emph{#1}%
}
有时,会在同一行引入两个新术语。目前,第二个边注将刚好与第一个边注重叠。我希望将其放在第一个边注旁边。或者,在没有水平空间的情况下,将其放在第一个边注下方。
我怎样才能做到这一点?
编辑:到目前为止提出的所有解决方案(包括我自己的)都只能放置多余的注释以下其他。理想情况下,当有空间时,我希望放置同行原点的注释旁边前一个(其右边)。
这很棘手,具体要看\marginpar
排版时间。我相信唯一的办法就是推迟排版注释,直到行尾完成,然后再“准备”。但我在这方面有点不擅长。
答案1
您可以尝试todonotes
-包裹为了您的目的。
例子:
\documentclass[english]{scrartcl}
\usepackage{babel,blindtext}
\usepackage{todonotes}
\newcommand{\idef}[2][]{%
\todo[color=none, linecolor=none,#1]{#2}%
\emph{#2}%
}
\begin{document}
\blindtext
\idef{term} and \idef{another term}
\blindtext
\listoftodos[Terms]
\end{document}
示例定义了todo
从文本中的位置到边注的无线行。请参阅文档了解格式化 todonote 的其他可能性。
我的示例还包含所有术语的列表。
结果(红色块不是 pdf 的一部分,它是为了显示 inline-idef 的位置而插入的):
答案2
我决定使用\marginpar
。我在使用该命令时遇到了一些问题,但我能够修复它们。
最初我不能使用,\marginpar
因为它有坏放置和结盟,所以我找到了marginnote
它并坚持了一段时间。
放置:我遇到过一种特殊情况,在左页的顶部,注释放在了右边距(而不是左边距)。该mparhack
软件包不起作用。该marginfix
软件包将注释放在了上一页,而不是正确的边距。然后我发现了命令memoir
,\strictpagecheck
它帮我解决了这个问题。
结盟: \marginpar
将对齐离开来自正文,而不是向正文。这个答案为我解决了该问题。
(todonotes
knut 建议的软件包基本上是这样的\marginpar
,但是有很多额外的格式。事实上,我不需要格式化。)