漢文訓点用のマクロと前処理システムについて

漢文訓点用のマクロと前処理システムについて

- yasu oka の投稿
返信数: 4
漢文訓点用のマクロと白文と書き下し文からそのマクロにはめ込む(白文に送り仮名を割り振って、返点を付与する)前処理システムを作ってみました。(一式、添付ファイルにつけてあります)
Windows用、macOS用のインターフェイスも作ってありますので、ご覧になって、ご感想などお聞かせねがえれば改良を進めていきたいと思います。

ところで、マクロはLuaLaTeXの使用を前提に作っているのですが、ヘッダーに
\usepackage{luatexja-fontspec}
\setmainjfont[
BoldFont = HaranoAjiGothic-Medium.otf
]{HanaMinA}
を入れて、花園明朝を使おうとすると、句読点があらぬ位置にはまってしまいます。(これは、A4縦の書式を選んで前処理をさせるとこのヘッダーが使われています)前処理システムが5桁ユニコード(utf-8で4バイト)の漢字が処理できるように作ってあるので、できれば花園明朝のようなフォントが使いたいのです。領域を指定して、
\usepackage{luatexja-fontspec}
\setmainjfont[AltFont={
{Range="20000-"2FFFF, Font=HanaMinB},
{Range="0080-"FFFF, Font=IPAexMincho},
}]{HanaMinA}
といったことをすれば、使えるのですが、処理に時間がかかってしまいます。良い知恵をお持ちの方がおられましたら、是非お教えください。
yasu oka への返信

Re: 漢文訓点用のマクロと前処理システムについて

- Takashima Jun の投稿
花園明朝の句読点の問題については
https://okumuralab.org/tex/mod/forum/discuss.php?d=3762#p23564
をご参照ください。
Takashima Jun への返信

Re: 漢文訓点用のマクロと前処理システムについて

- yasu oka の投稿
ありがとうございます。
otfフォントをダウンロードして、ヘッダに
\usepackage{luatexja-fontspec}
\setmainjfont[
BoldFont = HaranoAjiGothic-Medium.otf
]{HanaMinA}
の代わりに
\usepackage{luatexja-preset}
\newjfontfamily{\HanaMin}[
YokoFeatures={JFM=jlreq},
TateFeatures={JFM=jlreqv},
]{HANAMINA.otf}%
を入れることで解決できました。
ちなみに、テストで用いたファイルは添付ファイルのようなものでした。
chaku.txtとckun.txtをA4縦の書式でkuntenプログラムを使って処理し、生成されたchaku.texというLuaLaTeX用のソースをコンパイルしたものでした。
ありがとうございました。
yasu oka への返信

Re: 漢文訓点用のマクロと前処理システムについて

- Takashima Jun の投稿
Windows及びmacOS用に開発されているということなので、
luaによるアプローチもあるというご参考に、ご存知ない場合を考えて
下記のkanbunパッケージを紹介しておきます。
https://www.ctan.org/pkg/kanbun
Takashima Jun への返信

Re: 漢文訓点用のマクロと前処理システムについて

- yasu oka の投稿
情報ありがとうございます
実は、kanbun-masterによる訓点の処理というのも以前見ていたのですが、私の主眼が訓点の自動処理という点にあり、その為に白文中の文字を一律の形に当てはめられるということと、元々の訓点処理が本田さんのお造りになったplatex用のkanbun.styのマクロを使っていてそれが比較的改造しやすかった(単に私にとってわかりやすかったということですが)ことから今のところこのようにしているまでです。LuaLaTeXは、platex(実際にはuplatexですが)と違ってpdfまでが一貫して処理できるということ、fontの扱いがやりやすいということから、採用しています。
ただ、前処理プログラムは、一文(句点を目印とする)ごとに、白文の漢字に書き下し文から読み順を確定し、送りがな(場合によっては)読み仮名を割り振り、(その間、書き下し文でひらがなとなっているものを漢字に割り当て、それによって読み順を調整します)読み順に従って返点を付与するということで、その結果は、白文の親漢字を中心とする構造体に収められます。TeXのマクロへの割り当ては、その構造体から割り振るので、その割り振る部分をそれぞれのマクロに合わせて作り直せばおそらくはある程度の対応は取れると思います。最初は、初期設定ファイルから操作できるようにとも思ったのですが、多くのマクロが\XXXX{親字}{右ふりがな}{右送りがな}{左振り仮名}{左送り仮名}{返点}(順序はこうでなくてもいいのですが)というわけでもないので(もちろん、親字以外は空であることも可)諦めています。ただ、そうでない場合も今後検討してみます。