Nehmen wir mal an, Sie füttern eine Datei mwe.tex mit

\documentclass{article}
\pagestyle{empty}
\usepackage[USenglish,ngerman]{babel}
\usepackage{makeidx}
\makeindex
\newcommand{\indexUSeWithSubsubentryAsGer}[4]{\index{000#1 #2 #3@\foreignlanguage{USenglish}{#1}!\foreignlanguage{USenglish}{#2}!\foreignlanguage{USenglish}{#3}|see{#4}}} % for 3-level USenglish English -> German "siehe" entries
\begin{document}
\index{Zustandsraum!lokaler}\emph{geteilter Zustandsraum} (engl.\@ \indexUSeWithSubsubentryAsGer{space}{state}{shared}{Zustandsraum, geteilter}\emph{\foreignlanguage{USenglish}{shared state space}})

\index{Zustandsraum!geteilter}\emph{lokaler Zustandsraum} (engl.\@ \indexUSeWithSubsubentryAsGer{space}{state}{local}{Zustandsraum, lokaler}\emph{\foreignlanguage{USenglish}{local state space}})

\printindex
\end{document}

an die pdflatex mwe && makeindex mwe-Schleife. Der Zweck von 000 oben besteht darin, die Liste aller englischsprachigen Termini zuerst zu erhalten, und erst dann die Liste aller deutschsprachigen Termini. Das Ergebnis sieht so aus:

Seite 1:

Seite 1

Seite 2:

Seite 2

Jedoch erwarten Sie, dass die englischen Untereinträge kompakter dargestellt werden, wie in

space
  state
    local, siehe Zustandsraum, lokaler
    shared, siehe Zustandsraum, geteilter

Zustandsraum
  geteilter, 1
  lokaler, 1

Wie erreicht man das mit der pdflatex-makeindex-Schleife? (Randbemerkung: Bitte bleiben Sie bei Programmen pdflatex und makeindex. Wenn möglich, steigen Sie nicht auf [xe|lua]latex um, benutzen Sie weiterhin makeindex und verwenden Sie nach wie vor die englischsprachigen Umschaltanweisungen (die sich bei Unterschieden in Ligaturen, Mikrotypographie allgemein und Umbrüchen auszahlen). Wie Sie sich vorstellen können, ist die tatsächliche, nichtminimale Eingabedatei ein großes Buch mit dem eigenen Ökosystem an Hacks um die Indexierung herum, die miteinander zusammenspielen, und ein Umstieg auf eine andere Konfiguration würde höchst wahrscheinlich andere Fragen hervorrufen.)

Crossposts: http://latex.org/forum/viewtopic.php?p=112323 , http://golatex.de/viewtopic,p,110783.html .

gefragt 25 Mär '20, 21:01

user0's gravatar image

user0
971025
Akzeptiert-Rate: 0%

geschlossen 30 Mär '20, 09:24

1

Inzwischen gibt es dann auch noch ein Crosspost auf goLaTeX, obwohl ich zu dem Zeitpunkt die Antwort unten bereits verfasst hatte. Und beim dort verlinkten Crosspost auf TeX.SX solltest Du auch umgehend hierauf verweisen, damit man nicht unnötig über Ursache und Lösung nachdenken muss. Wer viel crosspostet muss eben auch viel verlinken und ggf. Lösungen übersetzen.

(25 Mär '20, 21:53) saputello
1

@user0 Du hast die Frage über Foren in unterschiedlichen Sprachen verteilt. Also ist es nur recht und billig, dass Du die Antwort ggf. auch in allen Sprachen lieferst. Wer öffentlich fragt und öffentlich eine Antwort bekommt, ist den Helfern und Fragesteller in den anderen Foren, in denen er die Frage gestellt hat, eine Antwort schuldig, die diese ohne Sprachbarriere verstehen können. Ich bin gar aus gutem Grund nicht in all diesen Foren in unterschiedlichen Sprachen vertreten und es ist auch nicht meine Aufgabe in allen Foren Hilfe zu leisten.

(25 Mär '20, 22:59) saputello

@user0 Das zeigt mir in der Tat, dass es falsch war, meinen Vorsatz nach gewisser Zeit über Bord zu werfen.

(25 Mär '20, 23:17) saputello

@user0 Ich vermute, du hast den Schließgrund „Die Frage wurde beantwortet, die richtige Antwort wurde akzeptiert” missverstanden. Der ist nicht für Fragen, die auf normalem Wege beantwortet wurden, sondern nur für Fragen, die per kurzem Kommentar beantwortet wurde und bei denen nie mit einer ausführlichen Antwort zu rechnen ist, beispielsweise bei Kommentaren wie: „Du hast da einen Tippfehler im Klassennamen.” Das Schließen wird dann auch als suboptimale Lösung betrachtet. Zu normal beantworteten Fragen soll auch weiterhin die Möglichkeit für weitere Antworten offen bleiben.

(26 Mär '20, 11:04) gast3

@stefan: Vielleicht wäre es sinnvoll, die Punktegrenze für das Schließen von Fragen etwas hoch zu setzen. Anwender, die seltener hier unterwegs sind, tun sich damit vermutlich eher schwer und können den Sinn leicht missverstehen.

(26 Mär '20, 11:06) gast3

@user0 Bitte beachte meinen Hinweis zur korrekten Verwendung des Schließgrundes „Die Frage wurde beantwortet, die richtige Antwort wurde akzeptiert” und unterlasse es, die Frage immer wieder auf Neue zu schließen.

(26 Mär '20, 11:51) gast3
Ergebnis 5 von 6 show 1 more comments

Typischer Fall von falscher Verwendung des actual-Zeichens bei mehrstufigem Index. Du musst das auf die einzelnen Unterordnungen anwenden, wie auch explizit im MakeIndex-Manual¹ in Abschnitt »SPECIAL EFFECTS« dokumentiert:

The item, subitem, and subsubitem fields may have individual sort keys:

    \indexentry{aa@{\it aa\/}!bb@{\it bb\/}!cc@{\it cc\/}}{1}

sonst gibt es nur den Sortiertext für die oberste Ordnung an:

\documentclass{article}
\pagestyle{empty}
\usepackage[USenglish,ngerman]{babel}
\usepackage[orignal]{imakeidx}% die Option verzichtet auf die Verwendung von multicol
% \usepackage{makeidx}% funktioniert alternativ genauso, so ist es aber weniger komfortabler
\makeindex
\newcommand{\indexUSeWithSubsubentryAsGer}[4]{\index{000#1@\foreignlanguage{USenglish}{#1}!#2@\foreignlanguage{USenglish}{#2}!#3@\foreignlanguage{USenglish}{#3}|see{#4}}} % for 3-level USenglish English -> German "siehe" entries
\begin{document}
\index{Zustandsraum!lokaler}\emph{geteilter Zustandsraum} (engl.\@ \indexUSeWithSubsubentryAsGer{space}{state}{shared}{Zustandsraum, geteilter}\emph{\foreignlanguage{USenglish}{shared state space}})

\index{Zustandsraum!geteilter}\emph{lokaler Zustandsraum} (engl.\@ \indexUSeWithSubsubentryAsGer{space}{state}{local}{Zustandsraum, lokaler}\emph{\foreignlanguage{USenglish}{local state space}})

\printindex
\end{document}

Ergebnis mit korrekter Gruppierung

Entgegen der ganzen überflüssigen Vorgaben würde ich übrigens doch die Verwendung von imakeidx, wie gezeigt, empfehlen. Dabei wird weiterhin das Programm MakeIndex verwendet und natürlich kann man dabei auch bei pdflatex verwenden. Der Vorteil ist jedoch, dass der Aufruf vollautomatisch erfolgt, man dabei also nicht auch noch etwas falsch machen kann.

Ich würde mir übrigens überlegen, einfach zwei Indexe zu erstellen, einen englischen und einen Deutschen. Dann kann man sich das 000 sparen und kann sich wahlweise auch noch die Buchstaben korrekt gruppieren und mit Buchstabenüberschriften versehen lassen.

Mehre Indexe geht mit imakeidx ebenfalls ganz einfach.


1 Das Manual ist ebenfalls als Info-Datei, als Windows HLP-Datei und als DVI-Datei verfügbar.

Permanenter link

beantwortet 25 Mär '20, 21:19

saputello's gravatar image

saputello
11.1k154365
Akzeptiert-Rate: 51%

bearbeitet 25 Mär '20, 22:14

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×23
×16
×2

gestellte Frage: 25 Mär '20, 21:01

Frage wurde gesehen: 3,584 Mal

zuletzt geändert: 11 Apr '20, 12:36