
Estoy intentando arreglar la visualización de un salto de línea dentro de un entorno de listado, pero más específicamente en una parte del listado que está dentro de un área de escape:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[usenames,dvipsnames,table]{xcolor}
\usepackage{listings}
\lstset{}
\definecolor{keywordColor}{HTML}{0033B3}
\definecolor{parameterColor}{HTML}{067D17}
\definecolor{commentColor}{HTML}{8C8C8C}
\definecolor{scenarioColor}{HTML}{871094}
\newcommand{\lstKeyword}[1]{{\textcolor{keywordColor}{#1}}}
\newcommand{\lstParameter}[1]{{\textcolor{parameterColor}{#1}}}
\newcommand{\lstScenario}[1]{{\textcolor{scenarioColor}{\textit{#1}}}}
\lstdefinestyle{bddStory}
{
frame=single,
captionpos=b,
commentstyle=\color{commentColor},
keywordstyle=\color{keywordColor},
morekeywords={Given ,When ,Then ,And ,Narrative,Examples},
escapeinside={<@}{@>},
showspaces=false,
showtabs=false,
showstringspaces=false,
breaklines=true,
postbreak=\mbox{\textcolor{red}{$\hookrightarrow$}\space},
breakatwhitespace=true
}
\title{Example Issue}
\begin{document}
\begin{lstlisting}[style=bddStory]
<@\lstScenario{Scenario: A scenario title is too long and can't fit into a single line which causes issues in the highlighting}@>
Given there is some further content
\end{lstlisting}
\end{document}
El contenido se representa de la siguiente manera: el problema son los dos saltos en el cuadro y la flecha que falta en la nueva línea:
Respuesta1
Este cuadro segmentado es un error conocido en listings
el paquete. Puedes usar el parche tcolorbox
de listings
para solucionarlo. Observe que la forma en que se pasan los argumentos al listings
paquete es diferente.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[usenames,dvipsnames,table]{xcolor}
\usepackage{tcolorbox}
\tcbuselibrary{skins, breakable, listings}
\definecolor{keywordColor}{HTML}{0033B3}
\definecolor{parameterColor}{HTML}{067D17}
\definecolor{commentColor}{HTML}{8C8C8C}
\definecolor{scenarioColor}{HTML}{871094}
\newcommand{\lstKeyword}[1]{{\textcolor{keywordColor}{#1}}}
\newcommand{\lstParameter}[1]{{\textcolor{parameterColor}{#1}}}
\newcommand{\lstScenario}[1]{{\textcolor{scenarioColor}{\textit{#1}}}}
\lstdefinestyle{bddStory}
{
captionpos=b,
commentstyle=\color{commentColor},
keywordstyle=\color{keywordColor},
morekeywords={Given ,When ,Then ,And ,Narrative,Examples},
escapeinside={<@}{@>},
showspaces=false,
showtabs=false,
showstringspaces=false,
breaklines=true,
postbreak=\mbox{\textcolor{red}{$\hookrightarrow$}\space},
breakatwhitespace=true
}
\title{Example Issue}
\newtcblisting{mylisting}[1]{
enhanced,
breakable,
listing only,
boxrule=0.8pt,
sharp corners,
top=0mm,
bottom=0mm,
left=2mm,
right=2mm,
boxsep=0mm,
colframe=black,
colback=white,
listing options={
style=#1
}
}
\begin{document}
\begin{mylisting}{bddStory}
<@\lstScenario{Scenario: A scenario title is too long and can't fit into a single line which causes issues in the highlighting}@>
Given there is some further content
\end{mylisting}
\end{document}
En cuanto a la flecha que falta, creo que listings
el paquete no intenta agregar postbreak
contenido a la región escapada. Vea el ejemplo a continuación:
Si usteden realidadQuiero implementar esta característica, encuentro estas dos publicaciones: