我有一个宏(使用 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
以使其不执行任何操作?也许有人可以发表评论来解释为什么它可能在那里。没有它,我得到了我想要的输出。