PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : WinEdt und Umlaute in MakeIndex



Mütze
28-03-2006, 15:59
Hallo zusammen!

Ich habe folgendes Problem: Ich arbeite an einem längeren Dokument (ca. 400 Seiten), inclusive eines mit MakeIndex erstellten Index mit mehreren tausend Verweisen.
Obwohl ich MakeIndex mit der Option -g aufrufe, werden Umlaute in den Einträgen wie Sonderzeichen behandelt. Ich benutze WinEdt 5 zur Eingabe und habe den Verdacht, dass das Problem darin besteht, dass WinEdt beim kompilieren z.B. ä mit \"{a} ersetzt und nicht - wie von MakeIndex erwartet - mit "a . Das Umstellen der entsprechenden Funktion auf "a hatte aber keine Wirkung bzw. ich habe es nicht hinbekommen.

Als zweiten Versuch habe ich in mein .sty-File für makeindex die Zeile
merge_rule "\"{a}" "a"
eingefügt, aber leider sagt mir MakeIndex dann:
-- Unknown specifier merge_rule.

Ich weiß zwar, dass ich die Formatierung "von Hand" ändern kann, indem ich z.B. \index{Wärme@Warme} schreibe oder indem ich alle Umlaute in den index-Befehlen in "a etc. ändere, würde dafür aber wegen der Länge des Dokuments ewig brauchen und hätte außerdem Angst, die Hälfte zu übersehen...:(
Deswegen die Frage, ob es noch andere Möglichkeiten gibt, entweder WinEdt beizubiegen, dass er die Umlaute anders umwandeln soll oder aber, eigene Optionen für die Sortierung in MakeIndex zu definieren.

Andere Lösungsideen für das Problem sind natürlich auch willkommen;)

Danke im Voraus schonmal!

Mütze

cookie170
29-03-2006, 13:28
wage ich den ansich unerquicklichen Vorschlag, es mit einem anderen Editor zu versuchen.

Ganz geringer Umfang: winshell

