Gradsymbol und \ lstinputlisting

Oct 28 2020

Wie kann ich ein Gradsymbol (°) in einer Liste mit drucken \lstinputlisting?

Ich habe die Fragen basierend auf der lstlistingUmgebung bemerkt, aber es funktioniert nicht mit \lstinputlisting.

Dies veranschaulicht die Lösung, die mit der lstlistingUmgebung arbeitet, nicht mit \lstinputlisting:

MWE

\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-Datei zum Drucken \lstinputlisting

function [others] = Create_structure_others()

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

end

Antworten

2 egreg Oct 28 2020 at 17:18

Überprüfen Sie, ob die .mDatei UTF-8-codiert ist, und konvertieren Sie sie, falls nicht.

\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}

Ich bin nicht sicher, ob man MATLAB zur Ausgabe von UTF-8 zwingen kann, aber es sollte möglich sein.

Ich habe versucht, die .mDatei in Latin-1 zu konvertieren, und tatsächlich ist die Ausgabe wie Ihre (mit Fehlermeldung).