垂直错位的边注

垂直错位的边注

我尝试将\marginnote和 指定 一起使用\parskip。但是,我遇到了对齐问题。在 组中的代码中,\parskip边距注释与行上的文本未对齐,而如果我手动插入间隙,则一切正常。

以下是 PDF 的屏幕截图:

以下是 MWE:

\documentclass[10pt, letterpaper]{article} 
\usepackage{geometry} 
\geometry{letterpaper, hmargin=1.5in, vmargin=1in, marginparsep=7pt, marginparwidth=.6in}
\usepackage{marginnote}
\newcommand{\years}[1]{\marginnote{\footnotesize #1}}
\renewcommand*{\raggedleftmarginnote}{}
\setlength{\marginparsep}{7pt}
\setlength\parindent{0pt}
\reversemarginpar
\begin{document}
this doesn't work:\\

\begingroup
\setlength{\parskip}{0.3cm}
\years{2008}blah blah blah\\*
line 2\\*
line 3

\years{2008}blah blah blah\\*
line 2\\*
line 3
\endgroup\\
\\
this does:\\

\years{2008}blah blah blah\\*
line 2\\*
line 3\\[0.3cm]
\years{2008}blah blah blah\\*
line 2\\*
line 3
\end{document}

答案1

添加\mbox{}(或\leavevmode),例如:

\newcommand{\years}[1]{\mbox{}\marginnote{\footnotesize #1}}

将修复您的对齐(尽管所有以 结尾的行\\看起来非常可疑(并生成有关未满框的警告)

这是因为如果浮动与段落绑定,则对齐效果最好,因此如果插入在第一行而不是第一行之前。然后它会自动对齐。如果将插入内容放在段落之前的垂直材料中,则可以修复垂直间距,但特别是如果您在文档中间更改垂直间距,则更难。\mbox只需强制段落以不可见的框开头,因此插入发生在第一行内。使用\leavevmode(在定义中使用,\mbox因为您不需要这里的框,只需强制垂直材料结束并开始段落即可。

答案2

由于评论,我不会删除这个答案,但我确实鼓励你阅读其他答案,这个答案要好得多。


我认为这是因为在开始边注之前“需要开始段落”。您可以这样做:

\newcommand{\years}[1]{\hspace{0pt}\marginnote{\footnotesize #1}}

相关内容