我想将一些 matlab 代码附加到 tex 文档中,为此我使用了 matlab-prettifier 包。我昨天更新了我的 miktex 安装,现在我被迫使用 \UseRawInputEncoding 代码行。我的 matlab 代码中的德语和拉丁语符号都运行正常,除了度数符号,它显示为上面带有倒置帽子的 r,无论我是否使用文字替换方法。任何关于如何优雅地解决这个问题的建议都欢迎。
这是我的 MWE:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[framed,numbered]{matlab-prettifier}
\usepackage{textcomp}
\UseRawInputEncoding
\begin{document}
\lstset{
language=Matlab,
style=Matlab-editor,
basicstyle=\mlttfamily\footnotesize,
literate=%
{°}{\textdegree{}}1%
}
\lstinputlisting[]{matlab_code.m}
\end{document}
我的 matlab_code.m 文件内容如下:
% ----------------------------
% Rö and Mé (T = 23°C)
var_1 = 10;
显然,我可以在 matlab 文件中用 degree 代替 °,并用 \textdegree 替换它,但我希望将对 matlab 代码的更改降到最低,并实际使用度数符号,其使用比相应文本更自然。是否可以直接在 tex 中并通过 matlab-prettifier 读取 matlab 文件上写的 ° 符号,而不是“绕来绕去”,用实际符号替换相应的度数文本?
答案1
不幸的是,清单中没有涵盖 UTF-8。但\UseRawInputEncoding
它不是正确的工具。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[framed,numbered]{matlab-prettifier}
\begin{document}
\lstset{
language=Matlab,
style=Matlab-editor,
basicstyle=\mlttfamily\footnotesize,
literate=
{°}{\textdegree{}}1
{ö}{{\"o}}1
{é}{{\'e}}1
}
\lstinputlisting[]{matlab_code.m}
\end{document}
为了完整起见,下面是我得到的结果minted
。
\documentclass{article}
\usepackage[T1]{fontenc}
%\usepackage[framed,numbered]{matlab-prettifier}
\usepackage{minted}
\begin{document}
\inputminted[frame=single,linenos]{matlab}{matlab_code.m}
\end{document}