如何在描述(或其他列表环境)中放置边注

如何在描述(或其他列表环境)中放置边注

我有一个宏(使用 xparse 包定义)可以创建一个marginnote。当它添加到普通段落文本前面时,它会按我希望的方式工作:

\NewDocumentCommand\dates{m g}{%
   \IfNoValueTF{#2}
       {\marginnote{\scriptsize{#1}}}
       {\marginnote{\scriptsize{#2\\#1}}}}

我想以类似的方式在环境item中使用它description,例如:

\begin{description}
    \item[Coding and data representation] \dates{June 2009}{September 2009} Some description
\end{description}

但是上面的代码片段将边注放在了标签文本下方,我希望它出现在页面的最左侧,与项目对齐。NewDocumentEnvironment如果这可以帮助我更轻松地实现这一点,我很乐意使用 xparse 创建一个,并且我愿意接受更好的方法来实现这种布局。

以下是重现该问题的一个最小示例:

\documentclass{article}
\usepackage{xparse}
\usepackage{marginnote}
\begin{document}
\NewDocumentCommand\dates{m g}{%
  \IfNoValueTF{#2}
    {\marginnote{\scriptsize{#1}}}
    {\marginnote{\scriptsize{#2\\#1}}}}
\renewcommand*{\raggedleftmarginnote}{}
\setlength{\marginparsep}{7pt}
\reversemarginpar

\begin{description}
    \item[Coding and data representation] \dates{June 2009}{September 2009} Some description
\end{description}

\end{document}

答案1

感谢 Werner 建议提供一个最小的工作示例,我能够确定继承的代码行:

% The offending line:
% \renewcommand*{\raggedleftmarginnote}{}

是罪魁祸首。我不确定星号的用途,但我相信这是重新定义命令raggedleftmarginnote以使其不执行任何操作?也许有人可以发表评论来解释为什么它可能在那里。没有它,我得到了我想要的输出。

相关内容