
まず、役に立つと思われる情報をいくつか紹介します。
- Python バージョン: 3.8.0
- ピグメンツ バージョン 2.5.1
- テックスライブ2019
- テックスメーカー 5.0.3
- PDFLaTeX を使用してビルドします (XeLaTeX と LuaLaTeX も試しました)
- Windows 10 (それが重要なら...?)
私が欲しいもの
次のような文字を含むmatlabスクリプトファイル(*.m)をインポートしようとしています。å、äそしてöパッケージを使用しますminted
。
問題
何が起こるかというと、コードはインポートされて表示されますが、上記のさまざまなエンジン/ビルダー間で多少異なりますが、上記の文字が欠落しています。
とはいえ、*.mファイルをインポートする代わりに\inputminted...
、matlabコードを直接貼り付けるとすべて正常に動作します\begin{minted}{matlab}
...。\end{minted}
つまり、åの、ä'砂öは正しく表示されます。
これで問題は明らかに解決しましたが、インポート機能がなぜminted
正しく動作しないのかまだわかりません。
MWE:
\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
MATLAB (R2019) で作成した *.m ファイルのエンコードが異なる可能性があると疑い、コードをメモ帳にコピー/貼り付けし、UTF-8 で保存しました (ただし、*.m ファイルとして保存しましたが、これは問題にならないかもしれません)。するとなんと、minted
PDFLaTeX を実行しても問題はなくなりました。