<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>
This macro for marginal notes is based upon an example by Robin Fairbairns along with some modifications from this list. It seems to work quite well although it contains a spurious space that I am unable to locate and I'm sure a number of refinements could be made to improve it.<br><br>My problem is that if I enable hyperlinks and use the indexing macros I get the following message:<br><br>pdfTeX warning (dest): name {IDXPG2} has been referenced but does not exist, replaced by a fixed one.<br><br>The warning goes away if I use the optional argument [idxexact] with \enablehyperlinks<br><br>Any suggestions how to sort this out?<br><br>Thanks,<br>Adam Fenn.<br><br><br>%------------- test file---------------<br><br>\input eplain<br>\enablehyperlinks%[idxexact]<br>\hsize = 10cm <br><br>% \marginalia macro<br>\def\raggedleft{\spaceskip=.3333em \xspaceskip=.5em<br>&nbsp;&nbsp;&nbsp;&nbsp; \parfillskip=0pt \leftskip=0pt plus\hsize}<br><br>\def\lmarginaliabox#1{%<br>&nbsp;&nbsp;&nbsp; \vtop to 0pt{%<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \raggedright<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \hsize=.9in<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \parindent=0pt<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \vss<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }} <br><br>\def\rmarginaliabox#1{%<br>&nbsp;&nbsp;&nbsp; \vtop to 0pt{%<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \raggedleft<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \hsize=.9in<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \parindent=0pt<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \vss<br>&nbsp;&nbsp;&nbsp;&nbsp; }} <br><br>\newskip\inmarginspacing \inmarginspacing=1em<br>\def\strutdepth{\dp\strutbox}<br><br>\newcount\marginalno&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>\marginalno0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br><br>\def\marginalpage#1#2{%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; \expandafter\def\csname marginalpage#1\endcsname{#2}}<br><br>\let\protect\relax<br>\newread\auxin<br>\newwrite\auxout<br>\openin\auxin\jobname.aux<br>\ifeof\auxin<br>&nbsp; \let\noaux=1<br>&nbsp; \immediate\openout\auxout\jobname.aux<br>&nbsp; \immediate\closeout\auxout<br>\else<br>&nbsp; \let\noaux=0<br>&nbsp; \closein\auxin<br>\fi<br>\input \jobname.aux<br><br>\outer\def\bye{%<br>&nbsp; \par\vfill\supereject<br>&nbsp; \ifx\noaux1<br>&nbsp;&nbsp;&nbsp; \newlinechar=`\^^J<br>&nbsp;&nbsp;&nbsp; \message{^^J(Run TeX a second time to resolve marginal note placing)}%<br>&nbsp; \fi<br>&nbsp; \end<br>}<br><br>\immediate\openout\auxout \jobname.aux<br>\def\protect{\noexpand\protect\noexpand}<br><br>\def\marginalia#1{%<br>\strut\vadjust{%<br>&nbsp; \nobreak<br>&nbsp; \kern-\strutdepth<br>&nbsp; \vtop to \strutdepth{%<br>&nbsp;&nbsp;&nbsp; \vss<br><br>&nbsp; \global\advance\marginalno1<br>&nbsp; \edef\writeit{\write\auxout{%<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \protect\marginalpage<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {\number\marginalno}%<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {\noexpand\number\count0}}}<br>&nbsp; \writeit<br>&nbsp; \expandafter\ifodd0\csname marginalpage\number\marginalno\endcsname<br>&nbsp; <br>% odd page stuff here<br>\rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces<br>\lmarginaliabox{{\it #1}}}<br>\else<br>% even page stuff here<br>\llap{\ignorespaces \rmarginaliabox{{\it #1}}\hskip\inmarginspacing}<br>&nbsp;\fi<br>\baselineskip=\strutdepth<br>\null<br>}}}<br><br><br>This is a test \marginalia{a note in the margin} to see what happens.<br><br><br>\vfill\eject<br>\idx{Test}<br>\vfill\eject<br>\readindexfile{i}<br>\bye<br>%------------------------------------<br><br /><hr />Get fish-slapping on Messenger! <a href='http://clk.atdmt.com/UKM/go/msnnkmgl0010000008ukm/direct/01/' target='_new'>Play Now</a></body>
</html>