A\b Usando pacote mcode

A\b Usando pacote mcode

Como faço para digitar "x=A\b" no mcode, que representa "divisão de matriz" no MATLAB? Aqui está um 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}

Responder1

Você poderia simplesmente escrever algo como

\mcode{x = A \\ b }

Parece que a melhor opção é redefinir \mcodeda seguinte forma:

\renewcommand{\mcode}{\lstinline[basicstyle=\lstbasicfont]}

e então parece funcionar bem.

Para mim com isso redefinido\mcode

\mcode{x = A \ b}

fica tipografado como você deseja.

Algo no argumento está sendo processado antes de chegar ao \lstinlinecomando. A definição renovada permite\lstinline processar os seus argumentos de forma um pouco mais eficaz.

Basicamente, mcode.stydefine o seguinte

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

Se você apenas tentar algo como

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

Então você obtém o resultado. listingsestá fazendo várias mágicas como \verb. Ao definir o comando wrapper\mcode nem todos os códigos de caracteres serão processados ​​com rapidez suficiente.

Ver\lstinline!Foo! vs \lstinline{Foo}para saber como o comando recém-definido lida com a diferença entre

\mcode|x=A \ b|

e

 \mcode{x = A \ b}

Responder2

Considere usar omatlab-prettifierpacoteem vez de:

insira a descrição da imagem aqui

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

informação relacionada