通过 matlab-prettifier 对选定的德语和拉丁语以及数学物理字符进行 latex 解释

通过 matlab-prettifier 对选定的德语和拉丁语以及数学物理字符进行 latex 解释

我想将一些 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}

在此处输入图片描述

相关内容