Mit fancyvrb
und fvextra
ist es möglich, an jeder beliebigen Stelle wörtliche Umgebungen für Zeilenumbrüche zu erstellen, um sie der Textbreite anzupassen.
\documentclass{article}
\usepackage{fancyvrb}
\usepackage{fvextra}
\begin{document}
\DefineVerbatimEnvironment{MyVerbatim}{Verbatim}{breaklines, breakanywhere}
\begin{MyVerbatim}
def f(x):
s = "908df0sdfdsfsd78g89f7g98fd7gh98fdhfd7h98df7h98dfh99h8dfa897hf9d7h98fd7hf98dh"
return x
\end{MyVerbatim}
\end{document}
Wenn ich jedoch commandchars
einen Befehl innerhalb der Verbatim-Umgebung hinzufüge und einfüge, wird der Zeilenumbruch-Algorithmus fvextra
irgendwie außer Kraft gesetzt.
\documentclass{article}
\usepackage{fancyvrb}
\usepackage{fvextra}
\usepackage{xcolor}
\begin{document}
\newcommand{\Tok}[1]{\textcolor[rgb]{0.3, 0.4, 0.2}{#1}}
\DefineVerbatimEnvironment{MyOtherVerbatim}{Verbatim}
{breaklines, breakanywhere, commandchars=\\\{\}}
\begin{MyOtherVerbatim}
def f(x):
s = \Tok{"908df0sdfdsfsd78g89f7g98fd7gh98fdhfd7h98df7h98dfh99h8dfa897hf9d7h98fd7hf98dh"}
return x
\end{MyOtherVerbatim}
\end{document}
Warum tritt dies auf? Wie kann ich weiterhin Zeilenumbrüche erzielen, selbst wenn ich auf diese Weise benutzerdefinierte Befehle einfüge?