TL;DR
- 最近VSCodeでLaTeXをかける環境を作った.
- たまに謎のエラーが発生して死ぬことがある
- Undoダメ,発生場所を削除してもダメ,わからん!!!!
環境
- MacOS Mojave系(あまり関係はなさそう)
- latexmk (uplatex -> uplatex -> dvipdfmx)
- ターミナルはHyperでfishが動いている.
エラーコード
! Package inputenc Error: Unicode character ^^H (U+8)
...
l1.
括弧の部分はU+8以外のときもある.
U+8はつまりBSであり,いつも文字を消すときに使う右上のボタンが押されたときに送信される文字コードである.
何故かそれが挿入されたり,たまに他の変な制御文字が入ってたりする.
しかも1行目
調査・解決
いつものバイナリエディタで見てみると,やっぱりファイル内の真ん中辺りに0x08のデータが紛れている.
こいつを適当な正常な値(Ascii内)に書き換えてやって,エディタ側で削除すると解決した.
考察
理由はわからないが,Latexは制御文字が出現すると正確に位置を伝えてくれず.常に1行目1文字目を指すようである.
また原因として,ターミナルの内容をそのままコピペしたことで,ターミナルの中にBSが紛れていて,それがファイル内に入り込んだようであった.
ターミナル内にBSが現れてしまう原因はわからないし,クリップボードにBSが入ることが許容されているのはどうなの....?
今後からはpbcopyで出力を読むようにする