![¿Por qué las llaves se tratan incorrectamente cuando se utilizan "commandchars" en "Verbatim"?](https://rvso.com/image/472694/%C2%BFPor%20qu%C3%A9%20las%20llaves%20se%20tratan%20incorrectamente%20cuando%20se%20utilizan%20%22commandchars%22%20en%20%22Verbatim%22%3F.png)
Esto es lo que estoy haciendo:
\documentclass{article}
\usepackage{fancyvrb}
\begin{document}
\begin{Verbatim}[commandchars=+\{\}]
Hello, \emph{world}!
Bye, +emph{world}!
\end{Verbatim}
\end{document}
La primera línea se representa como Hello, \emphworld!
, lo cual no es correcto. Por alguna razón, el Verbatim
entorno trata {
y }
como caracteres especiales, no como texto simple y textual. Sin commandchars
, la primera línea se representa correctamente.
Respuesta1
Con commandchars=+\{\}
, dentro del ambienteVerbatim
- el carácter
+
tiene el código de categoría 0 (escape) y, por lo tanto, durante la tokenización se trata de la misma manera que en circunstancias normales/fuera del entorno se trataVerbatim
la barra invertida .\
- el personaje
{
tiene el código de categoría 1 (grupo de inicio) y, por lo tanto, durante la tokenización se trata de la misma manera que se trata en circunstancias normales/fuera del entornoVerbatim
. - el personaje
}
tiene el código de categoría 2 (grupo final) y, por lo tanto, durante la tokenización se trata de la misma manera que se trata en circunstancias normales/fuera del entornoVerbatim
.
Cualquier otro carácter que normalmente tiene una función especial en TeX, por ejemplo, el carácter de barra invertida, se tokeniza bajo el régimen de código de categoría textual donde se asignan estos caracteres especiales.
- ya sea el código de categoría 12 (otro) para que ya no tengan una función especial, pero durante la composición tipográfica se toman directivas para componer algún glifo de una fuente.
- o código de categoría 13 (activo) para que puedan definirse para expandirse a algunos comandos que a su vez producen la composición tipográfica de algunos símbolos como
␣
el carácter de espacio o un salto de línea para el carácter de retorno de carro.
La tokenización de caracteres {
de categoría 1 sin crear un token de símbolo de control produce tokens de caracteres explícitos de categoría 1 (grupo inicial).
La tokenización de caracteres }
de categoría 2 sin crear un token de símbolo de control produce tokens de caracteres explícitos de categoría 2 (grupo final).
A diferencia de los tokens de caracteres explícitos de la categoría 11 (letra) y 12 (otro), dichos tokens de caracteres explícitos durante la composición tipográfica no son directivas para componer algún glifo de una fuente, sino directivas que afectan la agrupación, ya sea delimitando ámbitos o delimitando conjuntos de tokens que deben formar argumentos.
Dentro de su Verbatim
entorno, donde commandchars=+\{\}
está vigente, la línea
Hello, \emph{world}!
se tokeniza como .
H11e11l11l11o11,13space13\12e11m11p11h11{1w11o11r11l11d11}2!12carriage return13
\12surge debido \
a que el código de categoría 12 (otro) no hace que LaTeX comience a crear un token de secuencia de control.
{1y afectan el alcance pero no producen nada. visible en el archivo .pdf.}2
Dentro de su Verbatim
entorno, donde commandchars=+\{\}
está vigente, la línea
Bye, +emph{world}!
se tokeniza como .
B11y11e11,13space13\emph{1w11o11r11l11d11}2!12carriage return13
Con commandchars=+\{\}
efecto, puedes hacer +string+{
/ +string+}
para componer llaves. (También puedes hacer +string{
/ +string}
siempre que {
y }
estén equilibrados.)
Respuesta2
Aquí hay un extracto de la página 16 de la guía del usuario defantasíavrbpaquete:
Ya que has especificado
\begin{Verbatim}[commandchars=+\{\}]
El +
personaje actúa como \
lo haría en un entorno normal, mientras {
actúa }
como abridor y cierre de un grupo TeX. En consecuencia, +emph{world}
pone "mundo" en cursiva dentro del Verbatim
entorno.
Por el contrario, \emph{world}
dentro del Verbatim
entorno se genera \emphworld
, con todos los glifos representados en la fuente vertical monoespaciada. Después de todo, porque usted ha especificado {
y}
actúa como abridor y cierre de un grupo TeX, tienen un significado especial y nonoimprimirse.