I'd like to put small graphics into the margin via \marginpar. The top of the figures shall be aligned to the top of the text line they refer to. I found around here the suggestion to put a \vskip0pt into the marginpar, which seems to work somewhat, but the placement is still not perfect. In good LaTeX style I would like to have a solution that works automatically, i.e., without pixel-adjusting manually every figure, and is robust (font sizes, line spreads etc.).
In the following MWE the problem is particularly visible in 1.2.1 and 1.2.2
\documentclass[twoside]{article}
\usepackage[demo]{graphicx}
\begin{document}
\section{Graphical note}
\subsection{With new paragraph}
\subsubsection{Text blocks}
Foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo.
% \leavevmode% makes things worse
%% \vksip3pt seems to be correct
\marginpar{\vskip0pt\includegraphics[width=4cm,height=1cm]{test}}%
Bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar
bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar
bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar.
\subsubsection{Equation ending}
Foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo.
\begin{equation}
a = b
\end{equation}%
% \leavevmode% makes things worse
%% seems OK
\marginpar{\vskip0pt\includegraphics[width=4cm,height=1cm]{test}}%
Bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar
bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar
bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar.
\subsection{Without new paragraph}
\subsubsection{Text blocks}
Foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo.
%% \vksip-7pt seems to be correct
\marginpar{\vskip0pt\includegraphics[width=4cm,height=1cm]{test}}%
Bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar
bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar
bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar.
\subsubsection{Equation ending}
Foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo.
\begin{equation}
a = b
\end{equation}%
%% \vksip-7pt seems to be correct
\marginpar{\vskip0pt\includegraphics[width=4cm,height=1cm]{test}}%
Bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar
bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar
bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar.
\clearpage
\section{With textual note}
The following four cases work fine.
\subsection{With new paragraph}
\subsubsection{Text blocks}
Foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo.
\leavevmode%
\marginpar{Baz baz baz baz baz}%
Bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar
bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar
bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar.
\subsubsection{Equation ending}
Foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo.
\begin{equation}
a = b
\end{equation}
\leavevmode%
\marginpar{Baz baz baz baz baz}%
Bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar
bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar
bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar.
\subsection{Without new paragraph}
\subsubsection{Text blocks}
Foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo.
\marginpar{Baz baz baz baz baz}%
Bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar
bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar
bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar.
\subsubsection{Equation ending}
Foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo.
\begin{equation}
a = b
\end{equation}
\marginpar{Baz baz baz baz baz}%
Bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar
bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar
bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar.
\end{document}


raiseboxes into one (using thecalcpackage for computation). The code is also not robust regarding font sizes: making the text\Hugerequires adaption of the0.7\baselineskip. +1 nonetheless. – mafp May 14 '13 at 16:00\raisebox). – Steven B. Segletes May 14 '13 at 17:34\raiseboxparameter to\ht\strutbox-\height, this seems to be conceptually clearer. – mafp May 14 '13 at 21:20\marginnoteof themarginnotepackage works out of the box, except for text size changes. So I think I will use that. – mafp May 14 '13 at 21:22