内联列表换行问题

内联列表换行问题

我在内联列表换行方面遇到了问题。如您在链接图片中看到的,由于文本换行,句子结尾的句号位于下一行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

相关内容