Re: Hyperlink tra due diversi file

#3590
Up
0
Down
::


La caratteristica che cercavo non rientra a quanto pare nelle possibilità né di xdvi né di HyperTeX,
almeno nella sua semplice applicazione hyperbasics.tex, quella che adopero io.
Quindi sarei dovuto riuscire a convincere qualcuno degli autori
(Stefan Urlich per xdvik o Tamnmoy Bhattacharya per hyperbasics.tex)
ad apportare le opportune modifiche alle rispettive applicazioni,
cosa tutt’altro che facile. 🙄

💡 Ho trovato invece una soluzione non so se raffinata
o invece piuttosto ‘casareccia’ e arrangiata. Comunque funziona.
Forse la spiegazione che ora riporto non potrà essere molto utile agli utenti di LaTeX
(io uso plain TeX), ma chissà.

Per creare i riferimenti incrociati (cross references) io adopero il pacchetto eplain.tex,
coi suoi due comandi: \definexref{}{}{} per l’etichetta
(quella che in LaTeX se non sbaglio corrisponde al comando \label)
e \ref{} o \refn{} per il riferimento.
Avevo già provveduto a modificare leggermente il file eplain.tex per avere la possibilità di creare riferimenti incrociati anche tra due diversi file
(e senza bisogno di specificare i loro nomi, naturalmente!):
per evitare di essere troppo prolisso qui non spiego come,
ma se a qualcuno interessa basta inviare un messaggio su questo topic.
Chiamiamo myeplain.tex questa versione leggermente modificata di eplain.tex.
Quindi ho fatto così.

Nel file1.tex ho scritto:

`\input myeplain
\input hyperbasics
\newtoks\filename
\filename={file1}

\hyperdef\mysymbol{label1}{}{}\definexref{label1}{\the\filename.dvi}{}

\vfill\eject\end`

, e nel file2.tex

`\input myeplain
\input hyperbasics
\definexref{}{}{} %non so perché ma è necessario inserire questa riga,
%altrimenti ci sono guai

\hyperref{\refn{label1}}{label1}{}{Voila!}

\vfill\eject\end`

In questo modo ottengo l’hyperlink dal file2.dvi nel file1.dvi senza far riferimento al file1.dvi.
L’unico incomodo è quello di dover riassegnare la variabile \filename
se il file1 dovesse cambiare nome, poco male.

Ciao,
Rodolfo

Go to top