我正在尝试使用 matlab-prettifier 将我的代码放入 Latex 文档中。我使用 \lstinputlisting[style=Matlab-editor]{Trap.m} 执行此操作。
Trap.m(MATLAB 文件)的示例如下
step size = 5
sub_int=100
fprintf("To get an estimation to two decimal places we needed a step size of %f which is %.0f intervals. \n", step_size, sub_int)
当我运行 matlab-prettifier 时,它假设“%”后面的字符串实际上是注释而不是语句。由于它意味着将浮点数输入到字符串中,因此颜色应该是黑色。我不确定如何纠正这个问题。
我在下面为 Latex 添加了 MWE。
\documentclass{article}
\usepackage{matlab-prettifier}
Text...
\lstinputlisting[style=Matlab-editor]{Trap.m}
答案1
您可以使用单引号代替双引号来包裹字符串
或者您可以定义一些转义字符,并在转义字符内放置“%”。这是一个 MWE。
\documentclass{article}
\usepackage{matlab-prettifier}
\lstset{
escapechar = `,
}
\begin{document}
Text...
\lstinputlisting[style=Matlab-editor]{Trap.m}
\end{document}
陷阱
step size = 5
sub_int=100
fprintf('To get an estimation to two decimal places we needed a step size of %f which is %.0f intervals. \n', step_size, sub_int)
fprintf("To get an estimation to two decimal places we needed a step size of `\%`f which is `\%`.0f intervals. \n", step_size, sub_int)
答案2
尝试:
\lstset{style=Matlab-editor}
\lstset{morestring=[m]"}
\lstinputlisting{filename.m}
它确实应该被添加到样式文件中,也许带有版本选项,以便 2017 年之前有缺陷的代码仍然“正确”地突出显示,但 CTAN 没有列出存储库,所以我不能只发送拉取请求。