Tux
28-07-2011, 15:32
EDIT: -.- denkt euch im Titel stände "Umlaute"...
Hi Forum,
ich bin über ein komisches Verhalten von (La)TeX gestolpert, das ich mir nicht erklären konnte. Es hat mit der Definition von Befehlen über \def zu tun, in denen Umlaute vorkommen. Vielleicht weiß ja einer von euch, was hier passiert:
Minimalbeispiel:
\documentclass{article}
\usepackage{ngerman}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\begin{document}
\edef\lalolu{lalolu}
\edef\lälölü{lälölü}
First call:\\
\lalolu\\
\lälölü
Second call:\\
\csname lalolu\endcsname\\
\csname lälölü\endcsname
\expandafter\edef\csname\lalolu\endcsname{\lalolu}
\expandafter\edef\csname\lälölü\endcsname{\lälölü}
Third call:\\
\lalolu\\
\lälölü
Fourth call:\\
\csname lalolu\endcsname\\
\csname lälölü\endcsname
\end{document}
Ausgabe:
First call:
lalolu
lälölü
Second call:
lalolu
<= warum ist diese Zeile leer?
Third call:
lalolu
lälölü
Fourth call:
lalolu
lälölu
Das Problem tritt auf, wenn ich über \csname lälölü\endcsname mein definiertes Kommando aufrufe. Die Ausgabe bleibt einfach leer. Definiere ich es aber erneut (und übergebe einen String, der in einem Kommando gespeichert wurde und expandiert wird), funktioniert es.
Die Frage bleibt... warum? :confused:
Hi Forum,
ich bin über ein komisches Verhalten von (La)TeX gestolpert, das ich mir nicht erklären konnte. Es hat mit der Definition von Befehlen über \def zu tun, in denen Umlaute vorkommen. Vielleicht weiß ja einer von euch, was hier passiert:
Minimalbeispiel:
\documentclass{article}
\usepackage{ngerman}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\begin{document}
\edef\lalolu{lalolu}
\edef\lälölü{lälölü}
First call:\\
\lalolu\\
\lälölü
Second call:\\
\csname lalolu\endcsname\\
\csname lälölü\endcsname
\expandafter\edef\csname\lalolu\endcsname{\lalolu}
\expandafter\edef\csname\lälölü\endcsname{\lälölü}
Third call:\\
\lalolu\\
\lälölü
Fourth call:\\
\csname lalolu\endcsname\\
\csname lälölü\endcsname
\end{document}
Ausgabe:
First call:
lalolu
lälölü
Second call:
lalolu
<= warum ist diese Zeile leer?
Third call:
lalolu
lälölü
Fourth call:
lalolu
lälölu
Das Problem tritt auf, wenn ich über \csname lälölü\endcsname mein definiertes Kommando aufrufe. Die Ausgabe bleibt einfach leer. Definiere ich es aber erneut (und übergebe einen String, der in einem Kommando gespeichert wurde und expandiert wird), funktioniert es.
Die Frage bleibt... warum? :confused: