Re: Problema con ambiente theindex

#67063
Up
0
Down
::

Stefanouniecons” post=66034Buon giorno a tutti! Sto scrivendo la mia tesi di laurea magistrale con LaTeX e fino ad ora sono riuscito a risolvere tutti i problemi che ho di volta in volta incontrato grazie alle guide e al forum. Ora invece ho bisogno di un aiuto perché non riesco a capire in quale parte del mio codice sia annidato l’errore. Infatti, quando compilo il file, compare un errore (che credo sia dovuto all’indice analitico) che riporto: “\begin{theindex} on input line 1 ended by \end{multicols}”. Prima di riportare il codice che sto usando segnalo che ho proceduto a ridefinire l’ambiente theindex cercando di attenermi alle indicazioni riportate nella guida “Introduzione all’arte della composizione tipografica con LaTeX” a pag. 321 al fine di riportare, subito sotto il titolo dell’indice analitico, un breve testo di spiegazione dell’indice analitico medesimo.

Ecco la struttura della mia tesi:
`
\documentclass[a4paper,12pt,twoside,titlepage,openright]{book}
\usepackage[italian]{babel}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{indentfirst}
\usepackage[table,dvipsnames]{xcolor}
\usepackage{color}
\usepackage{enumitem}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{url}
\usepackage{footnote}
\usepackage{parallel}
\usepackage{makeidx}
\usepackage{footmisc}
\usepackage{framed}
\usepackage{verbatim}
\usepackage{multicol}
\usepackage{mymacros} %richiama il file mymacros.sty contenente la ridefinizione dell'ambiente theindex
\usepackage{wrapfig}
\usepackage{fancyhdr}
\usepackage{framed}
\usepackage{tocloft}
\usepackage{fncychap}
\usepackage{float}
\usepackage{array}
\usepackage{microtype}
\usepackage{booktabs}
\usepackage{eso-pic,graphicx}
\usepackage{pxfonts}
\linespread{1.05}

\expandafter\let\csname ps@plain\expandafter\endcsname\csname ps@empty\endcsname %elimina il numero di pagina in ogni pagina iniziale (di capitoli, indici etc.)

\addto\captionsitalian{\def\indexname{\Large \bf \hfill INDICE ANALITICO\hfill \vspace{-2cm}}}
\let\orgtheindex\theindex
\let\orgendtheindex\endtheindex
\def\theindex{%
\def\subitem{\par\noindent\parindent=0pt}
\def\subsubitem{\par\noindent\parindent=0pt}
\fancyhead{} % cancella tutti i campi
\fancyhead[CE]{\scriptsize INDICE ANALITICO}
\fancyhead[CO]{\scriptsize INDICE ANALITICO}
\fancyhead[LE,RO]{\scriptsize\thepage}%
\fancyhead[LO,RE]{}
\fancyfoot[CE]{}%pié di pagina centrato sinistro
\fancyfoot[CO]{}%pié di pagina centrato destro
\makeatother
\def\twocolumn{\begin{multicols}{2}}%
\def\onecolumn{}%
\orgtheindex
}
\def\endtheindex{%
\orgendtheindex
}

\makeatletter
\def\cleardoublepage{\clearpage
\if@twoside
\ifodd\c@page
\else
\null\thispagestyle{empty}\clearpage
\fi
\fi}
\makeatother

\makeindex

\begin{document}

\frontmatter
\thispagestyle{empty}
\tableofcontents

\input{Sigleabbreviazioni}

\input{Premessa}

\mainmatter

\input{capitolo1}
\input{capitolo2}
\input{Capitolo3}
\input{Capitolo4}
\input{Capitolo5}

\backmatter
\cleardoublepage
\phantomsection
\printindex

\end{document}

%contenuto del file mymacros.sty caricato da \usepackage{mymacros}:

\renewenvironment{theindex}
{\if@twocolumn
\@restonecolfalse
\else
\@restonecoltrue
\fi
\@makeschapterhead{\indexname}%
\addcontentsline{toc}{section}{\vspace{0,5cm} \\ \normalsize INDICE ANALITICO}%
\parindent\z@
\parskip\z@ \@plus .3\p@\relax
\columnseprule \z@
\columnsep 45\p@
\let\item\@idxitem
% Testo di spiegazione
\textit{\hfill (I numeri si riferiscono alle pagine comprensive delle note)\hfill}
\par
\vspace{2\baselineskip}%
\multicols{2}}% Fine comandi di apertura
{% Inizio comandi di chiusura
\endmulticols
\if@restonecol\onecolumn\else\clearpage\fi}

%contenuto del file classic.ist realizzato secondo le indicazioni dell'Arte:

headings_flag 1
heading_prefix “\\textbf\{\\centerline ”
heading_suffix “\}”
symhead_positive “Simboli”
symhead_negative “simboli”
numhead_positive “Numeri”
numhead_negative “numeri”
`

Ringrazio sin da ora chi vorrà illuminarmi, sperando di essere stato esaustivo e di avere riportato i dati sufficienti per l’elaborazione di una risposta.

Stefano.

Il rimedio più semplice è di scrivere
`\usepackage{imakeidx}

\makeindex[options=-s classic,
othercode=\def\subitem{\par\noindent}%
\def\subsubitem{\par\noindent}]`
e dimenticare le ridefinizioni di \twocolumn, di \theindex e dell’ambiente theindex.

Certo che, se ridefinisci due volte l’ambiente theindex, vai in cerca di guai.

Ciao
Enrico

Go to top