- Questo topic ha 9 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 17 anni, 6 mesi fa da
egreg9.
-
CreatoreTopic
-
24 Febbraio 2009 alle 14:38 #31252::
Devo creare un doppio indice per il mio documento, uno in italiano ed uno in inglese. Avendo scritto tutto in inglese il comando \listofcontents mi crea correttamente l’indice in questa lingua. Ora vorrei creare un indice in italiano ma usando non i titoli originali dei capitoli, delle sezioni, … ma le rispettive traduzioni che potrei mettere come titolo secondario. Come posso fare?
Posso anche cambiare la parola “Contents” dell’indice in inglese con “Index”?
Grazie mille per le risposte.
-
CreatoreTopic
-
AutoreRisposte
-
-
24 Febbraio 2009 alle 15:40 #31253::
Devo creare un doppio indice per il mio documento, uno in italiano ed uno in inglese. Avendo scritto tutto in inglese il comando \listofcontents mi crea correttamente l’indice in questa lingua. Ora vorrei creare un indice in italiano ma usando non i titoli originali dei capitoli, delle sezioni, … ma le rispettive traduzioni che potrei mettere come titolo secondario. Come posso fare?
Posso anche cambiare la parola “Contents” dell’indice in inglese con “Index”?
Grazie mille per le risposte.Copiati il codice seguente in un file che chiamerai dbltoc.sty (da tenere insieme al tuo documento principale):
`\ProvidesPackage{dbltoc}\newif\if@uniquetoc
\DeclareOption{unique}{\@uniquetoctrue}\ProcessOptions\relax
\RequirePackage{shorttoc}
\def\secondary@title#1#2{%
\@namedef{secondary#1}##1{%
\addcontentsline{toc}{secondary#1}{%
\ifnum\c@secnumdepth>#2\relax
\protect\numberline{\csname the#1\endcsname}%
\fi
##1}}%
}
\secondary@title{chapter}{-1}
\secondary@title{section}{0}
\secondary@title{subsection}{1}
\secondary@title{subsubsection}{2}
\secondary@title{paragraph}{3}
\secondary@title{subparagraph}{4}\def\secondaryl@#1{%
\expandafter\let\csname l@secondary#1\expandafter\endcsname
\csname l@#1\endcsname}\secondaryl@{chapter}
\secondaryl@{section}
\secondaryl@{subsection}
\secondaryl@{subsubsection}
\secondaryl@{paragraph}
\secondaryl@{subparagraph}\let\@@tableofcontents\tableofcontents
\def\tableofcontents{%
\begingroup
\disable@secondary
\if@uniquetoc
\@@tableofcontents
\else
\shorttoc{\contentsname}{\value{tocdepth}}%
\fi
\endgroup}\def\secondarytableofcontents{%
\if@uniquetoc\else
\begingroup
\let\contentsname\secondarycontentsname
\disable@primary\@@tableofcontents
\endgroup
\fi}\def\disable@secondary{%
\let\l@secondarychapter\@gobbletwo
\let\l@secondarysection\@gobbletwo
\let\l@secondarysubsection\@gobbletwo
\let\l@secondarysubsubsection\@gobbletwo
\let\l@secondaryparagraph\@gobbletwo
\let\l@secondarysubparagraph\@gobbletwo}\def\disable@primary{%
\let\l@chapter\@gobbletwo
\let\l@section\@gobbletwo
\let\l@subsection\@gobbletwo
\let\l@subsubsection\@gobbletwo
\let\l@paragraph\@gobbletwo
\let\l@subparagraph\@gobbletwo}\endinput`
La struttura del tuo file sarà
`\documentclass[a4paper]{book}
…\usepackage{dbltoc}
\newcommand{\secondarycontentsname}{Indice}…
\begin{document}
\frontmatter
…\tableofcontents
\secondarytableofcontents
…
\mainmatter
\chapter{Here comes the fun}
\secondarychapter{Adesso ci divertiamo}\section{A nice journey}
\secondarysection{Un bel viaggio}…
\end{document}`
Se da qualche parte usi \addcontentsline{toc}{chapter}{English text}, aggiungici subito dopo \addcontentsline{toc}{secondarychapter}{Testo in italiano}Con \usepackage[unique]{dbltoc} la produzione dell’indice supplementare è soppressa e il comando \secondarytableofcontents non fa nulla.
Non ti dico come cambiare “Contents” in “Index” perché “index” in inglese non ha nulla a che vedere con l’indice generale.
Ciao
EnricoNOTA: modificato il file dbltoc.sty rispetto alla prima versione’; corretto anche un errore di stampa.
-
24 Febbraio 2009 alle 22:36 #31254::
Grazie mille per l’aiuto veloce e preciso. Ho provato ad implementare la tua soluzione ma mi da errore sul primo `\addcontentsline{secondarychapter}{Nome italiano}` dicendoRunaway argument?
! Paragraph ended before \addcontentesline was complete.
l’errore è incontrato nel seguente file incluso in quello principale
`\chapter*{Introduzione}
\markboth{Introduzione}{Introduzione}
\addcontentsline{toc}{chapter}{Introduzione}
\addcontentsline{secondarychapter}{Introduction}`
-
24 Febbraio 2009 alle 22:46 #31255::
Grazie mille per l’aiuto veloce e preciso. Ho provato ad implementare la tua soluzione ma mi da errore sul primo `\addcontentsline{secondarychapter}{Nome italiano}` dicendo
Runaway argument?
! Paragraph ended before \addcontentesline was complete.
l’errore è incontrato nel seguente file incluso in quello principale
`\chapter*{Introduzione}
\markboth{Introduzione}{Introduzione}
\addcontentsline{toc}{chapter}{Introduzione}
\addcontentsline{secondarychapter}{Introduction}``\addcontentsline{toc}{secondarychapter}{Nome italiano}`
Ciao
Enrico
-
25 Febbraio 2009 alle 11:28 #31256
-
25 Febbraio 2009 alle 11:48 #31257::
Sistemata la mia svista funziona tutto alla perfezione per l’indice secondario. Mi rimane solo l’ultimo problemino: sembra che il secondo comando \tabelofcontents nel documento non produca nessun risultato. Si può fare solo una volta per file?
Quale secondo comando \tableofcontents? Ce n’è uno solo nel mio esempio.
Ciao
Enrico
-
25 Febbraio 2009 alle 14:23 #31258
-
25 Febbraio 2009 alle 14:30 #31259::
Nel mio documento devo creare due indici, uno in italiano ed uno in inglese. Qualunque combinazione io provi mi crea sempre solo il primo tra \tableofcontents e \secondarytableofcontents.
`\documentclass[a4paper]{book}
\usepackage{dbltoc}\newcommand{\secondarycontentsname}{Indice}
\begin{document}
\frontmatter\tableofcontents
\secondarytableofcontents
\mainmatter
\chapter{ABC}
\secondarychapter{ABC IT}\section{DEF}
\secondarysection{DEF IT}\end{document}`
Se compilo questo ho due indici, esattamente come si voleva; il primo in inglese e il secondo in italiano. Ovviamente non puoi mettere \secondarytableofcontents per primo.Vorresti, di grazia, farci capire come hai provato?
Ciao
Enrico
-
25 Febbraio 2009 alle 14:59 #31260::
`\documentclass[a4paper, oneside, titlepage, italian]{book}\usepackage{dbltoc} %per creare il doppio indice
\newcommand{\secondarycontentsname}{Indice} %per creare il doppio indice\begin{document}
\selectlanguage{italian}
\secondarytableofcontents %indice in italiano\addcontentsline{toc}{chapter}{Contents}
\addcontentsline{toc}{secondarychapter}{Contents}
\selectlanguage{english}
\tableofcontents %indice in inglese\addcontentsline{toc}{chapter}{List of figures}
\addcontentsline{toc}{secondarychapter}{Elenco delle figure}
\listoffigures\addcontentsline{toc}{chapter}{List of tables}
\addcontentsline{toc}{secondarychapter}{Elenco delle tabelle}
\listoftables\chapter{My work}
\secondarychapter{Il mio lavoro}\chapter{My life}
\secondarychapter{La mia vita}\end{document}`
-
25 Febbraio 2009 alle 15:16 #31261::
`\documentclass[a4paper, oneside, titlepage, italian]{book}
\usepackage{dbltoc} %per creare il doppio indice
\newcommand{\secondarycontentsname}{Indice} %per creare il doppio indice\begin{document}
\selectlanguage{italian}
\secondarytableofcontents %indice in italiano\addcontentsline{toc}{chapter}{Contents}
\addcontentsline{toc}{secondarychapter}{Contents}
\selectlanguage{english}
\tableofcontents %indice in inglese\addcontentsline{toc}{chapter}{List of figures}
\addcontentsline{toc}{secondarychapter}{Elenco delle figure}
\listoffigures\addcontentsline{toc}{chapter}{List of tables}
\addcontentsline{toc}{secondarychapter}{Elenco delle tabelle}
\listoftables\chapter{My work}
\secondarychapter{Il mio lavoro}\chapter{My life}
\secondarychapter{La mia vita}\end{document}`
Ora devo proprio perdere le staffe. Come può l’indice in italiano venire prima di quello in inglese?
Leggi il messaggio precedente, dove ti dico che \secondarytableofcontents va DOPO \tableofcontents. Non era sufficientemente chiaro?
Poi ridiscutiamo della faccenda, ma prima vorrei essere sicuro che tu abbia capito. Se per caso chi è più in alto pretende l’indice in italiano per primo (che è ridicolo), si deve aggiustare il file dbltoc.sty.
Ciao
Enrico
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.