ご質問はこちらへ
LaTeXの日本語対応
ptexencの文字コード自動判定とpdfplatex.batの設定
ptexencの文字コード自動判定と,Windows(W32TeX)でTeXworksから呼ばれるpdfplatex.batの設定について,ご相談というかご報告というかをします.
# あべのりさんが作成している,abtexinst のプラグイン開発にここ最近関わっていて,バランスをどう取るのがよいか悩んでいます.
ptexencの文字コード自動判定は,スタイルファイルに異なる文字コード(日本語の漢字コード)が混じっていても,意識せずにタイプセットできるようにというのを大きな目的として開発されていたと思います.この記事に添付したようなソース群が,何のトラブルもなくタイプセットできれば幸せです.
ところで,Windows(W32TeX)でTeXworksから呼ばれるpdfplatex.batの設定は,
@echo off platex -synctex=1 -no-guess-input-enc -kanji=utf8 %1 dvipdfmx "%~n1"
となっており,自動判定をさせないオプション -no-guess-input-enc
が付いていることから,
(./local-jis.sty) (./local-euc.sty) (./local-sjis.sty) Runaway definition? ->Shift\_JISコード
といったエラーを出力して,異常終了してしまいます(想定の範囲内ですが).
これに対して,最近あべのりさんが開発しているpdfplatex_ipaembed.batなどでは,
@echo off platex -synctex=1 -jobname="%~n1" %1 && ^ dvipdfmx -f ipaembed.map "%~n1"
となっていて,自動判定されて,正常終了し,期待通りの結果が得られます.
自動判定は失敗することもあって,失敗したときに,TeXworksなどの統合環境しか使わない人にとって解決策が取りにくいという問題があるので,文字コードは統一されていてしかるべき,という立場があるのも理解しています.
あべのりさんのインストーラのシェアは大きいと思いますので,できるだけ多くの方のご意見を参考に設定を決めたほうがよいと思うのですが,みなさまいかがお考えになりますでしょうか?
Q&A56692への回答
>
> This is e-pTeX, Version 3.1415926-p3.2-110825-2.3 (utf8.sjis) ...
> ====中略=====
> 作者名は?
この 作者名は? が化けていないのでわかるように,ソースが UTF-8, EUC でも
W32TeXではコンソールには CP932 で出るようになっています。
>
> \NAME=夏目漱石 %%<--入力
> 運^c4目漱吹@ %%<--出力(文字化け)
直接入力の場合は,自動判断しないので,指定の UTF-8 でないと化けるの
だと思います。つまり入力が UTF-8 にできないのが原因だと思います。(違うかもしれませんが)。
> [1] (./test.aux) )
> Output written on test.dvi (1 page, 312 bytes).
>
> ===========================
> Q1:文字化け防止対策のようなものがあるのでしょうか?
chcp 65001 とすると,化けなかった 作者名は? が化けます。
CP932 で出るようにしているからです。
偶然次の Q2 がうまく行くようになっています。
> Q2:上記サンプルコードを platex -kanji=sjis ./test でコンパイルすると
> 正しく表示されますが....それどよろしいのでしょうか?
-kanji=sjis としても,-no-guess-input-enc としない限り,自動判断は
off にならないので,UTF-8 のソースがコンパイルできます。
直接入力部分は指定した sjis なので,コンソールに正しく出力されます。
また面白いことに,\NAME をタイプセットしても正しい文字になるようです。
Q&A56690 への回答
TeXworksの日本語の下の赤波線の削除
はじめて投稿させて頂きます。ド文系の人間でして,Texの存在を1週間前に知り,早速学習に取りかかりました。ド素人の質問でこの掲示板にはそぐわないかもしれませんが,困っていますので,アドバイス頂ければ幸いです。
改訂第5版『LaTeX2e美文書作成入門』技術評論社 に付録のDVDの情報をインストールして練習をしています。インストールはうまくいっています。ちなみに私の環境はWindows 7 64bit版です。英語入力では問題ないのですが,日本語入力をすると日本語の下に「赤色の波線」が出ます。何かの間違いかな?と思いながら作業を進めましたが,PDFへの変換は正しく行われます。
この波線を消す方法を教えて頂けませんでしょうか?とても見にくいです。
ちなみにWARNINGが出ていますので,それを貼り付けます。
** WARNING ** UCS-4 TrueType cmap table...
** WARNING ** UCS-4 TrueType cmap table...
ご指導のほど,よろしくお願いいたします。
pTeX で Segmentation Fault
(コンパイル日は 1/8 です)が,
以下の ソース ptest-120308.tex を処理させると
segmentation fault が発生します.
% ptest-120308.tex ここから
\documentclass{beamer}
\begin{document}
\begin{frame}
\verb+\catcode+命令
\end{frame}
\end{document}
% ここまで
以下が端末への出力結果です:
This is e-pTeX, Version 3.1415926-p3.2-110825-2.3 (utf8.euc) (TeX Live 2012/dev)
restricted \write18 enabled.
entering extended mode
(./ptest-120308.tex
... 省略 ...
No file ptest-120308.nav.
! Missing number, treated as zero.
Segmentation fault
エンジンを ptex にして platex.fmt を作った場合も,
同じ症状になります.
「! Missing number」エラーは \catcode による自然な
ものだと思いますが,この segfault の原因は何なのでしょうか?