コードにå ä öを含むインポートされた.mファイルを使用して鋳造されました

コードにå ä öを含むインポートされた.mファイルを使用して鋳造されました

まず、役に立つと思われる情報をいくつか紹介します。

  • 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 ファイルとして保存しましたが、これは問題にならないかもしれません)。するとなんと、mintedPDFLaTeX を実行しても問題はなくなりました。

関連情報