Mostrando contenido textual con \tl_to_str:*

Mostrando contenido textual con \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}

da un resultado extraño ( testing ̇things). Como puedo conseguir testing_things? Básicamente quiero contenido textual (con saltos de línea).

Respuesta1

Esto no es nada extraño: si pruebo el sencillo ejemplo

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

yo obtengo

ingrese la descripción de la imagen aquí

porque las fuentes estándar en codificación OT1 tienen el acento de punto en la ranura que ASCII reserva para el guión bajo. Solo agregando

\usepackage[T1]{fontenc}

produce

ingrese la descripción de la imagen aquí

porque las fuentes codificadas T1 tienen todos los caracteres ASCII en su lugar adecuado.

La función \tl_to_str:nno está pensada para palabra por palabra, sino para transformar la entrada en una cadena que consta de 12 caracteres del código de categoría (los espacios siguen siendo el código de categoría 10); utiliza el mismo mecanismo que usa TeX \string, en particular, se agregará un espacio después de las palabras de control, por lo que

\tl_to_str:n {\foo\baz?}

imprimirá

\foo \baz ?

Además, #los personajes se duplicarán.

Puedes utilizarlo como “texto literal de persona pobre”, si eres consciente de estas limitaciones:

\texttt{\tl_to_str:n{some_verbatim}}

imprimirá

some_verbatim

también cuando la codificación predeterminada es OT1.

información relacionada