Wofür werden LC-Code und UC-Code verwendet?

Wofür werden LC-Code und UC-Code verwendet?

In TeX ist jedem der 256 Bytes ein \lccodeund ein zugeordnet \uccode, Ganzzahlen im Bereich [0,255], die unter anderem angeben, wie \lowercaseund \uppercasehandeln. 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 \lccodeund \uccode:

  • \lowercase <general text>wandelt jedes Zeichentoken im Argument in ein Zeichentoken mit demselben Kategoriencode, aber einem Zeichencode um, der dem \lccodedes ursprünglichen Zeichencodes entspricht, es sei denn, der \lccodeist Null; in diesem Fall wird der ursprüngliche Zeichencode beibehalten.

  • \uppercase <general text>verhält sich genauso, verwendet jedoch \uccodestattdessen.

  • 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 \lccodeWert seinem Zeichencode entspricht.

Ist das alles? Verwendet TeX das insbesondere \uccodefür andere Zwecke als das \uppercaseGrundelement? Was ist mit anderen Engines, pdfTeX, XeTeX und LuaTeX?

Antwort1

Die Zahl \lccodeeines Zeichens wird bei der Silbentrennung verwendet, wenn \uchyphsie 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 \uchyphName irreführend ist, da geprüft wird, ob das Wort mit einem Kleinbuchstaben beginnt (also mit \lccodesich selbst).

Antwort2

Buchstaben innerhalb von \patternswerden 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.texerwähnt diesen Trick im Kommentarbereich zu Beginn.

verwandte Informationen