我在内联列表换行方面遇到了问题。如您在链接图片中看到的,由于文本换行,句子结尾的句号位于下一行cite-website
。列表包决定换行文本,即使整个文本都在第一行。如果没有红色钩箭头,句号就会适合那里。
梅威瑟:
\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