Para escapar de muchos _ en LaTeX de manera eficiente
Pregunta
¿Cómo puedes escapar _ sin el uso de \_
?
Este es el ejemplo de la pregunta.
word_a_a_a_a_a_b_c_dd
Hay una función que puede utilizar para esto.Sin embargo, no recuerdo su nombre.
Solución
¿Está pensando en el paquete underscore
, que redefine el símbolo de subrayado de modo que usted no tiene que escapar de ella en modo texto? Ver aquí .
Otros consejos
Aparte de Verbatim no sabría.
El entorno Verbatim:
\begin{verbatim}
word_a_a_a_a_a_b_c_dd
\end{verbatim}
En línea:
\verb|word_a_a_a_a_a_b_c_dd|
No pude conseguir el paquete underscore
a trabajar, por lo que se utiliza el paquete url
:
\usepackage{url}
\urlstyle{sf} % or rm, depending on your font
...
Foo \url{word_a_a_a_a_a_b_c_dd} bar.
Normalmente se emplea una fuente de espacio fijo en esas situaciones, por lo que puede utilizar esto:
\verb|word_a_a_a_a_a_b_c_dd|
También puede estar pensando en las lstlisting
o verbatim
ambientes, que se utilizan comúnmente para mostrar el código - que pueden contener guiones bajos. Sin embargo, estos ambientes hacen mucho más que simplemente "escape" subraya.
Es curioso como este es un sitio de preguntas y respuestas para las preguntas de programación pero nadie ha sugerido la programación todavía.
Se puede definir su propio comando que sustituye a los símbolos de subrayado:
\documentclass{article}
\newcommand{\filename}[1]{\emph{\replunderscores{#1}}}
\makeatletter
% \expandafter for the case that the filename is given in a command
\newcommand{\replunderscores}[1]{\expandafter\@repl@underscores#1_\relax}
\def\@repl@underscores#1_#2\relax{%
\ifx \relax #2\relax
% #2 is empty => finish
#1%
\else
% #2 is not empty => underscore was contained, needs to be replaced
#1%
\textunderscore
% continue replacing
% #2 ends with an extra underscore so I don't need to add another one
\@repl@underscores#2\relax
\fi
}
\makeatother
\begin{document}
\filename{__init__.py}
\end{document}