“?”之前的空格,通常不能用 babel-french 打破,但可以用 listings 的 breaklines 选项打破

“?”之前的空格,通常不能用 babel-french 打破,但可以用 listings 的 breaklines 选项打破

使用 时babel-french,问号前的空格通常是不能断开的。

但是,如下面的 MWE 所示(使用pdflatexxelatex或编译lualatex),在某些情况下,包breaklines的选项listings可以产生与该空间可破坏相同的效果。

\documentclass[french]{article}
\usepackage[showframe,paperheight=2.5cm]{geometry}
\usepackage{babel}
\usepackage{listings}

\lstset{
  basicstyle=\ttfamily,
  breaklines
}

\setlength{\parindent}{0pt}

\begin{document}
\hspace*{14.95cm}\texttt{m}?

\hspace*{14.95cm}\lstinline[breaklines=false]|m|?

\hspace*{14.95cm}\lstinline|m|?
\end{document}

在此处输入图片描述

很奇怪不是吗?

答案1

事实上,同样的问题也会出现没有babel-法语。

listings'选项breaklines启用换行任何地方,可以使用选项 限制换行仅在空格处发生(不可换行的空格除外)breakatwhitespace

breakatwhitespace无论是否添加\lstset{}babel-french,Denis 提到的问题都会消失。

相关内容