
Для начала немного, надеюсь, полезной информации:
- Версия Python: 3.8.0
- Пигменты версии 2.5.1
- TexLive 2019
- Тексмейкер 5.0.3
- Сборка с использованием PDFLaTeX (пробовал также XeLaTeX и LuaLaTeX)
- Windows 10 (если это имеет значение...?)
Что я хочу
Я пытаюсь импортировать файл скрипта Matlab (*.m), который включает такие символы, какå,диöс использованием minted
пакета.
Проблема
Происходит следующее: мой код импортируется и отображается, но указанные символы отсутствуют, хотя и немного по-разному в разных движках/конструкторах, упомянутых выше.
Тем не менее, вместо того, \inputminted...
чтобы импортировать мой *.m-файл, все работает отлично, если вставить код Matlab прямо внутрь \begin{minted}{matlab}
... \end{minted}
. Это означает, что мойå's,д'песокöотображаются правильно.
Это, очевидно, решает проблему, но я все еще не понимаю, почему функция импорта minted
не работает должным образом.
МВЭ:
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[swedish]{babel}
\usepackage{minted}
\begin{document}
\section{Pasted code}
\begin{minted}{matlab}
Hönökakan åts upp av änkan.
\end{minted}
\section{Imported code}
\inputminted{matlab}{test.m} % Contains the same sentence as above
\end{document}
4 сообщения об ошибках:
! Package inputenc Error: Invalid UTF-8 byte "F6.See the inputenc package documentation for explanation.Type H <return> for immediate help.... ...{n}{H�n�kakan }\PYG{l+s}{�ts upp av �nkan.}
! Package inputenc Error: Invalid UTF-8 byte "F6.See the inputenc package documentation for explanation.Type H <return> for immediate help.... ...{n}{H�n�kakan }\PYG{l+s}{�ts upp av �nkan.}
! Package inputenc Error: Invalid UTF-8 byte sequence.See the inputenc package documentation for explanation.Type H <return> for immediate help.... ...{n}{H�n�kakan }\PYG{l+s}{�ts upp av �nkan.}
! Package inputenc Error: Invalid UTF-8 byte sequence.See the inputenc package documentation for explanation.Type H <return> for immediate help.... ...{n}{H�n�kakan }\PYG{l+s}{�ts upp av �nkan.}
Что каким-то образом связано с inputenc
. Эти ошибки возникают только при использовании PDFLaTeX (XeLaTeX только шлепает меня по пальцам за использование inputenc и прощает меня, но LuaLaTeX также выдает мне ошибки, которые заявляют, что я использую недопустимую последовательность utf-8)
решение1
Сидя здесь и написав вопрос, я просмотрел файл журнала, чтобы посмотреть, нет ли там чего-нибудь ценного. Конечно, было. Проблема была не в TeX или minted
, а в том, как MATLAB кодирует.
The document does not appear to be in UTF-8 encoding.
Try adding \UseRawInputEncoding as the first line of the file
or specify an encoding such as \usepackage [latin1]{inputenc}
in the document preamble.
Alternatively, save the file in UTF-8 using your editor or another tool
Подозревая, что файл *.m, созданный мной в MATLAB (R2019), может иметь другую кодировку, я скопировал/вставил свой код в блокнот, сохранил его в UTF-8 (и как файл *.m, хотя это может и не иметь значения) и, о чудо, теперь minted
не возникло никаких проблем при запуске PDFLaTeX.