- Questo topic ha 12 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 10 anni, 6 mesi fa da
OldClaudio.
-
CreatoreTopic
-
24 Febbraio 2016 alle 11:06 #105303::
Salve a tutti.Sono un nuovo iscritto di questo forum e sto scrivendo la tesi di laurea magistrale con latex.
Prima di tutto vorrei ringraziare tutti coloro che con le loro guide e le loro risposte mi hanno permesso di accostarmi a questo linguaggio di scrittura.Per quanto riguarda il mio quesito, nel preambolo caricato il pacchetto hyperref con le seguenti impostazioni:
`\usepackage[colorlinks = true,
linkcolor = blue,
urlcolor = blue,
citecolor = blue,
anchorcolor = blue]{hyperref}`Il problema è che quando vado a generale l’indice generale con il comando:
`\tableofcontents`
i riferimenti ai capitoli e alle sezioni contenuti nell’indice sono situati sulle righe che identificano il nome dei rispettivi capitoli e sezioni. A questo punto vorrei mantenere l’evidenza nel testo dei riferimenti
facendo in modo che il riferimento sia situato sul numero di pagina e non sul testo dell’indice.E’ possibile?
Spero di essermi spiegato in modo chiaro.
-
CreatoreTopic
-
AutoreRisposte
-
-
24 Febbraio 2016 alle 14:13 #105304
-
24 Febbraio 2016 alle 14:56 #105305::
Ho modificato il codice in questo modo:`\usepackage[colorlinks = true,
linkcolor = blue,
urlcolor = blue,
citecolor = blue,
anchorcolor = blue]{hyperref}
\hypersetup{hyperindex = true,
linktocpage = true}`ottenendo esattamente il risultato che avevo in mente.
Ti ringrazio per il suggerimento.
-
24 Febbraio 2016 alle 21:06 #105306::
Dorian” post=105361Ho modificato il codice in questo modo:
`\usepackage[colorlinks = true,
linkcolor = blue,
urlcolor = blue,
citecolor = blue,
anchorcolor = blue]{hyperref}
\hypersetup{hyperindex = true,
linktocpage = true}`ottenendo esattamente il risultato che avevo in mente.[…]
Be’, l’opzione [tt]hyperindex[/tt] non c’entra, però: serve per l’indice analitico. L’opzione che fa quel che interessa a te è solo [tt]linktocpage[/tt].
Io, poi, metterei tutto dentro a [tt]\hypersetup[/tt]: caricherei il pacchetto dicendo semplicemente`\usepackage{hyperref}`e poi, più sotto,`\hypersetup{
colorlinks, % = true per default
linkcolor = blue,
urlcolor = blue,
citecolor = blue,
anchorcolor = blue,
linktocpage
}`Ciao.
—
Gustavo
-
24 Febbraio 2016 alle 22:40 #105307::
Grazie.. domani mattina modifico il codice come mi hai suggerito però tra le opzioni mantengo [tt]hyperindex[/tt] perché ho anche l’indice analitico.`\hypersetup{
colorlinks, % = true per default
linkcolor = blue,
urlcolor = blue,
citecolor = blue,
anchorcolor = blue,
linktocpage = true,
hyperindex = true
}`
-
24 Febbraio 2016 alle 23:35 #105308
-
25 Febbraio 2016 alle 8:36 #105309::
Ho modificato il codice come mi hai suggerito. Il risultato dopo la compilazione non è cambiato (come da attese).Ultima domanda: scrivere il codice
`\usepackage{hyperref}
\hypersetup{
colorlinks = true,
linkcolor = blue,
urlcolor = blue,
citecolor = blue,
anchorcolor = blue,
linktocpage = true,
hyperindex = true
}
`è preferibile unicamente per questioni di pulizia del codice stesso o ci possono essere casi in cui il risultato della compilazione può cambiare rispetto alla prima proposta di modifica che avevo avanzato?
Andrea
-
25 Febbraio 2016 alle 13:26 #105310::
Dorian” post=105373[…]
Ultima domanda: scrivere il codice
`\usepackage{hyperref}
\hypersetup{
colorlinks = true,
linkcolor = blue,
urlcolor = blue,
citecolor = blue,
anchorcolor = blue,
linktocpage = true,
hyperindex = true
}
`è preferibile unicamente per questioni di pulizia del codice stesso o ci possono essere casi in cui il risultato della compilazione può cambiare rispetto alla prima proposta di modifica che avevo avanzato?
[…]Risponderei per approssimazioni successive.
In prima approssimazione, non vi è differenza sostanziale tra le opzioni passate nell’argomento opzionale di`\usepackage[…]{hyperref}`e quelle passate tramite (l’argomento obbligatorio de) il comando [tt]\hypersetup[/tt]. Tuttavia bisogna ricordare alcune peculiarità del modo in cui il nucleo del LaTeX tratta le opzioni passate tramite [tt]\usepackage[/tt], una delle quali è che esso rimuove gli spazi «non protetti», cioè gli spazi che non si trovano racchiusi tra [tt]{[/tt] e [tt]}[/tt]; ciò rende necessario usare qualche graffa in più se si passano le opzioni tramite [tt]\usepackage[/tt], rispetto a quel che si farebbe usando [tt]\hypersetup[/tt]. Per esempio, mentre è lecito scrivere`\hypersetup{pdfborder=0 0 0}`non è possibile farlo, invece, usando [tt]\usepackage[/tt]: bisogna scrivere`\usepackage[pdfborder={0 0 0}]{hyperref}`
Come seconda approssimazione, passerei a parlare di un’altra caratteristica del nucleo del LaTeX: il fatto che ciascun pacchetto viene caricato una sola volta, anche qualora ne venisse richiesto il caricamento in più occasioni successive. E quando mai capita una cosa del genere, mi dirai tu: sono ordinato, io, mi dirai, non sono mica uno di quelli che nel preambolo mettono dozzine e dozzine di dichiarazioni [tt]\usepackage[/tt] copiate chissà da dove, e, senza neanche accorgersene, reiterano tre o quattro volte la richiesta dello stesso pacchetto! Il punto è che tu magari non lo fai direttamente, però uno dei pacchetti che tu carichi, senza che tu lo sappia, ne richiama (con [tt]\RequirePackage[/tt]) un altro che è già stato caricato, oppure, più facilmente, che tu tenterai di ri-caricare poco dopo; ciò succede molto più di frequente di quanto non si pensi, e può benissimo capitare anche con hyperref.
Orbene, quando incontra una dichiarazione [tt]\usepackage[/tt] (o [tt]\RequirePackage[/tt]) relativa a un pacchetto già caricato, il LaTeX non lo carica di nuovo, e ciò comporta che le eventuali opzioni specificate in tutte le richieste di un dato pacchetto successive alla prima non vengono passate al pacchetto stesso. Per impedire che vengano a crearsi situazioni nelle quali un utente creda di aver passato certe opzioni a un pacchetto, quando in realtà il pacchetto stesso non le ha mai ricevute, gli autori del LaTeX hanno pensato bene (e bene davvero!) di far sì che tutte le richieste, successive alla prima, di un dato pacchetto, pur non caricando il pacchetto stesso, nondimeno controllino che le opzioni specificate nella richiesta reiterata siano un sottoinsieme di quelle indicate nella prima richiesta (l’unica che ha dato effettivamente luogo al caricamento del pacchetto e ha effettivamente girato a esso le opzioni specificate); se così non è, la compilazione si arresta con un messaggio di conflitto di opzioni (option clash).
Però, dal momento che l’insieme vuoto è un sottoinsieme di qualsiasi insieme, ne segue che una dichiarazione [tt]\usepackage[/tt] priva di opzioni non potrà mai dare luogo a un conflitto. Ecco perché è meglio scrivere semplicemente `\usepackage{hyperref}`e usare poi [tt]\hypersetup[/tt]: in questo modo si evitano errori nel caso che hyperref sia già stato caricato da un altro pacchetto (hyperref va caricato quasi sempre per ultimp!).
OK, ora sono un po’ stanco, e quindi temo che, per le ulteriori approssimazioni (che sono ugualmente importanti, se non di più), dovrai aspettare un altro messaggio, mio o di qualcun altro che voglia prendere il mio testimone…
Ciao.
—
Gustavo
-
25 Febbraio 2016 alle 13:35 #105311
-
25 Febbraio 2016 alle 18:35 #105312::
«Io dico, seguitando,» che l’essere [tt]\hypersetup[/tt] un canale gestito direttamente da hyperref e indipendente da quello usato per il passaggio delle opzioni ha anche un altro vantaggio (e siamo qui alla terza approssimazione): che esso può essere usato anche fuori del preambolo, a documento già iniziato, per cambiare alcune delle impostazioni solo da un certo punto in poi. Però questo, ribadisco, vale solo per alcune impostazioni: il manuale di hyperref precisa, per ciascuna opzione, se essa possa essere impostata solo nel preambolo, solo prima del primo utilizzo, ecc.Vi sono però (quarta approssimazione) anche impostazioni che devono obbligatoriamente essere effettuate con [tt]\hypersetup[/tt], e non possono essere passate nell’argomento opzionale di [tt]\usepackage[/tt]: sono tutte quelle che impostano i cosiddetti «metadati» di un file PDF, e cioè [tt]pdftitle[/tt], [tt]pdfauthor[/tt], [tt]pdfsubject[/tt], [tt]pdfkeywords[/tt], [tt]pdfcreationdate[/tt], [tt]pdfmoddate[/tt]… basta, mi sembra di averle dette tutte.
Per ulteriori informazioni, consulta il manuale di hyperref.
Ciao.
—
Gustavo
-
25 Febbraio 2016 alle 21:55 #105313::
Ti aggiungo un’altra informazione pratica che è nascosta fra le parole che ti ha scritto @letteracpd.Caricare più volte il pacchetto hyperref è un acosa che non adrebbe fatta ma in certe circostanze va fatta.
Un esempio pratico è costituito dal pacchetto pdfx che va obbligatoriamente caricato dopo aver impostato le codifiche, ma prima di caricare hyperref solo e soltanto se questo è caricato senza opzioni. Poi dopo le opzioni si possono impostare con \hypersetup.Perché? Perché pdfx ha bisogno di impostare certe sue opzioni a hyperref, quindi se lo carica al suo momento giusto e con e sue opzioni obbligatorie per svolgere le sue funzioni, in particolare per inserire certi metadati specifici per la conformità con le norme ISO PDF/X oppure PDF/A. L’utente non deve preoccuparsene, ci pensa lui a gestirsi el sue opzioni. Dopo, però, l’utente che può avere letto solo distrattamente la documentazione di pdfx carica hyperref senza opzioni, e questo come ha specificato @letteracpd, è perfettamente lecito in quanto un insieme di opzioni vuoto è senz’altro un sottoinsieme di qualunque insieme non vuoto. Poi le opzioni che gli servono l’utente se le carica da solo con \hypersetup; può farlo a più riprese e anche se specifica delle opzioni già specificate in precedenza non fa nulla, le ultime impostazioni sono quelle che contano; e siccome le opzioni di hyperref sono quasi tutte del tipo chiave=valore, l’utente può cambiare il valore di opzioni già specificate con un altro valore.
Nel caso specifico i metadati necessari per soddisfare le norme ISO PDF/A e PDF/X vanno inserite in file a parte, non è nemmeno necessario specificare le specifiche opzioni per i metadati che ha indicato Gustavo, perché vanno inseriti in modo diverso al fine di rispettare quelle norme ISO.
Per saperne di più, oltre alla documentazione di hyperref e di pdfx, varrebbe la pena leggere il capitolo sul formato PDF/A nella Guida GuIT, liberamente scaricabile dalla sezione Documentazione di questo sito. Tutto ciò potrebbe sembrare off topic, ma è una spiegazione al tuo quesito applicata ad un caso particolare.
-
26 Febbraio 2016 alle 16:36 #105314
-
26 Febbraio 2016 alle 17:09 #105315::
Ti dirò come ho fatto io, ma penso che gli altri “anziani” del gruppo ti potrebbero dire le stesse cose.Quando ho cominciato a lavorare con LaTeX nel 1986 (ormai sono 30 anni fa) non c’erano foru, non c’erano guide, c’era solo i manuale di Lamport che dovevi ordinare in libreria e ti arrivava dopo mesi costandoti una barca di quattrini; se per caso avevi la fortuna di andare negli USA, allora poteva darsi che lo potessi comprare a miglior prezzo se lo trovavi in qualche libreria residente dentro qualche università.
Si tratta va di LaTeX 2.09 ed era una carriola rispetto al LaTeX2e di oggi, non aveva pacchetti, per lo meno non aveva i più di 3000 pacchetti di oggi.
Per fare qualunque cosa che non fosse realizzabile con i comandi per l’utente descritti nel manuale di Lamport, dovevi mettere il naso dentro i file del sistema, cercare di decifrarli e poi dovevi cercare di mettere insieme qualcosa che potesse essere simile ma diverso da quello che era stato codificato dal team originale di LaTeX; ovviamente nulla era documentato se non con commenti criptici all’interno dei file.Non avevamo nemmeno le interfacce grafiche che ci sono oggi; Windows 1 non era ancora uscito, per lo meno non era ancora disponibile in Italia, ma quello, sulle macchine windows, era il primo programma a finestre per scrivere in modo interattivo.
Quindi abbiamo cercato fin dall’inizio di diventare apprendisti stregoni; o mangiar questa minestra o saltar dalla finestra.
Ma così facendo abbiamo imparato tanto e ora ci muoviamo con più destrezza sapendo che cosa c’è sotto il cofano di questo meraviglioso tipocompositore quale sono diventati i programmi pdfLaTeX, XeLaTeX, LuaLaTeX, ConTeXt, eccetera.Nonostante questo ancora oggi talvolta mi trovo in difficoltà e prendo fischi per fiaschi. 😐 🙁 😳
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.