
Me gustaría usar listados para formatear los comandos bash de tal manera que las líneas demasiado largas se rompan automáticamente con una barra invertida. Conozco la prebreak
opción, pero parece que es imposible pasar un carácter de barra invertida literal a prebreak
.
aprendí deesta respuestacon el que podría especificar barras invertidas \textbackslash
, pero usarlo produce el siguiente mensaje de advertencia:
LaTeX Font Warning: Font shape `OMS/cmtt/m/n' undefined
(Font) using `OMS/cmsy/m/n' instead for symbol `textbackslash' on input line 8.
Si bien esto todavía permite la compilación de documentos, parece que \textbackslash
de alguna manera evita que se formatee según la basicstyle
opción. Como se ve en el siguiente ejemplo, listados es perfectamente capaz de diseñar correctamente las barras invertidas que se ingresan manualmente.
¿Es posible hacer que los listados rompan automáticamente las líneas largas con una barra invertida con el estilo correcto?
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{listings}
\begin{document}
% Automatic line break
\begin{lstlisting}[basicstyle=\ttfamily,breaklines,breakatwhitespace,prebreak={\textbackslash}]
long string of text to test line breaking for the listings package
\end{lstlisting}
% Manual line break
\begin{lstlisting}[basicstyle=\ttfamily,breaklines,breakatwhitespace]
long string of text to test line breaking for the \
listings package
\end{lstlisting}
\end{document}
Respuesta1
Encontré dos respuestas a mi pregunta, las cuales permiten que las barras invertidas tengan el estilo correcto cuando se usan para saltos de línea automáticos con listados:
campasugerenciade agregar
\usepackage[T1]{fontenc}
al preámbulo soluciona el problema de estilo cuando\textbackslash
se usa para laprebreak
opción.Se encontró una solución alternativa enla preguntaal que me había vinculado en mi propia pregunta. Si bien esta pregunta se refería al símbolo de retorno, el código de ejemplo que proporcionaron incluye un método diferente para especificar barras invertidas con
\char`\\
. Resulta que la configuraciónprebreak
con\char`\\
da como resultado una barra invertida con el estilo correcto, sin tener que usar\usepackage[T1]{fontenc}
.
Fue muy útil aprender sobre \char
, ya que supongo que puede ser necesario pasar caracteres especiales a opciones en circunstancias futuras. Sin embargo, para esta situación particular y para escribir con LaTeX en general, creo que seguiré usándolo \usepackage[T1]{fontenc}
debido a los beneficios descritos enesta respuesta.