Gerade neu: winefish ( http://winefish.berlios.de/ )

Naja, es wird noch ein paar geben. Mehr als eine halbe Stunde wird's nicht kosten und Du weißt dann, ob Du ein Winedt oder ein Latex-Problem hast.

Gruß,
Alexander

Salnic
29-03-2006, 13:40
dann will ich auch mal meinen Senf dazu geben,

> Ich benutze WinEdt 5 zur Eingabe und habe den Verdacht, dass das Problem
> darin besteht, dass WinEdt beim kompilieren z.B. ä mit \"{a} ersetzt und
> nicht - wie von MakeIndex erwartet - mit "a .
Tatsächlich ersetzt WinEdt automatisch alle Umlaute {\"a} und speichert sie auch so ab. Angezeigt werden die Umlaute lesbar (also als ä, ...). Dieses Verhalten kann man abschalten. Hilft Dir allerdings nicht mehr, da schon alle Umlaute umgewandelt sind.

ich habe keine Ahnung, ob und wie man MakeIndex überreden kann, anders zu sortieren, kann mir aber nicht vorstellen, dass es nicht möglich ist.

> Ich weiß zwar, dass ich die Formatierung "von Hand" ändern kann, [...] indem
> ich alle Umlaute in den index-Befehlen in "a etc. ändere, würde dafür aber
> wegen der Länge des Dokuments ewig brauchen und hätte außerdem Angst,
> die Hälfte zu übersehen...

das kann man auch automatisieren: Suchen und Ersetzen.
{\"a} -> ä
{\"o} -> ö
{\"u} -> ü
{\"A} -> Ä
{\"O} -> Ö
{\"U} -> Ü
{\ss} -> ß

Salnic


PS: habe gerade ein wenig im Netz gesuch und folgendes gefunden
http://www.mrunix.de/forums/printthread.php?t=38366

% german DIN 5007 sort rules for TeX and LaTeX

% sort rules for TeX-style umlaut-macros
sort_rule "\\\"A" "ae"
sort_rule "\\\"a" "ae"
sort_rule "\\\"O" "oe"
sort_rule "\\\"o" "oe"
sort_rule "\\\"U" "ue"
sort_rule "\\\"u" "ue"
sort_rule "\\ss({})?" "ss"

% sort rules for german LaTeX-style umlaut-macros
sort_rule "\"A" "ae"
sort_rule "\"a" "ae"
sort_rule "\"O" "oe"
sort_rule "\"o" "oe"
sort_rule "\"U" "ue"
sort_rule "\"u" "ue"
sort_rule "\"s" "ss"

Mütze
30-03-2006, 13:05
Ersteinmal danke Euch beiden für die Hilfe,

ich habe das Problem mittlerweile auf Umwegen lösen können.
Als erste Amtshandlung habe ich bei WinEdt die Funktion "Translation" (unter "Settings" für Write und Read deaktiviert. Wie Salnic bereits gesagt hat, führt das aber leider nicht dazu, dass die Umlaute zurückgeändert werden. Dafür habe ich in "Translations" als "Custom" eine Regel eingeführt, die die Umlaut-Zeichen wie \"{u} zurückkonvertiert (in diesem Fall in ü). Ist nicht schwer, es gibt ja genug Vorlagen.
Klickt man mit der rechten Maustaste auf den Namen der Regel (Custom) erscheint ein Menü, dass unter anderem den Befehl "apply" enthält. Führt man den dann aus, erhält man wieder den Quelltext, wie man ihn eingegeben hat.

Als zweites habe ich irgendwo im Netz (präzise gesagt auf
http://www.listserv.dfn.de/cgi-bin/wa?A2=ind0406&L=tex-d-l&D=0&P=3654
) folgenden Befehl gefunden:

\makeatletter
\newcommand\org@wrindex{}
\let\org@wrindex\@wrindex
\def\@wrindex{%
\edef"{\string"}%
\def Ä{"A}%
\def Ö{"O}%
\def Ü{"U}%
\def ä{"a}%
\def ö{"o}%
\def ü{"u}%
\def ß{"s}%
\org@wrindex
}
\makeatother

Ganz genau verstanden habe ich ihn ehrlich gesagt nicht, der Hauptteil besteht aber offenbar daraus, dass die Umlaute in z.B. "u umgewandelt werden. Diesen Befehl habe ich in den header gepackt, außerdem braucht man noch die Pakete
\usepackage[latin1]{inputenc}
\usepackage{ngerman}
\usepackage{makeidx}
. Ein Minimalbeispiel ist unter oben genannten Link zu finden.

Führt man jetzt in einer DOS-Box den Befehl
makeindex -g -s indexfile.ist dokumentname.idx
aus, klappt das Ganze tatsächlich wie gewünscht (vorausgesetzt man weiß, dass man bei WinEdt zum Umwandeln den Button "LaTeX" benutzt und nicht "TeXify", das musste ich auch erst rausfinden :o ).

Ich hoffe, das hilft Leuten, die vor ähnlichen Problemen stehen, etwas weiter...

Danke nochmal an alle, die sich die Mühe gemacht haben,

Mütze

idb
30-03-2006, 13:42
Ganz geringer Umfang: winshell


Hi Alexander,

was meinste denn damit ?

greets
Ingo

Salnic
30-03-2006, 13:46
wahrscheinlich, dass es nur 2.0MB (gezippt) sind

Salnic

cookie170
30-03-2006, 18:27
War nicht unfreundlich gemeint, ich benutze unter Windows winshell.

Gruß,
Alexander

Jollero
14-09-2006, 19:48
Ich will dieses Thema nochmals aufgreifen, da ich immer noch nach einer funktionierenden Lösung suche!

Wenn ich folgendes Beispiel kompiliere,



\documentclass{article}
\usepackage[latin1]{inputenc}
\usepackage{ngerman}
\usepackage{makeidx}
\makeindex

\makeatletter
\newcommand\org@wrindex{}
\let\org@wrindex\@wrindex
\def\@wrindex{%
\edef"{\string"}%
\def Ä{"A}%
\def Ö{"O}%
\def Ü{"U}%
\def ä{"a}%
\def ö{"o}%
\def ü{"u}%
\def ß{"s}%
\org@wrindex
}
\makeatother

\begin{document}
\section{Test}
Umlaute: ÄÖÜäöüß

\index{oben}
\index{Ola}
\index{Olba}
\index{Olbe}
\index{Oleg}
\index{Ölbaum}
\index{Orgie}
\index{Stra"se}
\index{kostenbasierte Auswahl}
\index{Zugriffsplane}
\index{Zugriffspläne}
\index{Zugriffsplotter}

\printindex
\end{document}



wird Ölbaum als erstes einsortiert und danach erst die anderen Einträge, die mit O anfangen...

Die Datei german ist definiert durch:


quote '+'


Aufruf von makeindex über


makeindex.exe -s german -g main.idx


Hab auch mehrere Durchläufe gemacht...

Gibt es außer der bekannten Schreibweise \index{Olbaum@Ölbaum} die Lösung mit \index{Ölbaum}???

Danke für eure Hilfe.
Viele Grüße
Jens

Mütze
15-09-2006, 09:43
Hallo Jollero,

ich habe Dein Beispiel bei mir auch mal durchlaufen lassen. Als Befehl für für Makeindex habe ich

makeindex -g -s index.ist test.idx

benutzt, ich habe keine Datei german.ist auf dem Rechner. Mit anderen Style-Files lief es aber genauso.

Bei mir wird dann Ölbaum nicht nach ganz oben, sondern unter O zwischen die Einträge "oben" und "Ola" eingefügt, also wird das Ö scheinbar wie Oe behandelt.

Hast Du die Translation-Option bei WinEdt ausgeschaltet? Schau Dir den Quellcode mal mit einem anderen Editor (z.B. Windows-Editor) an. Da sollten die Umlaute auch als Umlaute stehen, nicht etwa als \"a oder sowas.

Was ich bislang leider auch nicht hinbekommen habe, ist die Einsortierung von Ö als O anstatt als Oe. Dafür gibt es den Befehl sort_rule in den ist.-files, ich habe es aber noch nie geschafft, das zum Laufen zu bringen.

Viel Erfolg beim weiteren Probieren!

Mütze

Jollero
15-09-2006, 10:56
Hallo Mütze,

danke für das Testen! Die german(.ist) hatte ich ja gepostet. Nun aber zu dem Problem:

Ölbaum wird also bei dir auch falsch einsortiert- meinte natürlich mit oben oberhalb von Ola und unterhalb von oben. Das ist ja, wenn ich mich recht erinnere, laut Duden nicht korrekt, weil Umlaute erst nach dem eigentlichen Vokal einsortiert werden sollen.

Hat vieleicht doch jemand eine lauffährige Version mit makeindex und deutscher Sortierung entwickelt??