Biểu tượng bằng cấp và \ lstinputlisting
Oct 28 2020
Làm cách nào để in ký hiệu độ (°) trong danh sách với \lstinputlisting?
Tôi đã nhận thấy các câu hỏi dựa trên lstlistingmôi trường nhưng nó không hoạt động với \lstinputlisting.
Điều này minh họa giải pháp làm việc với lstlistingmôi trường không phải với \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}
Tệp MATLAB để in \lstinputlisting
function [others] = Create_structure_others()
others.a = struct('value', [], 'unit', '°');
end
Trả lời
2 egreg Oct 28 2020 at 17:18
Kiểm tra xem .mtệp có được mã hóa UTF-8 không và chuyển đổi tệp đó nếu không.
\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}
Tôi không chắc liệu người ta có thể ép buộc MATLAB xuất ra UTF-8 hay không, nhưng điều đó hoàn toàn có thể.
Tôi đã cố gắng chuyển đổi .mtệp thành Latin-1 và thực sự, đầu ra giống như của bạn (có thông báo lỗi).