Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

05 Sep '18, 04:26

Henri's gravatar image

Henri
15.7k133943

Mit LuaTeX. Ich habe mir keine besonders große Mühe gegeben, weil du das eh nicht verwenden wirst. Erstens, weil ich weiß, dass du kein LuaTeX magst und zweitens, weil das sowieso nicht funktioniert. \documentclass{article} \usepackage{imakeidx} \makeindex \usepackage{hyperref} \begin{document} \begingroup \catcode`\^^M=12 \catcode`\%=12 \directlua{ -- mapping has to be sorted by length of match (longest first) local mapping = { { "Unter%-Stichwort", [[Unter-Stichwort\noexpand\index{Stichwort!Unter}]] }, { "Stichwort", [[Stichwort\noexpand\index{Stichwort}]] }, { "Eintrag", [[Eintrag\noexpand\index{Eintrag}]] }, { "Äpfel", [[Äpfel\noexpand\index{Aepfel@Äpfel}]] }, } local function autoindex(str) for _, match in ipairs(mapping) do local n str, n = string.gsub(str, match[1], match[2]) if n > 0 then break end end return str end luatexbase.add_to_callback("process_input_buffer", autoindex, "autoindex") } \endgroup Das ist ein Stichwort. Das ist ein Unter-Stichwort. Nun ein neuer Eintrag. Äpfel sind gesund. \directlua{ luatexbase.remove_from_callback("process_input_buffer", "autoindex") } \printindex \end{document}\end{document} [![alt text][1]][1] [1]: https://texwelt.de/wissen/upfiles/test_447.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

05 Sep '18, 04:25

Henri's gravatar image

Henri
15.7k133943

Mit LuaTeX. Ich habe mir keine besonders große Mühe gegeben, weil du das eh nicht verwenden wirst. Erstens, weil ich weiß, dass du kein LuaTeX magst und zweitens, weil das sowieso nicht funktioniert. \documentclass{article} \usepackage{imakeidx} \makeindex \usepackage{hyperref} \begin{document} \begingroup \catcode`\^^M=12 \catcode`\%=12 \directlua{ -- mapping has to be sorted by length of match (longest first) local mapping = { { "Unter%-Stichwort", [[Unter-Stichwort\noexpand\index{Stichwort!Unter}]] }, { "Stichwort", [[Stichwort\noexpand\index{Stichwort}]] }, { "Eintrag", [[Eintrag\noexpand\index{Eintrag}]] }, { "Äpfel", [[Äpfel\noexpand\index{Aepfel@Äpfel}]] }, } local function autoindex(str) for _, match in ipairs(mapping) do local n str, n = string.gsub(str, match[1], match[2]) if n > 0 then break end end return str end luatexbase.add_to_callback("process_input_buffer", autoindex, "autoindex") } \endgroup Das ist ein Stichwort. Das ist ein Unter-Stichwort. Nun ein neuer Eintrag. Äpfel sind gesund. \directlua{ luatexbase.remove_from_callback("process_input_buffer", "autoindex") } \printindex \end{document}

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×