Zeilenumbruch in Listenliste innerhalb von maskiertem Text

Zeilenumbruch in Listenliste innerhalb von maskiertem Text

Ich versuche, die Anzeige eines Zeilenumbruchs innerhalb einer Listenumgebung zu korrigieren, genauer gesagt in einem Teil der Liste, der sich innerhalb eines Escape-Bereichs befindet:

\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}

Der Inhalt wird wie folgt wiedergegeben – das Problem sind die beiden Umbrüche in der Box und der fehlende Pfeil in der neuen Zeile:

falsche Darstellung einer neuen Zeile

Antwort1

Diese segmentierte Box ist ein bekannter Fehler im listingsPaket. Sie können tcolorboxden Patch von verwenden listings, um ihn zu beheben. Beachten Sie, dass die Art und Weise, wie Argumente an das Paket übergeben werden, listingsunterschiedlich ist.

Bildbeschreibung hier eingeben

\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}

Was den fehlenden Pfeil betrifft, denke ich, listingsdass das Paket nicht versucht, postbreakInhalte zum Escape-Bereich hinzuzufügen. Siehe das folgende Beispiel:

Bildbeschreibung hier eingeben

Wenn duWirklichdiese Funktion implementieren möchte, finde ich diese beiden Beiträge:

verwandte Informationen