A\b Использование пакета mcode

A\b Использование пакета mcode

Как мне набрать "x=A\b" в mcode, что представляет собой "деление матриц" в 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}

Связанный контент