宏中的 marginpar 窃取了项目列表的 bullet

宏中的 marginpar 窃取了项目列表的 bullet

我遇到了一个奇怪的问题(对我来说),涉及 itemize 环境和\marginpar{}。该问题在以下文档中进行了说明:

\documentclass{article}

\newcommand{\todo}[1]{\marginpar{\small\flushleft #1}}

\begin{document}

\begin{itemize}
\item first item
\item \todo{the second item is missing} third item
\end{itemize}

\end{document}

我原本期望得到类似的输出

  • 第一项
  • 第三项

旁边还有一条边注,写着“第二项缺失”。但我得到的却是以下内容:

意外的 TeX 输出

IE第二个项目符号的黑点不知何故出现在了边缘!如果我在逐项列表中替换,则不会发生此问题\todo\marginpar因此使用宏在某种程度上是此问题的一部分。

我的问题:

  1. 这里出了什么问题?

  2. 我该如何修复我的\todo宏以避免此问题?

答案1

您的问题是\flushleft应该将 which 用作环境。\raggedright而应使用 which 作为开关。

\documentclass{article}

\newcommand{\todo}[1]{\marginpar{\raggedright\small#1}}

\begin{document}

\begin{itemize}
\item first item
\item \todo{the second item is missing} third item
\end{itemize}

\end{document}

在此处输入图片描述

我希望marginnote有更好的定位。

\documentclass{article}
\usepackage[fulladjust]{marginnote}

\newcommand{\todo}[1]{\marginnote{\raggedright\small#1}}

\begin{document}

\begin{itemize}
\item first item
\item \todo{the second item is missing} third item
\end{itemize}

\end{document}

在此处输入图片描述

相关内容