Re: Riferimenti incrociati contenenti il testo del riferimento

#85321
Up
0
Down
::

Amedeo” post=84726Ciao a tutti,

devo predisporre un documento in cui vengono usati riferimenti incociati. Mi piacerebbe, però, riportare anche a cosa fa riferimento il riferimento stesso, ad esempio il titolo del capitolo o della sezione riferita. La soluzione che riporto nel codice seguente è puramente indicativa e fa abbastanza schifo ma serve a capire cosa vorrei fare:

`
\documentclass{book}
\def\MyTitCapIni{Capitolo iniziale}
\def\MyTitCapFin{Capitolo finale}
\def\MyTitSecIni{Sezione iniziale}
\def\MyTitSecFin{Sezione finale}

\begin{document}

Nel \MyTitCapIni \hspace{5pt}\ref{cha:ini} a pag. \pageref{cha:ini}\\
Nel \MyTitCapFin \hspace{5pt}\ref{cha:fin} a pag. \pageref{cha:fin}\\
Nella \MyTitSecIni \hspace{5pt}\ref{sec:ini} a pag. \pageref{sec:ini}\\
Nella \MyTitSecFin \hspace{5pt}\ref{sec:fin} a pag. \pageref{sec:ini}\\

\chapter{\MyTitCapIni}\label{cha:ini}

Questo capitolo …

\section{\MyTitSecIni}\label{sec:ini}

Questa sezione …

\chapter{\MyTitCapFin}\label{cha:fin}

Questo capitolo …

\section{\MyTitSecFin}\label{sec:fin}

Questa sezione …

\end{document}
`

Con questa soluzione sono obbligato a definire in anticipo i titoli di capitoli e sezioni, mentre mi piacerebbe che il riferimento fosse dinamicamente legato al titolo indicato nel comandi \chapter o \section. Dovrei creare dei comandi personalizzati, ad esempio per \chapter, in cui “memorizzare” il titolo in una label?

Grazie come sempre per i vostri suggerimenti

a

Usare il comando [tt]nameref[/tt] del pacchetto [tt]hyperref[/tt]? Tipo: `
\documentclass{book}
\usepackage[hidelinks]{hyperref}

\def\MyTitCapIni{Capitolo iniziale}
\def\MyTitCapFin{Capitolo finale}
\def\MyTitSecIni{Sezione iniziale}
\def\MyTitSecFin{Sezione finale}

\begin{document}

Nel Capitolo~\nameref{cha:ini} \hspace{5pt}\ref{cha:ini} a pag. \pageref{cha:ini}

Nel Capitolo~\nameref{cha:fin} \hspace{5pt}\ref{cha:fin} a pag. \pageref{cha:fin}

Nella Sezione~\nameref{sec:ini} \hspace{5pt}\ref{sec:ini} a pag. \pageref{sec:ini}

Nella Sezione~\nameref{sec:fin} \hspace{5pt}\ref{sec:fin} a pag. \pageref{sec:ini}

\chapter{\MyTitCapIni}\label{cha:ini}

Questo capitolo …

\section{\MyTitSecIni}\label{sec:ini}

Questa sezione …

\chapter{\MyTitCapFin}\label{cha:fin}

Questo capitolo …

\section{\MyTitSecFin}\label{sec:fin}

Questa sezione …

\end{document}
` Ma questa è un’idea base base: ci sono pacchetti appositi per queste necessità ([tt]cleveref[/tt], [tt]varioref[/tt] e altri).

Ciao
Claudio

Go to top