度数符号和 \lstinputlisting

度数符号和 \lstinputlisting

如何在列表中打印度数符号 (°) \lstinputlisting

我注意到了基于lstlisting环境的问题,但它不起作用\lstinputlisting

这说明该解决方案与lstlisting环境不兼容\lstinputlisting在此处输入图片描述

平均能量损失

\documentclass{article}

\usepackage{listings}
\usepackage{matlab-prettifier} % To highligth MATLAB code

\lstset{
    style=Matlab-editor,
    literate={{°}{\textdegree}1}
    }

\begin{document}

\begin{lstlisting}
{Street name, n° 40}
\end{lstlisting}

\lstinputlisting{test_matlab.m}
    
\end{document}

要打印的 MATLAB 文件\lstinputlisting

function [others] = Create_structure_others()

    others.a = struct('value', [], 'unit', '°');

end

答案1

检查.m文件是否为 UTF-8 编码,如果不是,则进行转换。

\begin{filecontents*}{\jobname.m}
function [others] = Create_structure_others()

    others.a = struct('value', [], 'unit', '°');

end
\end{filecontents*}

\documentclass{article}

\usepackage{listings}
\usepackage{matlab-prettifier} % To highligth MATLAB code

\lstset{
    style=Matlab-editor,
    literate={{°}{\textdegree}1}
    }

\begin{document}

\begin{lstlisting}
{Street name, n° 40}
\end{lstlisting}

\lstinputlisting{\jobname.m}

\end{document}

在此处输入图片描述

我不确定是否可以强制 MATLAB 输出 UTF-8,但应该是可能的。

我尝试将.m文件转换为 Latin-1,事实上,输出与您的类似(带有错误消息)。

相关内容