A\b 使用 mcode 包

A\b 使用 mcode 包

如何在 mcode 中排版“x=A\b”,它代表 MATLAB 中的“矩阵除法”?这是一个 MWE:

\documentclass[12pt]{report}
\usepackage{amsthm,amsmath, amssymb, paralist, fancybox, listings, mathtools, verbatim, textcomp}
\usepackage{mcode}
\usepackage[unicode,pdfborder={0 0 0 0}, colorlinks=true, urlcolor=red, linkcolor=black]{hyperref}
\usepackage{float}
\usepackage[font=small,labelsep=none]{caption}
\lstset{language=Matlab}
\begin{document}
In MATLAB, it can be solved by executing the statement \mcode{x  =  A \ b}
\end{document}

答案1

你可以写类似

\mcode{x = A \\ b }

看来更好的选择是重新定义\mcode如下:

\renewcommand{\mcode}{\lstinline[basicstyle=\lstbasicfont]}

然后它似乎工作正常。

对于我来说这个重新定义\mcode

\mcode{x = A \ b}

按您想要的方式排版。

参数中的某些内容在到达\lstinline命令之前已得到处理。更新的定义允许\lstinline更有效地处理其参数。

基本上,mcode.sty定义以下内容

\newcommand{\mcode}[1]{\lstinline[basicstyle=\lstbasicfont]|#1|}

如果你只是尝试类似

\lstinline[basicstyle=lstbasicfont]|x=A\b|

然后你就得到了结果。 listings正在做各种魔法,比如\verb。通过定义包装器命令,\mcode并不是所有的字符代码都能很快被处理。

\lstinline!Foo! 与 \lstinline{Foo}新定义的命令如何处理

\mcode|x=A \ b|

 \mcode{x = A \ b}

答案2

考虑使用matlab-prettifier包裹反而:

在此处输入图片描述

\documentclass[a4paper]{article}

\usepackage{matlab-prettifier}

% Define a one-character shorthand (") for inline code.
\lstMakeShortInline[style=Matlab-editor]"

\begin{document}
"x=A\b" represents ``matrix division'' in MATLAB.
\end{document}

相关内容