У меня проблемы с переносом строк в inline listings. Как вы можете видеть на связанном изображении, точка, заканчивающая предложение, находится на следующей строке из-за переноса текста cite-website
. Пакет listings решил перенести текст, хотя весь он находится на первой строке. Если бы красной крючкообразной стрелки не было, точка бы там поместилась.
МВЭ:
\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}
ОБНОВЛЕНИЕ 1
Вот меньший MWE. Я сохраняю вышеизложенное в посте, потому что я фактически использую все эти вещи в настоящем документе:
\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}
решение1
Я только начал экспериментировать с listings
. Вы пробовали добавить эту строку в свое \lstset
определение?
breakatwhitespace=true,
Этот параметр определяет, должны ли автоматические разрывы происходить только на пробелах (я думаю, по умолчанию они могут происходить в любом месте строки, чтобы было удобно тем, кто пишет код без большого количества пробелов).
Источник:https://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings#Settings