Символ степени и \ lstinputlisting
Oct 28 2020
Как я могу напечатать символ градуса (°) в листинге с помощью \lstinputlisting?
Я заметил вопросы, связанные с lstlistingокружением, но оно не работает \lstinputlisting.
Это иллюстрирует решение, работающее со lstlistingсредой, а не с \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 для печати с \lstinputlisting
function [others] = Create_structure_others()
others.a = struct('value', [], 'unit', '°');
end
Ответы
2 egreg Oct 28 2020 at 17:18
Убедитесь, что .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, и, действительно, результат такой же, как у вас (с сообщением об ошибке).