SJIS ファイルで「図」を入れたものがエラーになる

SJIS ファイルで「図」を入れたものがエラーになる

- 和田 勇 の投稿
返信数: 4
別件の検証中、「\newcommand{\zu}[1]{図\ref{#1}}」なる記述で
エラーになる現象に出会しました。

ソースは
   %#! ptex2pdf -l
   \documentclass{jreport}
   \newcommand{\zu}[1]{図\ref{#1}}
   \begin{document}
   SJIS 図図図図図図図図図図図
   \end{document}

エラーは
   l.3 \newcommand{\zu}[1]{^^90}\ref{#1}
                                    }
   ? x

問題となるファイルは SJIS コードですが、UTF-8 にすると問題なく通ります。
また「図」以外では今の所問題は発生しません。

2バイト目のバックスラッシュの問題でもなさそうだし、ちょっと悩んでいます。
何かこの辺の問題、ご存知の方いらっしゃいますか?

添付ファイルおよびその文字コードは以下の通り。
    sjis-test/sjis-test.log: ASCII
    sjis-test/sjis-test.tex: Shift_JIS
    sjis-test/utf-8-test.aux: ASCII
    sjis-test/utf-8-test.log: ASCII
    sjis-test/utf-8-test.tex: UTF-8
和田 勇 への返信

Re: SJIS ファイルで「図」を入れたものがエラーになる

- Yamamoto Munehiro "munepi" の投稿
This is e-pTeX, Version 3.141592653-p4.0.0-220214-2.6 (utf8.euc) (TeX Live 2022) (preloaded format=platex)

の下で、単純に、

%% -+- coding: sjis-unix -+-
%#! ptex2pdf -l -ot '--kanji=utf8' d3519
% #! ptex2pdf -l -ot '--kanji=sjis' d3519
\documentclass{jreport}
\newcommand{\zu}[1]{図\ref{#1}}
\begin{document}
SJIS 図図図図図図図図図図図
\end{document}


    ptex2pdf -l -ot '--kanji=utf8' d3519
(あえて明示的に --kanji=utf8 を与えています)
でタイプセットなさっただけでないでしょうか?
もちろん、
    ptex2pdf -l -ot '--kanji=sjis' d3519
でタイプセットすると問題ないです。

Yamamoto Munehiro "munepi" への返信

Re: SJIS ファイルで「図」を入れたものがエラーになる

- 和田 勇 の投稿
platex -h で -kanji のオプションをコピペしてたのにと思い ....
投稿まえのコマンドヒストリみたらつけていなかった :-(

ということでもう一度、検証中のものを見たらutf8 なファイルから
\input{sjis-input.tex} として読み込んでいた。そのテストに使用したものを念のため添付します。

    utf8-main.tex: UTF-8
    sjis-input.tex: Shift_JIS

このケースはどちらかに合わせないとダメなんですよね。

和田 勇 への返信

Re: SJIS ファイルで「図」を入れたものがエラーになる

- t tk の投稿
ダメ文字関係の問題ではなく、文字コードの自動判定が機能すれば解決しそうな気がします。
美しくはありませんが以下のようにして文字コードの自動判定を有効にすれば動く気がします。(Ref. https://texwiki.texjp.org/?ptexenc#x100a023)
ところで sjis-test.zip の中身が空フォルダのみでした。

   %#! ptex2pdf -l
   %%% 何でもいいので文字コード判定が上手くいく文字列を冒頭にコメントで書いておく。
   \documentclass{jreport}
   \newcommand{\zu}[1]{図\ref{#1}}
   \begin{document}
   SJIS 図図図図図図図図図図図
   \end{document}
t tk への返信

Re: SJIS ファイルで「図」を入れたものがエラーになる

- 和田 勇 の投稿
あまり美しないとのこと、了解。
あまり面倒を見ていないからでしょう、
私の使用しているvim が自動判定してくれないこともあり、
面倒なので utf8 に変更します。

なお、添付ファイルが空だったので、後日誰かがここを訪れた時のため
別途添付しておきます。

ありがとうございました。