Getting \marginpar on the right side

In twoside documents, LaTeX makes sterling attempts to put \marginpars in the correct margin (the outer or the gutter margin, according to the user's command). However, a booby-trap arises because TeX runs its page maker asynchronously. If a \marginpar is processed while page n is being being built, but doesn't get used until page n+1, then the \marginpar will turn up on the wrong side of the page. This is an instance of a general problem: see "finding if you're on an odd or an even page".

The solution to the problem is for LaTeX to 'remember' which side of the page each \marginpar should be on. The mparhack package does this, using marks stored in the .aux file.

mparhack.sty
macros/latex/contrib/supported/mparhack.tar.gz