如何在 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}