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.

Reply via email to