Re: Unicode、和文欧文、全角半角…(Re: upTeX-0.09)

名前: ZR
日時: 2007-07-20 09:02:44
IPアドレス: 59.140.98.*

>>48772 おはようございます。 \XeTeXinterchartoks の実験として、JIS メトリックを思い切り単純化した ものを、先日、実装してみていました。 # 和文クラスを 4 種類までに限定し、さらに欧文の \xspcode の処理も # 省いています。当然、「上手くいかない文字」が多数あります。 \XeTeXinterchartoks の既定値について知らなかったので、疑問に感じて いた動作があったのですが、TeXWiki のコメント ;-) を見て理由が判明 しました。v0.997 のリリース時を待っていたのですが、丁度この話題が 出てきたので投稿することにします。 結果はかなり「まとも」に見えるのではないでしょうか。intercharacter token を用いた日本語組版にはまだ解決すべき課題(例えば \inhibitglue をどうするか、等)もあると思いますが、この結果は XeTeX の可能性を 示していると思います。 # 実験は W32TeX の XeTeX 開発版(v0.997-dev)を用いました。 # (W32TeX の英語サイトにあります。) %<qjismtx.sty;in UTF-8>*************************** \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{qjismtx} \RequirePackage{ifxetex} \RequireXeTeX %% 諸定義 \chardef\cc@H=0 % 欧文 \chardef\cc@B=255 % 単語境界 \chardef\cc@N=1 % 和文-全角幅 <漢 ? ぁ> \chardef\cc@R=2 % 和文-右半分 <( 「> \chardef\cc@L=3 % 和文-左半分 <】 、> \chardef\cc@P=4 % 和文-左半分2 <。 .> \newskip\ics@IHF % 和欧文間空白 \newskip\ics@HB % メトリック調節グルー - 1 \newskip\ics@ZAX % メトリック調節グルー - 2 \newskip\ics@HBX % メトリック調節グルー - 3 \newdimen\zw % 全角幅 \def\resetcjklen{% \settowidth\zw{\XeTeXinterchartokenstate=\z@\cjkfont 漢} \ics@HB =-.5\zw \ics@ZAX=\z@\@minus.5\zw \ics@HBX=-.5\zw\@minus.5\zw \ics@IHF=.24\zw\@plus.19\zw\@minus.12\zw \XeTeXlinebreakskip=\z@\@plus.08\zw % 和文間空白 \parindent=\ifdim\parindent>\z@\zw\else\z@\fi % 手抜き } \def\cjk@I{\cjkfont} % フォント: 欧→和 \def\cjk@O{\latinfont} % フォント: 和→欧 \AtBeginDocument{\resetcjklen}% 本来は文字サイズ変更時に要再設定 %% 文字間トークン設定 \XeTeXlinebreaklocale "ja_JP" \XeTeXlinebreakpenalty=\z@ % \XeTeXinterchartokenstate=\@ne % クラス間トークン挿入を有効に \XeTeXinterchartoks\cc@H\cc@N{\hskip\ics@IHF\cjk@I} \XeTeXinterchartoks\cc@H\cc@R{\hskip\ics@ZAX\cjk@I} \XeTeXinterchartoks\cc@H\cc@L{\nobreak\cjk@I} \XeTeXinterchartoks\cc@H\cc@P{\nobreak\cjk@I} \XeTeXinterchartoks\cc@B\cc@N{\cjk@I} \XeTeXinterchartoks\cc@B\cc@R{\hskip\ics@HB\cjk@I} \XeTeXinterchartoks\cc@B\cc@L{\nobreak\cjk@I} \XeTeXinterchartoks\cc@B\cc@P{\nobreak\cjk@I} \XeTeXinterchartoks\cc@N\cc@H{\cjk@O\hskip\ics@IHF} \XeTeXinterchartoks\cc@N\cc@B{\cjk@O} \XeTeXinterchartoks\cc@N\cc@N{} \XeTeXinterchartoks\cc@N\cc@R{\hskip\ics@ZAX} \XeTeXinterchartoks\cc@N\cc@L{\nobreak} \XeTeXinterchartoks\cc@N\cc@P{\nobreak} \XeTeXinterchartoks\cc@R\cc@H{\nobreak\cjk@O} \XeTeXinterchartoks\cc@R\cc@B{\nobreak\cjk@O} \XeTeXinterchartoks\cc@R\cc@N{\nobreak} \XeTeXinterchartoks\cc@R\cc@R{\nobreak\hskip\ics@HB} \XeTeXinterchartoks\cc@L\cc@H{\cjk@O\hskip\ics@ZAX} \XeTeXinterchartoks\cc@L\cc@B{\cjk@O\hskip\ics@HB} \XeTeXinterchartoks\cc@L\cc@N{\hskip\ics@ZAX} \XeTeXinterchartoks\cc@L\cc@R{\hskip\ics@HBX} \XeTeXinterchartoks\cc@L\cc@L{\nobreak\hskip\ics@HB} \XeTeXinterchartoks\cc@L\cc@P{\nobreak\hskip\ics@HB} \XeTeXinterchartoks\cc@P\cc@H{\cjk@O} \XeTeXinterchartoks\cc@P\cc@B{\cjk@O\hskip\ics@HB} \XeTeXinterchartoks\cc@P\cc@R{\hskip\ics@HB} \XeTeXinterchartoks\cc@P\cc@L{\nobreak\hskip\ics@HB} \XeTeXinterchartoks\cc@P\cc@P{\nobreak\hskip\ics@HB} %% 文字クラス変更 \def\xx@setcharclass#1#2{% \@tfor\x:=#2\do{\XeTeXcharclass\expandafter`\x=#1}} \xx@setcharclass\cc@N{々ぁぃぅぇぉゃゅょゎーァィゥェォッャュョヮヵヶ?!} \xx@setcharclass\cc@P{。.} \endinput %<EOF>******************************************** %<qjistest.tex;in UTF-8>************************** \documentclass{article} \usepackage{xltxtra} \usepackage[scale=.7]{geometry} %\usepackage[japanese]{babel} \newfontfamily\mingoth[Mapping=tex-text,Scale=.96,RawFeature=-palt, Bold=Kozuka Gothic Pro-VI M]{Kozuka Mincho Pro-VI R} \let\latinfont\rmfamily \let\cjkfont\mingoth %----------------------------------------------------------- % 日本語用のスペーシングの手抜き工事 \usepackage{qjismtx} %----------------------------------------------------------- % 日本語用のレイアウトの突貫工事 \usepackage{setspace} \setstretch{1.2} \usepackage{indentfirst} %----------------------------------------------------------- \begin{document} %----------------------------------------------------------- \section{{\XeTeX}とは} The {\XeTeX} typesetting system% はUTF-8ベースの{\TeX}。「ズィー{\TeX}」と読む。% Mac OS X上で開発され,システムが認識するOpenType フォントをそのまま使える。% Linux版もある。% W32版はLinux版を移植したものである。% LinuxとW32では,使えるフォントはOSが認識しているものと言うより,% FontConfigが認識しているものと言ったほうが正確である。% なお,バージョン0.995以降では(ただし0.995でもxetexは\ svn revision 344以降,xdvipdfmxはsvn revision 74以降),% \verb|[FontFileName:FaceIndex]:features| なるフォントの指定法も可能になり,FontConfigとは無関係に,% Kpathsearchが見つけることができるところにある% “Uninstalled fonts”をnative fontsとして使用することも% できるようになっている。% 例えば \begin{quote}\begin{verbatim} \font\x="[msmincho.ttc:1]:mapping=tex-text,color=0000FF" at 12pt \end{verbatim}\end{quote} は \begin{quote}\begin{verbatim} \font\x="MS PMincho:mapping=tex-text,color=0000FF" at 12pt \end{verbatim}\end{quote} と同じように振舞う。% FaceIndexは不要の場合は省略できる。 %----------------------------------------------------------- \end{document} %<EOF>********************************************

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)