我想用 MATLAB 代码生成 MATLAB 美化代码。使用.\
会导致错误。alsoletter={.\\}
似乎\lstdefinestyle
不起作用
\documentclass[aspectratio=169, xcolor={x11names}, t, handout]{beamer}
\usepackage{calc}
\usetheme{Dresden}
\usefonttheme{professionalfonts}
\renewcommand{\sfdefault}{ppl}
\usepackage[T1]{fontenc}
\renewcommand{\encodingdefault}{T1}
\usepackage{listings}
% ========== MATLAB codes packages =========
% BEGIN_FOLD
\usepackage[]{matlab-prettifier}
% BEGIN_FOLD
% Inline code
% BEGIN_FOLD
\lstdefinestyle{matlab}{
% style
style=Matlab-editor,
basicstyle=\linespread{0.8}\mlttfamily\footnotesize,
% alsoletter={.\\},
literate=
*{.\\}{\textcolor{IndianRed1}{. \textbackslash{}}}{1}, % .\
}
\lstset{style=matlab}
% END_FOLD
% END_FOLD
% END_FOLD
\begin{document}
\begin{frame}[fragile, environment=frame, allowframebreaks=0.99]
\begin{lstlisting}
a.\b
\end{lstlisting}
\end{frame}
\end{document}
答案1
如果不需要,你不应该使用 beamer 来制作最小示例。必须加载所有 pgf 内容是一件麻烦事。
除此之外:listings 有一个文档,这个文档非常清楚地描述了 literate 的语法,并且还说明需要额外的括号来保护内容中的命令。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{listings}
\usepackage[]{matlab-prettifier}
\lstdefinestyle{matlab}{
style=Matlab-editor,
basicstyle=\linespread{0.8}\mlttfamily\footnotesize,
literate=
*{.\\}{{\textcolor{red}{.\textbackslash{}}}}{2}, % .\
}
\lstset{style=matlab}
\begin{document}
\begin{lstlisting}
a.\b
\end{lstlisting}
\end{document}