A\b mcodeパッケージの使用

A\b mcodeパッケージの使用

MATLAB で「行列除算」を表す「x=A\b」を mcode でタイプセットするにはどうすればよいでしょうか? 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}

関連情報