为什么 \hspace{0pt} 与 \marginpar 一起使用会在段落开头产生空格?

为什么 \hspace{0pt} 与 \marginpar 一起使用会在段落开头产生空格?

类似情况如下与段落开头对齐

基本上,我需要将边注与段落开头对齐,并且我将命令放在段落\marginpar第一个单词之前。这可以通过在命令\hspace{0pt}前添加来实现\marginpar

但是,我还设置\parindent0pt,这会在段落开头产生一个空格。目前,我正在使用类似\hspace{-0.15cm}的 hack 来解决这个问题,但它不太好,有没有更好的解决方案?

(我试过这个marginnote软件包,但还是有几个问题。它会自动将边注与段落第一行对齐,除非有分页符,否则边注会出现在上一页。较长的边注也会重叠。)

答案1

如果你不需要可选参数,\marginpar你可以使用\initmarginpar定义为

\newcommand{\initmarginpar}[1]{\leavevmode\marginpar{#1}\ignorespaces}

否则,请务必记住使用注释字符保护行尾:

\marginpar{Margin note}%
Start of the paragraph...

我相信\leavevmode(甚至更多\quitvmode)比好得多\hspace{0pt}

答案2

我没有发现问题:

\documentclass{article}
\parindent=0pt
\begin{document}
\hspace{0pt}\marginpar{blub}Some text

Some Text
\end{document}

相关内容