如何“堆叠”在同一行触发的边注?

如何“堆叠”在同一行触发的边注?

我正在尝试一种新的论文定义风格。如果引入了新术语,我会在页边距中重复它(并在行内强调它)。简化的演示:

\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将对齐离开来自正文,而不是正文。这个答案为我解决了该问题。

todonotesknut 建议的软件包基本上是这样的\marginpar,但是有很多额外的格式。事实上,我不需要格式化。)

相关内容