
El siguiente MWE se compila sin problemas.
\documentclass{article}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{fancyvrb}
\begin{document}
\SaveVerb{x>y}|x > y|
\begin{equation*}
\UseVerb{x>y}
\end{equation*}
\end{document}
pero si reemplazo la opción english
en spanish
babel, aparece el siguiente error:
$ pdflatex test.tex
! Missing \endcsname inserted.
<to be read again>
\unhbox
l.10 \UseVerb{x>y}
Puedo solucionar el problema eliminando >
el nombre utilizado en la \SaveVerb
macro, es decir, \SaveVerb{xy}|x > y|
pero quiero saber si existe una solución mejor.
Respuesta1
El problema es que spanish
for babel
crea <
>
personajes activos; puedes usar la es-noquoting
opción:
\usepackage[spanish,es-noquoting]{babel}
como en
\documentclass{article}
\usepackage[spanish,es-noquoting]{babel}
\usepackage{amsmath}
\usepackage{fancyvrb}
\begin{document}
\SaveVerb{x>y}|x > y|
\begin{equation*}
\UseVerb{x>y}
\end{equation*}
\end{document}
pero luego pierdes las funciones de cotización automática implementadas por el módulo a través de esos caracteres (aunque el quotating
entorno aún se puede usar); Otra opción sería desactivar localmente estas funciones y luego restaurarlas:
\documentclass{article}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\usepackage{fancyvrb}
\begin{document}
\deactivatequoting
\SaveVerb{x>y}|x > y|
\begin{equation*}
\UseVerb{x>y}
\end{equation*}
\activatequoting
\end{document}
Respuesta2
Puede redefinir los comandos para desinfectar su argumento:
\documentclass{article}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\usepackage{fancyvrb}
\let\xSaveVerb\SaveVerb
\def\SaveVerb#1{\xSaveVerb{\detokenize{#1}}}
\let\xUseVerb\UseVerb
\def\UseVerb#1{\xUseVerb{\detokenize{#1}}}
\begin{document}
\SaveVerb{x>y}|x > y|
\begin{equation*}
\UseVerb{x>y}
\end{equation*}
\end{document}