[tex-eplain] Marginal notes
Oleg Katsitadze
olegkat at gmail.com
Sat Jun 14 07:11:06 CEST 2008
On Thu, Jun 12, 2008 at 11:31:18AM +0000, Adam Fenn wrote:
> My problem is that if I enable hyperlinks and use the indexing macros I get the following message:
>
> pdfTeX warning (dest): name {IDXPG2} has been referenced but does not exist, replaced by a fixed one.
This is because your handling of the .aux file interferes with that of
Eplain. You shouldn't try to open/close it yourself, let Eplain
handle it. Below I include a corrected sample. I commented out all
.aux-related commands and replaced them with those from Eplain.
Another approach would be to use a different extension for the
marginalia aux file, e.g., .aum. (Caveat: don't try to use .tmp
either -- it might be used by Eplain under certain circumstances).
> The warning goes away if I use the optional argument [idxexact] with \enablehyperlinks
This is because idxexact-style index hyperlinks don't use the .aux
file.
Best,
Oleg
\input eplain
\enablehyperlinks%[idxexact]
\hsize = 10cm
% \marginalia macro
\def\raggedleft{\spaceskip=.3333em \xspaceskip=.5em
\parfillskip=0pt \leftskip=0pt plus\hsize}
\def\lmarginaliabox#1{%
\vtop to 0pt{%
\raggedright
\hsize=.9in
\parindent=0pt
#1
\vss
}}
\def\rmarginaliabox#1{%
\vtop to 0pt{%
\raggedleft
\hsize=.9in
\parindent=0pt
#1
\vss
}}
\newskip\inmarginspacing \inmarginspacing=1em
\def\strutdepth{\dp\strutbox}
\newcount\marginalno
\marginalno0
\def\marginalpage#1#2{%
\expandafter\def\csname marginalpage#1\endcsname{#2}}
\let\protect\relax
%\newread\auxin
%\newwrite\auxout
%\openin\auxin\jobname.aux
%\ifeof\auxin
% \let\noaux=1
% \immediate\openout\auxout\jobname.aux
% \immediate\closeout\auxout
%\else
% \let\noaux=0
% \closein\auxin
%\fi
%\input \jobname.aux
\readauxfile
\outer\def\bye{%
\par\vfill\supereject
% \ifx\noaux1
% \newlinechar=`\^^J
% \message{^^J(Run TeX a second time to resolve marginal note placing)}%
% \fi
\end
}
%\immediate\openout\auxout \jobname.aux
\def\protect{\noexpand\protect\noexpand}
\def\marginalia#1{%
\strut\vadjust{%
\nobreak
\kern-\strutdepth
\vtop to \strutdepth{%
\vss
\global\advance\marginalno1
% \edef\writeit{\write\auxout{%
\edef\writeit{\write\auxfile{%
\protect\marginalpage
{\number\marginalno}%
{\noexpand\number\count0}}}
\writeit
\expandafter\ifodd0\csname marginalpage\number\marginalno\endcsname
% odd page stuff here
\rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces
\lmarginaliabox{{\it #1}}}
\else
% even page stuff here
\llap{\ignorespaces \rmarginaliabox{{\it #1}}\hskip\inmarginspacing}
\fi
\baselineskip=\strutdepth
\null
}}}
This is a test \marginalia{a note in the margin} to see what happens.
\vfill\eject
\idx{Test}
\vfill\eject
\readindexfile{i}
\bye
More information about the tex-eplain
mailing list