Dear all,
I am trying to make use of index. While the procedure seems to be
rather straightforward (I created *.mk4 according to
https://tex.stackexchange.com/questions/284577/tex4ht-problem-with-index-compilation),
the index only works well with latin-1 character encoding. When using
utf-8, I only got strange characters in the output.
With the debug mode I found the sequence that is called by make4ht:
htlatex muj_index.tex; tex '\def\filename{{muj_index}{idx}{4dx}{ind}}
\input idxmake.4ht'; makeindex -o muj_index.ind muj_index.4dx; htlatex
muj_index.tex ; .....
I found that the first-created index file (muj_index.idx) is still ok
(coded in utf-8), but the others (*.4dx, *.ind) are already corrupted.
So, I translated the idx-file to TeX sequence with (cstocs utf8 tex
....) and ran the remaining machinery of make4ht. This approach gave me
correct character encoding in the Index in the HTML, but the sorting is
bad.... Maybe I could sort the ind file manually in the end, I did not
try yet....
So, can someone advice me an appropriate approach of using index with
tex4ht, please? A small example is attached.
Thanks a lot for any hint.
Cheers,
Tomas
% Začátek preambule.
\documentclass{article}
\usepackage[resetfonts]{cmap}
\usepackage{lmodern}
\usepackage[czech]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage{index}
\usepackage{makeidx} % Balík s pomocnými makry pro sazbu rejstříku.
\makeindex % Zajistí, že slova určená k vložení do rejstříku budou vypsána do
% souboru s příponou .idx, ze kterého texindy vytvoří soubor
% s příponou .ind s hotovým prostředím theindex.
% Konec preambule.
\usepackage{hyperref}
% Začátek dokumentu.
\begin{document}
\section*{Vytváření rejstříku}
Rejstřík se do dokumentu ve formátu\index{LaTeX@\LaTeX!formát}
\LaTeX{}\index{LaTeX@\LaTeX} vkládá do prostředí \texttt{theindex}.
Toto prostředí bychom si mohli vytvořit i~ručně, daleko pohodlnější je ale
využití služeb pomocného programu \emph{texindy}\index{texindy}.
Hesla\index{heslo}, která se mají objevit v~rejstříku vyznačíme příkazem
\verb|\index{heslo}|.
Do rejstříku je možné vkládat pojmy také jako podhesla\index{heslo!podheslo}
jiných pojmů (příkazem \verb|\index{heslo!podheslo}|). Vnoření je možné do
dvou podúrovní\index{heslo!podheslo!podpodheslo}.
Heslo\index{heslo s~rozsahem|(} může být podrobně rozebíráno v~celém rozsahu
stránek. V~takovém případě na počáteční stránce rozsahu vložíme příkaz
\verb=\index{heslo|(}=.
\newpage
Na koncové stránce pak příkaz \verb=\index{heslo|)}=.
\index{heslo s~rozsahem|)}
Pokud se chceme v~rejstříku odkázat na jiné heslo,
\index{odkaz na heslo|see{heslo}} můžeme použít příkaz
\verb=\index{heslo|see{odkazované heslo}}=.
Pokud chceme formátovat číslo strany pomocí \LaTeX ového
\index{stylování čísel stránek|textbf}
makra \verb=\makro=, použijeme syntaxi \verb=\index{heslo|makro}=.
V~některých případech můžeme požadovat zatřídění\index{heslo!jiné
zatřídění|see{alfa}} hesla podle jiného řetězce, než který se pak objeví ve
vysázené podobě rejstříku. K~tomu slouží příkaz
\verb|\index{alfa@$\alpha$}|\index{alfa@$\alpha$}, který zajistí vysázení
matematického symbolu \verb|\alpha| zatříděného podle řetězce \texttt{alfa}.
Zkouška zatřídění: car\index{car}, cár\index{cár}, carevna\index{carevna},
zlato\index{zlato}, zlý\index{zlý}, žluna\index{žluna},
žlutý\index{žlutý}.
\printindex % Příkaz ke vložení hotového rejstříku do tohoto místa dokumentu.
\end{document}
% Konec dokumentu.