9

I've run into a problem using the marginnote package; the vertical position changes if the note is wider than the margin. An MWE:

\documentclass{article}
\usepackage{lipsum,marginnote}
\setlength{\marginparwidth}{0.5in}
\begin{document}

\leavevmode%
\marginnote{Overlong}%
\lipsum[1]

\leavevmode%
\marginnote{Not Overlong}%
\lipsum[1]

\end{document}

The first note, wider than the margin, is set about half a line lower than the second. Using vanilla \marginpar instead sets both margin notes at the correct vertical position.

How can I get the vertical position to be set consistently using \marginnote? At this point, I'm using \parboxes, but then I lose the left/right justification.

8
  • 2
    If you have elements inside your \marginnote that is wider than \marginparwidth, then you can set them in boxes that shorter no wider. For example, using \rlap{\rule{1.1\marginparwidth}{2pt}} sets the rule in a zero-width box. I'm not exactly sure what the \marginnote contents is, so I don't know whether this works for you or not.
    – Werner
    Commented Jun 5, 2013 at 2:12
  • It seems that \nolinebreak also works: \marginnote{\nolinebreak\rule{1.1\marginparwidth}{2pt}}.
    – g.kov
    Commented Jun 5, 2013 at 10:04
  • You'd have the same problem in a normal paragraph, if you want to start it with a rule wider than the line width. Can you make a more realistic example?
    – egreg
    Commented Jun 5, 2013 at 10:37
  • @g.kov: \nolinebreak didn't have any effect for me; the notes still go in different places.
    – gilgamec
    Commented Jun 5, 2013 at 15:46
  • @egreg: I tried starting paragraphs with long and short rules, and the vertical alignments of the two are the same; am I misunderstanding you? Plus, like I said the question, there is no alignment problem using vanilla \marginpars.
    – gilgamec
    Commented Jun 5, 2013 at 15:48

1 Answer 1

3

The difference is that \marginnote issues \hspace{0pt} before starting to typeset the text of the note, which inserts a legitimate break point; so TeX will use it and the oversized rule will go to the second line; if you try with \unskip before the oversized rule, it will go in the first line. With \marginpar the \hspace is not issued.

Without a realistic example it's difficult to say more; an oversized rule will necessarily produce an overfull box and seems to be a little unsensical.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .