如何避免在列表列表中出现希腊字母符号

如何避免在列表列表中出现希腊字母符号

我正在使用该lstlisting包,但我不想让它通过符号显示希腊字母。

例如:

\begin{lstlisting}
Parameter.delta_x = 0.002e-6;
\end{lstlisting}

我希望那条线Parameter.delta_x = 0.002e-6;以那种方式出现,显示文本“delta”,而不是希腊符号\delta

我怎样才能做我想做的事?


编辑:我已经找到原因了。由于此代码是 MATLAB 代码,因此我在序言中输入了:

\usepackage[framed,numbered,autolinebreaks,useliterate]{mcode}

最后一个选项,useliterate显然不符合我的需要。

答案1

总结

抛弃mcode并使用matlab-prettifier而不是包装:p


详细解答

您正在mcode使用其useliterate选项加载包,该选项定义了以下内容的文字替换delta

literate=%
  %...
  {delta}{{\tiny$\Delta$}}1 %    \Delta
  %...

mcode包实际上定义了许多其他文字替换(例如<=by );其中一些被用作以end不同方式突出显示 MATLAB 关键字的基本方法,具体取决于它是否表示“数组的最后一个元素”,例如

x(2:end)

或者是否关闭一个块(循环、if 语句等),例如

for i=1:10
  %...
end

您可能会发现其中一些文字替换是不受欢迎的(就像我一样),但mcode没有提供一种简单的方法来禁用它们,而不会破坏突出显示关键字的机制end

这里你有两个选择:

1 - 保留mcode但去掉不受欢迎的文字替代词

这种方法很麻烦,但如果你坚持使用,这就是你必须做的mcode。在你的序言中,在mcode用选项加载包之后,

\usepackage[framed,numbered,autolinebreaks,useliterate]{mcode}

添加以下行:

\makeatletter
\ifmcode@useliterate
  \lstset{%
    literate=%
      {~}{{$\neg$}}1 % 
      {<=}{{\tiny$\leq$}}1 %
      {>=}{{\tiny$\geq$}}1 %
      {~=}{{\tiny$\neq$}}1 %
      %{delta}{{\tiny$\Delta$}}1 % comment this one out
      {µ}{{$\mu$}}1 %
      {(end)}{\lstbasicfont (end)}{5}
      {({ }end)}{\lstbasicfont ({ }end)}{6}
      {(end{ })}{\lstbasicfont (end{ })}{6}
      {({ }end{ })}{\lstbasicfont ({ }end{ })}{7}
      {:end}{\lstbasicfont :end}{4}
      {:{ }end}{\lstbasicfont :{ }end}{5}
      {end:}{\lstbasicfont end:}{4}
      {end{ }:}{\lstbasicfont end{ }:}{5}
      {,end}{\lstbasicfont ,end}{4}
      {,{ }end}{\lstbasicfont ,{ }end}{5}
  }
\else
  \lstset{%
    literate=%
      {(end)}{\lstbasicfont (end)}{5} %
      {({ }end)}{\lstbasicfont ({ }end)}{6}
      {(end{ })}{\lstbasicfont (end{ })}{6}
      {({ }end{ })}{\lstbasicfont ({ }end{ })}{7}
      {:end}{\lstbasicfont :end}{4}
      {:{ }end}{\lstbasicfont :{ }end}{5}
      {end:}{\lstbasicfont end:}{4}
      {end{ }:}{\lstbasicfont end{ }:}{5}
      {,end}{\lstbasicfont ,end}{4}
      {,{ }end}{\lstbasicfont ,{ }end}{5}
      {µ}{$\mu$}1
      {~}{{\fontfamily{ptm}\selectfont\texttildelow}}1 %
  }
\fi
\makeatother

2 - 抛弃mcode并使用matlab-prettifier而不是包装

mcode根本不要加载;只需将以下内容添加到您的序言中。

\usepackage[framed,numbered]{matlab-prettifier}
\lstset{
  style      = Matlab-editor,
  basicstyle = \fontfamily{pcr}\selectfont\footnotesize, % if you want to use Courier
}

matlab-prettifier不会强迫用户进行任何此类文字替换,尽管我有偏见,但它在突出显示 MATLAB 代码方面做得更好mcode;参见这个答案, 例如。

相关内容