日本のTeXコミュニティーにとって大きな情報を得られたと思います.思いつくままいくつか書きます.
1. refree system に乗った The Asian Journal of TeX (ISSN 1976-1228) という雑誌があり,日本語でも韓国語でも,なんでも,コミュニケーションに役立つ記事 (論文) ならばぜひ投稿してほしいという状態にあります.refree とか Journal とか聞くと構えてしまうかもしれませんが,あくまでもコミュニケーションが目的なので,構えずにぜひ投稿のアイディアなどなんでも伝えてほしいということです.
2. 韓国語の組版について多くの情報交換をしました.
今後に続く . . .
かどうかわかりませんが,
パンフレットとポスターを10部いただいてきました.パンフレットも Web 上にアップされたため,内容自体は http://conf.ktug.kr/2008/poster.html で確認できます.
興味のある方 (欲しい方) は私 <kuroky(at)misojiro.t.u-tokyo.ac.jp> までご連絡ください.お渡しの仕方はいただいた情報をもとに考えます.
AsiaTeX08は,CJK-LaTeXのLembergさん,PDFTeXのHànさんほか,多数の方々と突っ込んだ議論ができてたいへん有益でした。
日本からも4名参加し,私の駄弁と2編のすばらしい報告をすることができました。
私の発表の前半はpTeX+JISメトリックの組版の詳細,後半はupTeXの紹介でした。
ハングルがわからないので韓国の組版についてはあまり理解できていないのですが,今はko.TeXというUTF-8ベースのもの(PDFTeX+マクロ)が今はお薦めだがpTeXのような細かいことをするのは一部難しいところがあるので今いろいろ考えているようです。upTeXにも興味を持っていただけたのですが,将来性を考えるとpTeXの系列よりluaTeXに目を向けたほうがいいかもしれないという雰囲気もあるようでした。
また時間ができたら少しずつ書きます(他の参加者の方にも期待)。
> map file にたとえば
> msmin@Unicode@ <ipam.ttf
> のように書くことで簡単に使用できるようになっています。
> ソースに
> \pdfmapline{=msmin@Unicode@ <ipam.ttf}
> などと書くことも可能です。
> ttc fonts は使用不可です。
というコメントをいただきました。
韓国の方々は,角藤先生のバイナリを使わせていただいていつも感謝している,今回来られなかったのは残念だ,ぜひ将来日本でConferenceが開かれて,そこでお会いできることを楽しみにしているというふうに言っておられました。
技術的な話は、またおいおい書こうと思いますが、韓国の方々が TeX のエンジンについていろいろと調べられていて、しかもそれを開発者の間で情報共有されていることが印象的でした。KTUG (Korean TeX Users Group) というネット上の組織以外に、KTS (The Korean TeX Society) という別の組織があって、直に会ってミーティングを行ったり、国内でのカンファレンスを開催したりしているそうです。
私なんか、直前に調べた TeX エンジンの拡張についての知識がなければ、ちんぷんかんぷんで議論についていけてなかったと思います。日本でこのあたりの事情をちゃんと理解している方はどのくらいいらっしゃるのか...私が知らないだけで、実はちゃんといらっしゃるのかもしれませんが、少なくとも情報共有という点では、韓国の人達に水をあけられていると思いました。
ところで,ディスカッションのなかで,ptex + ptexenc + utf/otf パッケージ + [utf8]{inputenc} でかなりいいことができるのではないか,という予想がでていましたので,試してみました.
ハングルの美しい組み方を知らないと評価できないのですが,ひとまず通りました,という結果を掲示しておきます.ただし (以前に Omega などで発生した問題と同様に今回も),verbatim 環境中で ^^ 形式に展開される UTF-8 文字はきちんと展開されてしまうことが判明しました.
添付ファイルのなかには,
hangul-20080202/
hangul-20080202/hangul.dfu
hangul-20080202/hangul.rb
hangul-20080202/ktug.pdf
hangul-20080202/ktug.tex
という 4 ファイルが含まれています.pdf を作るには,
platex -kanji=utf8 ktug
dvipdfmx ktug
とします.
hangul.dfu は,ttk さんのページ を参考に,
ruby hangul.rb > hangul.dfu
として作りました.
韓国語の組版の例に関するコメントです。
韓国語では「四分空き」を使いません。つまり、「LaTeX의 설치」(LaTeX のインストール)等と書いたときに、「LaTeX의」は空きを入れずに書きます。従って、韓国語の部分では \noautoxspacing を実行する必要があります。
ついでに、upLaTeX を用いた例を添付しておきます。
「四分空き」を使わずに助詞をそのまま続ける,というのはその通りだと思います.
韓国の印刷博物館で ISBN 89-08-08107-0 なる本を買ってきましたが,数字の後ろに空きなしでハングルをつづけています.
ptexenc + inputenc にせよ,upTeX にせよ,助詞と思われる単語の前で改行してあるのが見受けられますが,これはよいことなのでしょうか?
ブラウザ (Firefox) では,助詞の前でも改行してしまっていますが,前述の本では,そういうところで改行しないようにわざと周囲の漢字の途中で改行しているように見受けられるのですが.
詳細なご報告 & 活発な議論ありがとうございます。
> 助詞と思われる単語の前で改行してある
これも良く分からなかったので、放置していたのですが、
今の upTeX では、漢字と漢字の間に \kanjiskip のグルーが入るのと同様にハングルとハングルの間にも \kanjiskip のグルーが入ってしまいます。また、ハングルと英字の間には \xkanjiskip のグルーが入ってしまいます。
pTeX + ptexenc + inputenc + UTF/OTF の場合には、 \UTFK{} が漢字トークンになるので、同様だと思います。
ハングルの単語内もしくは名詞+助詞の中で改行されることがないのならば、ハングルとハングルの間の \kanjiskip を入らないように upTeX を改造すれば対処できるようにも思いますが、それだと禁止しすぎになるのでしょうか?
同様に、ハングルと英字の間に \xkanjiskip を入らないようにするのもやりすぎでしょうか?
> - ハングル + ASCII + ハングル の 1 単語がある (kcatcode で解決するかも?)
upTeX の kcatcode では、ASCII入力(~0x7F)の文字はASCIIのままです。
\kchar でわざわざ書けば ~0x7F の文字をCJKトークンにすることは出来ますが、ここで期待されている動作と違うかもしれません。ブロックごとではなく文字ごとに kcatcode が振れるようになっていれば、期待の動作に近づくのかも知れません。
また,美文書改訂第4版 (p. 377) には,「CJK パッケージによって文字間に独自のグルーが挿入される」との文言が見受けられます.再生産の助けになりますでしょうか.
> 助詞と思われる単語の前で改行
まだまだ勉強不足で,どれが助詞だかきちんとは認識できないため,手元の本をきちんと解析することができないのが残念なところです.
# 日本語を考えても,↑の文章で助詞は前から「で,が,か,は,...」とあって,かなりの数にのぼりそうですが,いまはまだ英語や漢字の後ろしか判別できません (^^;;;
すみません。そもそも kuroky さんから「助詞の前での改行」の話が出た時が「四分空き」の話の直後だったので、「欧文単語 + 助詞」の話だと早とちりしていました。でも「ハングル(漢字)単語 + 助詞」でも同じ(つまり改行可)だと思います。ここの議論で紹介した韓国語の PDF 文書、手元にある韓国語で書かれた取説、韓国語の学習書(持っているだけで全然学習してない ^^; )を見ても、助詞の前で平気で改行しています。そもそもそういう特殊な扱いがあるなら、「韓国語の組版」の話の中で出てくるのではないでしょうか。
「漢字 + 助詞」や「欧文 + 助詞」で改行が避けられているように見えるのは、その版面を作製したソフトウェアの制限―例えばフォントが変わる場所では改行できない―が原因かも知れません。先の Hangul-ucs の解説によると、「HLaTeX には『欧文 + 助詞』の場合に改行できない『欠点』がある」ことがわかります。
# ちなみに CJK パッケージで「自動的に入るグルー」は \kanjiskip 相当のものです。四分空き(\xkanjiskip)は「手動で」入れることになります。
「ハングル-欧文間空白」については、単に「言語が韓国語だったら、\xkanjiskip を適切に設定する(Babel のようなマクロに任せる)」で済む話ではないでしょうか。
私も煩雑なのは出来れば避けたいです。
確かに、フォント情報はCJK用には縦組み用と横組み用の一組だけしか持っておらず、どっちにしろフォントの切り替えを「日→韓」や「韓→日」でやらないといけないわけです。\selectlanguage みたいな物をマクロレベルで用意するのが一番便利なやり方なので、同時に \xkanjiskip の値を変更してもらって済む話なら、その方がありがたいです。
韓国語組版で、「漢字(한자)+欧文」の間に入るのは、 「ハングル+欧文」と同じ (\xkanjiskip で統一)でよいのでしょうか。
- 両者で別のフォントを指定できる
- ハングル同士の字間は若干(-0.0852em)詰めている
後者は \kanjiskip 相当でハングル-ハングルの間に \hangulskip を入れるようにすれば実現できそうです。
-0.0852em というのは、見た目にもわかる程度なのでしょうか。\kanjiskip と \hangulskip を分けるだけの価値が無いようにも感じられます。
> 「ハングル欧文間空白」で 2hu でないものも存在するようです。
これを全部 upTeX のプリミティヴでやろうとするのは面倒そうです。やっぱり放置したくなってきました
こちらでは,韓国の人達と対話できるよう,KTUG Board への投稿を考えながら,最初に提示する例を練っているところです.ひとまず,このメッセージに添付するソースファイル群からできる PDF を提示しようと考えています.
とりあえず、私が試作しているものの現状のものを添付しておきます。スタイルの中身のほとんどは、突貫工事のレイアウト設定で、文字関係の設定は、前の議論に出てきたもののうち「ハングル-欧文順での空白の調整」のみです。
? ! 関係の調整をやりかけて気づいたことがあります。それは、「UnFonts のベースラインは(我々が標準だと思っている)88 : 12 ではなく 80 : 20 になっている」ということです。従って、垂直方向の調整に関しては、Adobe のフォントと UnFonts を用いるのでは方法からして異なることになります。
# 韓国語のページレイアウトは日本語に近いのだろうか、欧文に近いのだろうか……。
[グループの境界での禁則処理]
「グループ」 + 「禁則対象文字」 の間に pre/postbreakpenalty が入るようにすればよい、ということですね? 私に出来そうなら試してみようかと思います。
김도현さんの uptextest.png の例が謎だったのですが、グループ境界の影響 (upTeX の場合は {} の位置により回避可能) とみてよいのでしょうか。
[upTeX の \uppercase]
おお、バグですか またバグを発見してくださってありがとうございます。調べてみます。
[ハングルの詰め組]
> これは、JFM でハングル全部に 1 つの TYPE を与えてその間のグルーとすればいいでしょう。
JFM の仕様上、1つの TYPE に指定できる文字数の上限はないのでしょうか? あるとしたら厄介です。
> # この話とは関係がないですが、upTeX において一つの文字について
> \prebreakpenalty と \postbreakpenalty を両方指定できるようにしておくと便利かもしれません。
これも私で分かるようでしたら試してみます。
>김도현さんの uptextest.png の例が謎だったのですが
あれ、kuroky さんへの投稿だったので pTeX の例かなと思ってましたが、upTeX といってますね。upTeX ではグルーピングの問題は普通起こらないはずですね。単に pTeX と upTeX を混同している(いた)だけかも知れませんね。字の大きさのバランスから判断して、あの例は jsarticle 使用だと思われますが、説明なしでいきなりあのような凝った例が作れるかというと…、김도현さん(hangul-ucs の作者)だと訳もないことですか。
>またバグを発見してくださってありがとうございます。
김도현さんの発見というべきでしょうね。
>JFM の仕様上、1つの TYPE に指定できる文字数の上限はないのでしょうか?
そういう「仕様」は聞いたことがありません。実装上の制限を調べるために、20000 字を TYPE 1 とする JFM を大量に用意して、W32TeX の uptex に読み込ませてみると、99 個まで定義できて、定義できたものは正常に処理されました。1 つの JFM で 20000 ワード強消費し、uptex のフォント用メモリ容量が 2000000 ワードなので理屈に合います。文字サイズが異なるものは別扱いなので「絶対安全」ではないですが、実用上問題ないと思われます。
>\prebreakpenalty と \postbreakpenalty を両方指定できるようにしておくと
ちょっと補足しておくと、今の仕様では、「両方指定できるが、実際に有効になるのは一方だけ」であるとどこかに(どこだっけ ;-) )書いてありました。
Hangul-ucs(UTF-8 でハングルを記述する韓国で最初のパッケージ)の解説文書 dhucsdoc.pdf (ここのページにある)に述べられている、Hangul-ucs の(HLaTeX に対する?)長所の中に以下の記述があります。
3. 판면이 좀더 안정적으로 조판된다. 예를 들면 한글 다음에 잇대어 쓴 괄호 안의 영문에 하이프네이션이 작동하는 것, 영문 단어 다음에 붙는 한글 조사 앞에서 행나눔이 이루어지는 것, 그리고 수식이나 문장부호에 적절한 간격을 제어하는 것 등은 결과적인 조판 품질에 상당한-영향을 미친다.
(版面がもう少し安定的に組版される。例えば、ハングルの次にくっつけて書いた括弧の中の英文にハイフネーションが作動すること、英文単語の次につくハングルの助詞の前で行分けができること、そして数式や文章符号への適切な間隔を制御すること等は、結果的な組版品質に相当な影響を及ぼす。)
さらに、同じ箇条書きの 5. では「HLaTeX과는」のところで行分割がされています。だから、少なくとも Hangul-ucs の開発者は欧文とハングルの間の行分割を可能にすべきと明確に考えていることがわかります。
dhucsdoc.pdf をよく見ると、欧文とハングルの間に、「四分空き」程ではないがごく小さな空きがあるように見えてきた…。やっぱり hangul-ucs(か ko.TeX)の動作を見たほうがいいかな…。
# なお、HLaTeX と hangul-ucs を統合したものが ko.TeX であるようです。
# 私も、韓国語を読む際には機械翻訳に頼っています。
The Asian Journal of TeX のページへリンクを張っておきます.Vol. 1, No. 1 の内容が掲載されていますので,様子が分かるものと思います.
% あと,typo がありましたので,訂正します: refree → referee.
これは日本語において欧文の括弧を書くと高さが揃わない…というのと同じ問題を言っているのだと思います。AJT Vol.1 No.1 の “On the Convention of Korean Punctuation Marks Typesetting” にこの事に関する解説が載っています。
この記事には「なぜ韓国語において欧文(半角)の約物が使われるようになったか」の解説が載っていて興味深いです。そこでは以下の理由が挙げられています。
- ワープロソフト等で、全角の約物が簡単に入力できなかった。
- フォントにおける全角約物の「字幅の扱い(全角扱い・半角扱い)」がまちまちで、ソフトがそれらを統一的に扱うのが難しかった。
あと、蛇足ですが:
>韓国語では,「図~\ref{fig:hoge}の」の「の」にあたる部分が,\ref の番号によって変化 (活用) する.
「の」は変わらないと思います。「が」「は」「を」なら変わりますね。