A\b Usando el paquete mcode

A\b Usando el paquete mcode

¿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 \mcodede 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 \lstinlinecomando. La definición renovada permite \lstinlineprocesar sus argumentos de manera un poco más efectiva.

Básicamente, mcode.stydefine lo siguiente

\newcommand{\mcode}[1]{\lstinline[basicstyle=\lstbasicfont]|#1|}

Si intentas algo como

\lstinline[basicstyle=lstbasicfont]|x=A\b|

Entonces obtienes el resultado. listingsEstá haciendo varias magias como \verb. Al definir el comando contenedor, \mcodeno 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-prettifierpaqueteen cambio:

ingrese la descripción de la imagen aquí

\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}

información relacionada