
¿Cómo puedo escribir "x=A\b" en mcode, que representa "división matricial" en MATLAB? Aquí hay un 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}
Respuesta1
Podrías escribir algo como
\mcode{x = A \\ b }
Parece que la mejor opción es redefinir \mcode
de la siguiente manera:
\renewcommand{\mcode}{\lstinline[basicstyle=\lstbasicfont]}
y luego parece funcionar bien.
Para mi con esto redefinido\mcode
\mcode{x = A \ b}
se compone como quieras.
Algo en el argumento se está procesando antes de llegar al \lstinline
comando. La definición renovada permite \lstinline
procesar sus argumentos de manera un poco más efectiva.
Básicamente, mcode.sty
define lo siguiente
\newcommand{\mcode}[1]{\lstinline[basicstyle=\lstbasicfont]|#1|}
Si intentas algo como
\lstinline[basicstyle=lstbasicfont]|x=A\b|
Entonces obtienes el resultado. listings
Está haciendo varias magias como \verb
. Al definir el comando contenedor, \mcode
no todos los códigos de caracteres se procesan lo suficientemente pronto.
Ver\lstinline!Foo! frente a \lstinline{Foo}para ver cómo el comando recién definido maneja la diferencia entre
\mcode|x=A \ b|
y
\mcode{x = A \ b}
Respuesta2
Considere usar elmatlab-prettifier
paqueteen cambio:
\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}