I'm using Imakeidx to auto-generate an author index for my bibentries, but I have a problem with the sorting of some special characters such as umlauts. As suggested, I tried to use xindy as a engine for the sorting, but the only result I got is that I have to process also the .idx file (without xindy I didn't need to), but the sorting is still wrong.
In my example, I need first Döllinger and then Dull.
I'm dying on it, really.
MWE:
% !BIB TS-program = biber
% !BIB program = biber
% !TEX encoding = UTF-8 Unicode
% !TeX TS-program = xelatexmk
\begin{filecontents}{archivio.bib}
@book{Dull,
Address = {Cambridge},
Author = {Mark Dull},
Publisher = {Amazon KDP},
Title = {Hello world},
Year = {1999}}
@book{Dol2,
Address = {Moskwa},
Author = {Philip Döllinger},
Publisher = {Sinodal'naja tip.},
Title = {Sistematičeskoe opisanie rukopisej moskovskoj Sinodal'noj (patriaršej) biblioteki},
Year = {1894}}
\end{filecontents}
\documentclass[11pt, openany]{book}
\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true]{italian}
\setotherlanguages{latin, english, french}
\usepackage[]{csquotes}
\usepackage{xpatch}
\usepackage[style=verbose-trad2,
language=auto,
ibidpage=true,
autolang=other,
useprefix=true,
giveninits=true,
indexing=true,
dateabbrev=false,
backend=biber,
]{biblatex}
\addbibresource{archivio.bib}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[xindy]{imakeidx}
\makeindex[program=xindy, name=nomi, intoc=true, title=Indice dei nomi]
\renewbibmacro*{citeindex}{%
\ifciteindex
{\ifnameundef{namea}{\indexnames{labelname}}{\indexnames{namea}}}
{}}
\DeclareIndexNameFormat{default}{% Formato del nome dell'autore
\usebibmacro{index:name}
{\index[nomi]}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
\begin{document}
I should like to sort properly \cite{Dull} and \cite{Dol2}.
\printindex[nomi] % Indice dei nomi
\end{document}
xindy? (I uselatexmkand that did not runxindyautomatically for me. I had to enable shell escape as mentioned in theimakeidxmanual). – moewe Jun 04 '18 at 20:14.idxwithmakeindexyou have to run it withxindy! It works if you runmakeindexand you get an index, but you don't getxindy's features. If you wantxindyyou need to runxindy. – moewe Jun 05 '18 at 08:20imakeidxtries to runtexindythrough the shell escape, but if it can't, it writes the command you need to call in the transcript. In this casetexindy nomi.idx, but you also need to specify the language as well. For exampletexindy -L german-din5007 -C utf8 nomi.idx. To incorporate it into TeXshop, try Adding a new engine in TeXShop. In this case, you need to explicitly usenomi.istrather than appending.istto the basename. – Nicola Talbot Jun 05 '18 at 08:57latexmk -xelatex -shell-escape)xindywill be run automatically for you. TeX predates Unicode and does not really do non-ASCII-characters in general. The first indexing tools for LaTeX (indexing is best done externally, LaTeX isn't great at sorting strings, see BibTeX) were also not great with non-ASCII.xindyis the go-to solution for non-ASCII indices and it seems to work very well, butlatexmkdoes not support it out of the box, so you either have to write your own rule, use shell escape or arara. – moewe Jun 05 '18 at 19:54