文字コード変換された方法(ツール名やオプション)と
使用されているエディタを教えてください。
また、添付の sjis のソースを utf-8 のに変換した場合はどうなりますか
つまり、ソースファイルを表示した時の話だとして進めます。
「SHIFT_JISだった所を他のファイルを開いている際にデフォルト?をUTF-8に変更」した時のアプリがどうやらエディタのようですね。
それは何を使っていますか? TeXworks ? vscode ? その他?
もし使用されているエディタが不明なら、スクリーンショットを添付してください。
『「Windowキー」+「Shift」+「S」キー』で問題となるところの
アプリケーションがわかるようスクリーンショットを取得して
添付してください。
私が、sjis→utf-8 のような文字コード変換を行うのであれば、
エディタで開き、保存時にコード指定もしますが、
大量にあれば nkf というコマンドを使います。
もちろん、windows 用のものをインストールする必要はありますが。
漸く状況が分かった気がします。
こんなシナリオかしら?
1) utf-8 のファイルを開きたいので、「編集」→「設定」→「エディタ」のタブで「エンコーディング」を「utf-8」に変更して、同ファイルを開いた
2) そのままの状態で別の sjis ファイルを開いたところ文字化け
もしそうであれば、文字化けしたら何もせずに閉じて、 (あまり試していないのでケース漏れがあるかもしれませんが) 上記 1) に準じて、これから開くファイルのでエンコーディングに変更してから、再度オープンしてみるしかないようです。
これは、面倒ですね。
私が感じたところでは、TeXworks は、複数のエンコーディングを同時に扱うようにはできていないように思われます。
正しく表示されたら、画面下部に表示されている「CR LF」の横のエンコーディングをご希望のものに設定し保存すれば文字コード変換はできるようですが、これも面倒ですね。
vscode などで、ファイルの文字コードを自動判定 (1) できるようにすれば、vscode などで latex 対応 (2) すれば良いのですが ...
(*1) https://atmarkit.itmedia.co.jp/ait/articles/1806/01/news051.html
(*2) 当フォーラムで latex-work などで検索するか、「vscode latex」でインタネット検索してください
私だったら、今後のことを考え、先に紹介した 「nkf」コマンドで、一括変換してしまいます。以下のように複数のファイルにも対応しています。
nkf -w --overwrite test-sjis.tex test-utf8.tex
nkf のインストールは色々あるのですが私は最近 scoop を使い、
https://github.com/dooteeen/scoop-for-jp を参考に nkf を導入してます
使い方はコマンドプロンプトからですが、わかりますか?
C:\Users\tony\Documents>nkf --help
Usage: nkf -[flags] [--] [in file] .. [out file for -O flag]
j/s/e/w Specify output encoding ISO-2022-JP, Shift_JIS, EUC-JP
UTF options is -w[8[0],{16,32}[{B,L}[0]]]
J/S/E/W Specify input encoding ISO-2022-JP, Shift_JIS, EUC-JP
UTF option is -W[8,[16,32][B,L]]
m[BQSN0] MIME decode [B:base64,Q:quoted,S:strict,N:nonstrict,0:no decode]
M[BQ] MIME encode [B:base64 Q:quoted]
f/F Folding: -f60 or -f or -f60-10 (fold margin 10) F preserve nl
Z[0-4] Default/0: Convert JISX0208 Alphabet to ASCII
1: Kankaku to one space 2: to two spaces 3: HTML Entity
4: JISX0208 Katakana to JISX0201 Katakana
X,x Convert Halfwidth Katakana to Fullwidth or preserve it
O Output to File (DEFAULT 'nkf.out')
L[uwm] Line mode u:LF w:CRLF m:CR (DEFAULT noconversion)
--ic=<encoding> Specify the input encoding
--oc=<encoding> Specify the output encoding
--hiragana --katakana Hiragana/Katakana Conversion
--katakana-hiragana Converts each other
--{cap, url}-input Convert hex after ':' or '%'
--numchar-input Convert Unicode Character Reference
--fb-{skip, html, xml, perl, java, subchar}
Specify unassigned character's replacement
--in-place[=SUF] Overwrite original files
--overwrite[=SUF] Preserve timestamp of original files
-g --guess Guess the input code
-v --version Print the version
--help/-V Print this help / configuration
Network Kanji Filter Version 2.1.5 (2018-12-15)
Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa).
Copyright (C) 1996-2018, The nkf Project.
書いているうちにも nkf の導入方法についての投稿がありましたが、scoop での方法も投稿しておきます。
linux freebsd macos などで行える操作をWindows で行えるようにする手順メモから抜粋します。
参考 URL
https://scoop.sh
powershell で実行してください
- 管理者権限は不要
- ホームディレクトリの scoop というディレクトリを作成しインストールされます
- 不要になったら、大胆に上記ディレクトリを削除しても可
必須ステップ
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force iwr -useb get.scoop.sh | iex scoop install git
定番(多分 nkf だけなら不要だと思いますがその他を入れる時便利)
scoop bucket add extras
nkf を入れるため必要
scoop bucket add jp https://github.com/dooteeen/scoop-for-jp
以降、お好みで
インストールしたいものを探す
scoop search nkf
インストールしたい
scoop install nkf
scoop で使えるコマンドは?
scoop help
おまけ
今調べたら scoop install latex で miktex ベースなものも入るみたいなので、後で試してみようっと。
help と打つとコマンドプロンプトで使えるコマンドが表示されます。
また Google などで検索すると沢山出てくると思います。
(1)コマンドプロンプトを起動して
(2)変換したいファイルがあるディレクトリ(フォルダ)に移動します。(cd を使う)
(3)変換したい元ファイルが hoge.tex の場合
nkf -w hoge.tex > hoge-utf.tex
と打ち込むと
同じディレクトリ(フォルダ)に hoge-utf.tex が出来ます。
コマンドプロンプトが不慣れな場合には他の方が紹介されたような GUI 版を使われれば良いと思います。
複数ある場合はどの nkf を使えば良いか → どれでも良い
インストールされていて利用できる nkf には何があるか調べるには、 「コマンドプロンプト」で 「 where nkf 」で調べられます。
このリストの上から順に、最初に実行できるものが実際に動くものです
以下は、私の検証用環境のひとつの出力例です。
C:\Users\i-wada> where nkf C:\w32tex\bin64\nkf.exe C:\w32tex\bin\nkf.exe C:\texlive\2020\bin\win32\nkf.exe C:\Users\i-wada\scoop\shims\nkf.exe
utf-8 への変換方法
- 「-w」オプションを利用します
通常は変換結果は画面に出力されますので、TONE さんが書かれているように「>」でファイルにリダイレクトなのですが ...
nkf -w old.tex > new.tex
「--overwrite」オプションを使うと、変換結果が上書きされます
nkf -w --overwrite some.tex
「--override」付きで変換するファイルは複数指定できます
nkf -w --overwrite file1.tex file2.tex ...
何故か「*.tex」のようなワールドカードは使用できない :-( ので対象がたくさんある場合はファイルのリストを取得するなどしてバッチファイルを作成すると良い
バッチスクリプト作成するのは面倒だというなら柳崎 清 さんが紹介されている多分 FileCode Checker を以下の URL からダウンロードして利用してください。
https://ftp.vector.co.jp/63/92/3277/FCChecker.1.2.0.zip
「圏論ゼミ」や「 1017」は「ファイル」ですか?
変換したいファイルはどのディレクトリにありますか? 「Documents」 ですか?「OneDrive」「TeXworks」あるいはそのほか?
私が想定している操作例
対象ディレクトリへ移動(この認識がされていないようです)
cd 「対象ディレクトリのパス」
対象ファイルを確認( tex ファイルに限定しておきます)
dir *.tex
対象ファイルが 圏論ゼミ.tex 1017.tex だとした場合
nkf -w --overwrite 圏論ゼミ.tex 1017.tex
対象ファイル名が「圏論ゼミ 1017.tex」のように「空白」が含まれている場合は適宜クォートする
nkf -w --overwrite '圏論ゼミ 1017.tex'
添付画像からだと、"Desktop\。。。\University Of Science\Category" にある"圏論ゼミ 1017.tex" を変換したいのだと思います。
添付画像からだとそのパスが全部表示されていないので、このディレクトリに移動するには以下のように操作をしてください。
コマンドプロンプトで「cd 」と入力してください
(一個スペース空けといてください)
(エンタ-ーキーは入力しないでください)
添付画像の「Category」のところをマウスを右クリックして、そのままコマンドプロンプトへドラッグアンドドロップしてください。
(Categoryまでのフルパスがコマンドプロンプトにコピーされます)
これで指定ディレクトリへの移動準備ができたので「エンターキー」を押してください。
「dir」を実行すると「"圏論ゼミ 1017.tex"」および関連ファイル名が表示されます。
念の為、 "圏論ゼミ 1017.tex" のバックアップは取得しておいてくださいね。
それから、懸案の「nkf -w --overwrite "圏論ゼミ 1017.tex"」を実行してください。
nkf -g "圏論ゼミ 1017.tex"
>tex の入力画面の?の部分が取り替わりほんの少し漢字が出てきたのですが
utf-8 に設定して読み込んでも、まだ文字化けしているのでしょうか?
バックアップは取得されていますか?
"圏論ゼミ 1017.tex" とあればバックアップを見せて頂くことはできますか?
(添付ファイルでお願いします。)
二つある場合は、別途新しいフォルダを作成し、そこに二つをコピーして、作成したフォルダをアーカイブ圧縮したものを添付ファイルに指定してください。
文字化けしている日本語の部分は、なんとか pdf ファイルから取り出すことは可能ですが、文字化けしていない状態の時のバックアップは取得されていますか?
そのバックアップがなければ、大変ですが、pdf をみながら、コピペで復元しなければならないと思います。
手助けになるか否か不明ですが、pdf からページがわかるように日本語を取り出しテキスト化したものを添付しておきます。
バックアップを取るよう心がけてください。
バックアップの方法は、いろいろあるのですが、基本は一区切りついたら、 日付付きのフォルダや 数本のUSBなどの媒体を用意し、回し使いでコピーするとかでも良いです。
面倒に感じるようになったら、git などのバージョン管理ツールなども検討してください。一人でバージョン管理って面倒かもしれませんが、結構便利です。さらに私は、mac を使っているのでTime Machine を使って自動で定期的に全体のバックアップもしてます。
さて、「ログ」ですが、このメールにも以下のようなものが末尾にあると思います。
ウェブサイト経由で返信を投稿するには、このリンクをクリックしてください:
https://okumuralab.org/tex/mod/forum/post.php?reply=19671
これをクリックすれば、認証チェックは行われますが、今回のものだけでなく 今まで、当フォーラムでのやり取りを見ることができます。
添付されたファイルに記録されています。
「dir」コマンドやエクスプローラでファイル変更時間を表示するようにすれば確認できます。
Directory of C:....\Category
2021/11/12 13:14 8 圏論ゼミ 1017.aux この辺でおかしいことに気がついた
2021/11/12 13:14 35,252 圏論ゼミ 1017.log
2021/11/12 11:12 327,495 圏論ゼミ 1017.pdf ここまでは正常だった
2021/11/12 12:24 73,200 圏論ゼミ 1017.tex nkf で変更したのでサイズが変わった
でもファイルスタンプは変わっていないけど
Directory of C:.....\Category\以前の
2021/11/12 13:14 8 圏論ゼミ 1017.aux
2021/11/12 13:14 35,252 圏論ゼミ 1017.log
2021/11/12 11:12 327,495 圏論ゼミ 1017.pdf ここまでは正常だった
2021/11/12 12:25 73,088 圏論ゼミ 1017.tex 少なくともここでおかしくなった