如何抑制 lstlisting/lstinline 内部“

如何抑制 lstlisting/lstinline 内部“

我有以下 LaTeX 代码:

some text \lstinline!u <= 1! some text

在我的输出中,两个字符<=自动合并为一个“小于或等于”字符(即 Unicode U+2264)。如何去掉这个特性?它看起来不错,但不能反映原始语法。

一些备注:就我而言,我使用的是 Modelica 语言的自定义定义。但是,当切换到预定义语言(即 Pascal)时,我得到了完全相同的行为。

答案1

我终于弄清楚了问题出在哪里。为了说明清楚,我将从 MWE 开始,自动转换列表内的不等式:

\documentclass[%
   final,      % fertiges Dokument
     % --- Paper Settings ---
   paper=a4% [Todo: add alternatives]
   paper=portrait, % landscape
   pagesize=auto, % driver
   fontsize=11pt,%
   version=last, %
 ]{scrbook}

\usepackage{listings}
\usepackage{textcomp}

\lstset{%
  breaklines=true,
  showstringspaces=false,                     % do not emphasize spaces in strings
  tabsize=4,                                  % number of spaces of a TAB
  mathescape=false,escapechar=§,              % escape to latex with §...§
  upquote=true,                               % upright quotes
  aboveskip={1.5\baselineskip},               % a bit of space above listings
  columns=fixed,                              % nice spacing
  %
  % the following is for replacing some vhdl relations like >= or ~=
  % by the corresponding LaTeX symbols, which are much easier to read ...
  literate=%
    {~}{{$\neg$}}1 %            \neg
    % {-}{{-}}1 %                 prevent ``-'' being replaced by math minus
    {<=}{{\tiny$\leq$}}1 %      \leq
    {>=}{{\tiny$\geq$}}1 %      \geq
    {~=}{{\tiny$\neq$}}1 %      \neq
    {delta}{{\tiny$\Delta$}}1%  \Delta
    {iend}{{\fontfamily{pcr}\selectfont end}}3% end when indexing matrix elements
}

\begin{document}

Lorem ipsum \lstinline!x <= 0!.

\end{document}

显然,该行为是使用 \lstset 中的“literate”子句实现的。但是,在我的例子中,我明确地没有想要转换,因为它不反映原始语法。问题是上面的代码是包含在我文档中的 .sty 文件的一部分。我不知道那个 .sty 文件里面发生了什么,所以我花了几个小时研究如何抑制转换。当我找到文件时,删除有问题的行只需几秒钟。

相关内容