Salto de línea automático con barra invertida en listados

Salto de línea automático con barra invertida en listados

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 prebreakopció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 \textbackslashde alguna manera evita que se formatee según la basicstyleopció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}

Captura de pantalla del resultado del código látex anterior, que demuestra la diferencia visual en las barras invertidas

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 \textbackslashse usa para la prebreakopció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ón prebreakcon \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.

información relacionada