Indovina un po’. La colpa è di ArsClassica. 😳
Il seguente
`\documentclass{scrreprt}\usepackage{multicol}
\usepackage{imakeidx}\makeindex[options=-s classic]
\usepackage{classicthesis-ldpkg}
\usepackage{classicthesis}
\usepackage[italian]{arsclassica}\begin{document}
Prova\index{prova}\cleardoublepage
\manualmark
\markboth{\spacedlowsmallcaps{\indexname}}{\spacedlowsmallcaps{\indexname}}
\phantomsection
\addcontentsline{toc}{chapter}{\tocEntry{\indexname}}
\printindex
\end{document}`
produce l’errore.Basta togliere queste righe da ArsClassica
`%************************************************************
% The index
%************************************************************
\@ifpackageloaded{makeidx}
{%
\RequirePackage{multicol}
\let\orgtheindex\theindex
\let\orgendtheindex\endtheindex
\def\theindex{%
\def\twocolumn{\begin{multicols}{2}}%
\def\onecolumn{}%
\clearpage
\orgtheindex}
\def\endtheindex{%
\end{multicols}%
\orgendtheindex}
\makeindex
}
{\relax}`
e tutto fila lascio. Appena ho un secondo aggiorno il pacchetto.Grazie,
L.
Basta caricare imakeidx dopo arsclassica, la ridefinizione non avrà più effetto. Se cancellassi quella ridefinizione faresti un danno a chi continua a usare makeidx. Puoi fare così:
`\@ifpackageloaded{makeidx}
{\@ifpackageloaded{imakeidx}{}
{%
\RequirePackage{multicol}
\let\orgtheindex\theindex
\let\orgendtheindex\endtheindex
\def\theindex{%
\def\twocolumn{\begin{multicols}{2}}%
\def\onecolumn{}%
\clearpage
\orgtheindex}
\def\endtheindex{%
\end{multicols}%
\orgendtheindex}
\makeindex}%
}{}`
Oppure, per non perderti nelle graffe:
`\@tempswatrue
\@ifpackageloaded{makeidx}{\@ifpackageloaded{imakeidx}{\@tempswafalse}{}}{}
\if@tempswa
\RequirePackage{multicol}
\let\orgtheindex\theindex
\let\orgendtheindex\endtheindex
\def\theindex{%
\def\twocolumn{\begin{multicols}{2}}%
\def\onecolumn{}%
\clearpage
\orgtheindex}
\def\endtheindex{%
\end{multicols}%
\orgendtheindex}
\makeindex
\fi`
Questo perché dopo \usepackage{imakeidx} LaTeX si comporta come se fosse caricato anche makeidx (per motivi interni che hanno a che fare con l’interazione con hyperref, ma soprattutto per evitare che qualcuno carichi makeidx dopo imakeidx).
Ciao
Enrico