內嵌列表換行問題

內嵌列表換行問題

我遇到內聯列表換行問題。正如您在連結圖像中看到的,由於文字換行,句子結束的句點位於下一行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

相關內容