LaTeX でマークシート形式の試験問題を作問しているのだが、python のコードを minted 環境に貼る際、以下のような感じで escapeinside を使って回答用の空欄を埋め込むと、それ以降のシンタックスハイライトが腐る。
\begin{minted}[fontsize=\small,escapeinside=@@]{python} print(@\qfbox{?}@) \end{minted}
Microsoft Copilot に「VisualStudioCode で LaTeX のソースを編集する際、minted で escapeinside=@@ を理解してくれないらしく syntax highlighting が腐るんだけど、何か方法はない?」って聞いてみた結果は以下。
Visual Studio Code の構文解析は静的なので無理って話で、以下の issue が参照されていた。
「"visual studio code" latex minted escapeinside」でググってみたが、こちらの耳寄りな情報はなし。
- GitHub / microsoft / vscode / issues / 2023-04-24: LaTeX syntax highlighting broken with minted and escapeinside #180692
- GitHub / James-Yu / LaTeX-Workshop / issues / 2023-04-04: Wrong syntax highlighting when using option escapeinside of package minted #3822
「"visual studio code" latex minted escapeinside」でググってみたが、こちらの耳寄りな情報はなし。
とりあえず、上記の通り、現時点では根本的な解決策はないという話。
対処療法としては、上記 vscode の issue を vscode-latex-basics の方に立て直した以下の issue
別解としては、minted 環境の部分(\begin{minted} 〜 \end{minted} まで)を丸ごと別ファイル(例えば hoge.py.tex 等)に切り出してしまう方法もある。
その場合、以下のように \input{} で include させる。
当初、\include{} で include させると、余分な改行や改ページが入ってレイアウトが乱れて困ったのだが、これは Copilot が \input{} 使うといいよと教えてくれた。
対処療法としては、上記 vscode の issue を vscode-latex-basics の方に立て直した以下の issue
- GitHub / jlelong / vscode-latex-basics / issues / 2023-04-25: LaTeX syntax highlighting broken with minted and escapeinside #58
\begin{minted}[fontsize=\small,escapeinside=@@]{python} print(@\qfbox{?}@) \end{minted} \if 0 ) \end{minted} \fi結果はこんな感じ
別解としては、minted 環境の部分(\begin{minted} 〜 \end{minted} まで)を丸ごと別ファイル(例えば hoge.py.tex 等)に切り出してしまう方法もある。
その場合、以下のように \input{} で include させる。
\input{hoge.py.tex}
当初、\include{} で include させると、余分な改行や改ページが入ってレイアウトが乱れて困ったのだが、これは Copilot が \input{} 使うといいよと教えてくれた。
タグ
コメントをかく