我对 lstlistings 中布局不正确的特定代码感到困扰。
\documentclass{article}
\usepackage{listings}
\lstset{morestring=[b]",basicstyle=\ttfamily,}
\begin{document}
\lstinline^x: "" x^
\end{document}
生成:
其中“”后面(第二个 x 之前)缺少一个空格。即使稍微修改一下也能得到正确的结果,不幸的是我需要文本、冒号、空格、引号(“”)然后是空格(这种组合似乎总是失败)。
注意:我需要使用 lstlistings,因为我还使用stringstyle=\color{purple}\ttfamily
MWE 中未显示的其他颜色样式。
谢谢,并致以最诚挚的问候,Markus
答案1
在我看来这似乎是一个错误(但由于列表中空格的处理相当复杂,因此很难真正确定),所以你应该报告它。
它适用于可见空间,因此作为解决方法,您可以这样做:
\documentclass{article}
\usepackage{listings}
\lstset{morestring={[b]"},basicstyle=\ttfamily,showspaces}
\makeatletter
\def\lst@visiblespace{\lst@ttfamily{\phantom{\char32}}{\phantom{\textvisiblespace}}}
% or
%\def\lst@visiblespace{\lst@ttfamily{\ }{\ }}
\makeatother
\begin{document}
\lstinline^x: "" x^
\end{document}