
In TeX ist jedem der 256 Bytes ein \lccode
und ein zugeordnet \uccode
, Ganzzahlen im Bereich [0,255], die unter anderem angeben, wie \lowercase
und \uppercase
handeln. Es gibt natürlich eine Reihe anderer Zahlen (z. B. Mathcode und Catcode), aber ich konzentriere mich hier auf Codes, die die Groß- und Kleinschreibung ändern.
Ein Blick ins TeXbook verrät mir folgende Verwendungsmöglichkeiten von \lccode
und \uccode
:
\lowercase
<general text>
wandelt jedes Zeichentoken im Argument in ein Zeichentoken mit demselben Kategoriencode, aber einem Zeichencode um, der dem\lccode
des ursprünglichen Zeichencodes entspricht, es sei denn, der\lccode
ist Null; in diesem Fall wird der ursprüngliche Zeichencode beibehalten.\uppercase
<general text>
verhält sich genauso, verwendet jedoch\uccode
stattdessen.Bei der Silbentrennung nimmt TeX alle Zeichen, die es erreicht haben (also entweder Token mit Kategoriecode 11 oder 12 oder chardef'd-Token oder char) und definiert einen „Buchstaben“ als Zeichen mit einem Wert ungleich Null
\lccode
. Ein Buchstabe ist klein geschrieben, wenn sein\lccode
Wert seinem Zeichencode entspricht.
Ist das alles? Verwendet TeX das insbesondere \uccode
für andere Zwecke als das \uppercase
Grundelement? Was ist mit anderen Engines, pdfTeX, XeTeX und LuaTeX?
Antwort1
Die Zahl \lccode
eines Zeichens wird bei der Silbentrennung verwendet, wenn \uchyph
sie auf Null gesetzt ist:
\documentclass{article}
\begin{document}
\uchyph=0 %
\begingroup
\lccode`\C=`\C
Some filler text.
Some filler text.
Some filler text.
Some filler text.
Capitalised word.
\par
\endgroup
\begingroup
\lccode`\C=`\c
Some filler text.
Some filler text.
Some filler text.
Some filler text.
Capitalised word.
\par
\endgroup
\begingroup
\uccode`\C=`\C
Some filler text.
Some filler text.
Some filler text.
Some filler text.
Capitalised word.
\par
\endgroup
\begingroup
\uccode`\C=`\c
Some filler text.
Some filler text.
Some filler text.
Some filler text.
Capitalised word.
\par
\endgroup
\end{document}
Beachten Sie, dass der \uchyph
Name irreführend ist, da geprüft wird, ob das Wort mit einem Kleinbuchstaben beginnt (also mit \lccode
sich selbst).
Antwort2
Buchstaben innerhalb von \patterns
werden durch abgebildet \lccode
. Tatsächlich ist das der einzige Mechanismus, mit dem man Trennmuster einschließlich - und/oder 0-9 angeben kann, da sie bei wörtlicher Schreibweise als Trennprioritäten oder Trennpunkte interpretiert werden.
hypht1.tex
erwähnt diesen Trick im Kommentarbereich zu Beginn.