
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 \mcode
da 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 \lstinline
comando. A definição renovada permite\lstinline
processar os seus argumentos de forma um pouco mais eficaz.
Basicamente, mcode.sty
define 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. listings
está 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-prettifier
pacoteem vez de:
\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}