Wortwörtliche Anzeige von Inhalten mit \tl_to_str:*

Wortwörtliche Anzeige von Inhalten mit \tl_to_str:*
\documentclass{article}
\usepackage{expl3}
\ExplSyntaxOn
\begin{document}
\tl_to_str:n { testing _ things }

\par

\tl_set:Nn \l_tmpa_tl { testing _ things }
\tl_to_str:N \l_tmpa_tl
\end{document}

gibt ein seltsames Ergebnis ( testing ̇things). Wie bekomme ich testing_things? Ich möchte grundsätzlich den wörtlichen Inhalt (mit Zeilenumbruch).

Antwort1

Das ist keineswegs merkwürdig: Wenn ich das einfache Beispiel versuche

\documentclass{article}
\begin{document}
A\char`\_B
\end{document}

Ich bekomme

Bildbeschreibung hier eingeben

weil die Standardschriften in der OT1-Kodierung den Punktakzent in dem Slot haben, den ASCII für den Unterstrich reserviert.

\usepackage[T1]{fontenc}

produziert

Bildbeschreibung hier eingeben

weil in T1-codierten Schriftarten alle ASCII-Zeichen an der richtigen Stelle sind.

Die Funktion \tl_to_str:nist nicht für wörtliches Schreiben gedacht, sondern für die Umwandlung von Eingaben in einen String, der aus Zeichen des Kategoriecodes 12 besteht (Leerzeichen sind immer noch Kategoriecode 10); sie verwendet den gleichen Mechanismus, den TeX für verwendet \string, insbesondere wird nach Steuerwörtern ein Leerzeichen eingefügt, so

\tl_to_str:n {\foo\baz?}

wird drucken

\foo \baz ?

Außerdem #werden Zeichen verdoppelt.

Sie können es als „Wortschatz für Arme“ verwenden, wenn Sie sich dieser Einschränkungen bewusst sind:

\texttt{\tl_to_str:n{some_verbatim}}

wird drucken

some_verbatim

auch wenn die Standardcodierung OT1 ist.

verwandte Informationen