Ich habe Probleme mit dem Zeilenumbruch von Inline-Auflistungen. Wie Sie im verlinkten Bild sehen können, steht der Punkt am Ende des Satzes aufgrund des Textumbruchs in der nächsten Zeile cite-website
. Das Listings-Paket hat beschlossen, den Text umzubrechen, obwohl er vollständig in der ersten Zeile steht. Wenn der rote Hakenpfeil nicht da wäre, würde der Punkt dort passen.
MWE:
\documentclass[twoside]{article}
\usepackage{lmodern}
\usepackage{amssymb,amsmath}
\usepackage{microtype}
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
\usepackage{listings}
\usepackage[vmargin=1in,headheight=13pt,twoside,twocolumn,a5paper]{geometry}
\usepackage{accsupp}
\usepackage{MnSymbol}
\usepackage{textcomp}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\newcommand{\noncopy}[1]{%
\BeginAccSupp{method=escape,ActualText={}}%
#1%
\EndAccSupp{}%
}
\lstset{breaklines=true,
xleftmargin=1.5em,framexleftmargin=1em,
basicstyle=\ttfamily,
upquote=true,
literate={`}{{\BeginAccSupp{method=plain,ActualText=`}‵\EndAccSupp{}}}1
{"}{{\BeginAccSupp{method=plain,ActualText="}"\EndAccSupp{}}}1
{'}{{\BeginAccSupp{method=plain,ActualText='}'\EndAccSupp{}}}1,
showstringspaces=false,
numbers=left, numberstyle=\scriptsize\noncopy,
%postbreak=\raisebox{0ex}[0ex][0ex]{\noncopy{\ensuremath{\color{red}\hookrightarrow}}},
prebreak=\raisebox{0ex}[0ex][0ex]{\noncopy{\ensuremath{\color{red}\rhookswarrow}}}
}
\begin{document}
Foo bar baaz \lstinline!cite-website!.
\end{document}
AKTUALISIERUNG 1
Hier ist ein kleineres MWE. Ich behalte das Obige im Beitrag, weil ich all diese Dinge tatsächlich im eigentlichen Dokument verwende:
\documentclass[twoside]{article}
\usepackage{lmodern}
\usepackage{amssymb,amsmath}
\usepackage{listings}
\usepackage[vmargin=1in,headheight=13pt,twoside,twocolumn,a5paper]{geometry}
\usepackage{MnSymbol}
\usepackage{textcomp}
\lstset{breaklines=true,
basicstyle=\ttfamily,
showstringspaces=false,
prebreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\rhookswarrow}}}
\begin{document}
Foo bar baaz \lstinline!cite-website!.
\end{document}
Antwort1
Ich habe gerade angefangen, mit zu experimentieren listings
. Haben Sie versucht, diese Zeile zu Ihrer \lstset
Definition hinzuzufügen?
breakatwhitespace=true,
Diese Einstellung legt fest, ob automatische Umbrüche nur bei Leerzeichen erfolgen sollen (ich glaube, standardmäßig können sie überall in einer Zeile erfolgen, um Leuten entgegenzukommen, die Codetypen mit vielen Leerzeichen schreiben).
Quelle:https://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings#Einstellungen