
Как мне набрать "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}