日本語 TeX 開発コミュニティの活動近況
これは「TeX & LaTeX Advent Calendar 2020」の 17 日目の記事です。昨日(16 日目)は T-Stream さんでした。明日(18 日目)は tamuratak さんです。(公開が遅れてすみませんでした…。)
もうご存知かもしれませんが,世の中には「日本語 TeX 開発コミュニティ」という謎組織があります。ここではその謎を解いていきます。
私は何者か
コミュニティの話をする前に,私 (aminophen) が何者か。
- 謎組織「日本語 TeX 開発コミュニティ」の一員です。
- 顔は下のインタビュー記事に出ています。
TeX 界隈での発表履歴はこちら:
- TeX ユーザの集い 2014(LT: 発表の振り返り)
- TeX ユーザの集い 2016(一般講演: 発表の振り返り,資料)
- TeXConf 2018(LT: 資料)
- TeXConf 2019【中止】(一般講演: 資料)
- Online.tex 2020(一般講演: 資料)
あとは,このブログの記事と Twitter と GitHub の活動を見ていただければだいたいわかります。
日本語 TeX 開発コミュニティは何者か
さて,ここから謎コミュニティの話に入りましょう。
謎コミュニティの公式ページはこちらです。
- Japanese TeX Development Community - 日本語TeX開発コミュニティ https://texjp.org/
- GitHub: https://github.com/texjporg/
そして,そのメンバーや活動内容はこちらです。
- 日本語 TeX 開発コミュニティの活動内容 https://texjporg.github.io/activities/
日本語 TeX 開発コミュニティ公式ドキュメント集 (https://texjporg.github.io/) は現在も整備途中で,まだ空白のページもたくさんありますが,今後のコミュニティの継続的な活動のために少しずつ整備していきたいと思っています。
以下で,活動を 3 つピックアップします。
活動 1:過去のバージョンの TeX Live の配布
texjp.org には,2012 年以降の TeX Live 20XX の最終版 (frozen) のアーカイブが保存されています。海外を含むほとんどの場所には「最新版」(現在は TeX Live 2020)しか置かれていませんが,例えば「TeX Live 2013 が良かった」という場合はそれを texjp.org から入手することができるわけです。手順は,山本さんによる記事がわかりやすいです:
ここの ftp://tug.org/texlive/historic/2010/tlnet-final/
を https://texlive.texjp.org/2013/tlnet/
に置き換えれば,TeX Live 2013 の最終版を texjp.org から入手できる,という具合です。
活動 2:pLaTeX / upLaTeX などのソフトウェアの維持開発
GitHub の texjporg 管轄下のリポジトリの中でも,とりわけアクティブに活動しているのは pLaTeX のマクロ開発です。2020 年に入ってからも,大型リリースを 3 回行いました。
- pLaTeX / upLaTeX / jsclasses 2020-02-02(新 NFSS 対応)
- pLaTeX / upLaTeX 2020-04-12
- LaTeX2e 2020-10-01 対策について
また,pTeX / e-pTeX などの「pTeX 系列のエンジン」も tex-jp-build で開発を続けています。TeX Live 2020 での pTeX 系列の変更点は以下の北川さんの記事にまとめられています。
そういえば,去年まで恒例だった「TeX Live 2020 の変更点まとめ」をやっていませんね… しかし,極めて重要な LaTeX の変更点については Online.tex 2020 の一般講演「最近の LaTeX は○○」の発表資料にまとめてありますので,まだの方はご一読を。
- 新習慣:DVI ドライバは必ずグローバルオプションに
- 書体の変化にご注意(NFSS の拡張の影響)
活動 3:日本語 TeX/LaTeX に関するドキュメント化
まずは,ここ1年ほど(2019〜2020年)の間に整備が進んだ,日本語 TeX 開発コミュニティ (texjp.org) の手による説明文書たちを紹介します。これらはすべて wtsnjp さんの「TeX Live ドキュメント案内」で紹介されています。まだお読みになっていない方は,是非ご一読ください。
kanji-config-updmap --- 日本語フォント設定ツール
texdoc kanji-config-updmap
で読むことができます。コマンド自体は 2013 年頃から存在していて,TeX Wiki など各所で「macOS のヒラギノを使う設定」の一環で説明されてきました。しかし,help メッセージ以外に公式文書が存在しなかったため,ついに 2020 年 2 月,公式マニュアルが整備されました。(一部,未完成な部分があります。)
Guide to Japanese typesetting with LaTeX
texdoc japanese
で読むことができます。初版は 2020 年 12月(つい2週間前)です。これは,日本語組版が西欧の組版といかに違うかを英語で簡単に要約するとともに,幾つかの例をあげて「ちゃんと」日本語組版をするための方法を紹介しています。
Guide to pTeX for developers unfamiliar with Japanese
texdoc ptex-guide-en
で読むことができます。初版は 2019 年 10 月です。
これは,日本特有の TeX エンジン拡張である pTeX 系列 (pTeX / upTeX / e-pTeX / e-upTeX) について,海外の「日本語を知らない開発者たち」に認識してもらうことを目的に,英語で説明したドキュメントです。
pTeX 系列のマニュアルは,日本語で書かれた「pTeX マニュアル」(texdoc ptex-manual
) が知られています(こちらも,日本語 TeX 開発コミュニティによる作)。しかし,英語版ガイドはこの内容の単純な英訳とはせず,日本語組版の要件には立ち入らず,純粋に pTeX 系列が西欧の TeX 処理系(主に pdfTeX)とどのように違うのか,また pTeX 系列でプログラミングする時の注意点を説明しています。
なぜ英語ドキュメントなのか
pLaTeX や upLaTeX を使っている人は,そのほとんどが日本語話者であると考えられています。その証拠が,日本語以外に絞って文献を漁っても,「(u)pLaTeX の使い方」を紹介したものが殆ど見つからないことです。(利用者がいれば,一つや二つヒットしてもおかしくないと思います。TeX StackExchange のこの質問の変更履歴を見れば,2011 年時点でいかに日本の LaTeX の状況が海外に全く知られていなかったかがわかります。)
それなのになぜ,日本語 TeX 開発コミュニティで「英語による日本語に関するドキュメント化」を進めているのでしょうか。それは
LaTeX 本家チーム,並びに,海外の LaTeX パッケージ開発者に
日本の状況(pLaTeX / upLaTeX / LuaTeX-ja の並立)をまずは認知してもらい,そして,
それなりにサポートしてもらう(少なくともエラーは防止する)ため
です。
例えば,2015 年に「pLaTeX で expl3 に依存したパッケージが使えなくなる」という事態が発生しました。これは
- 海外では pdfLaTeX が標準である
- expl3 は pdfLaTeX / XeLaTeX / LuaLaTeX で動くように開発されていた
- 海外製の LaTeX パッケージも次々と expl3 ベースで再実装されつつある
という状況のなかで起きた問題でした。pLaTeX / upLaTeX は本家 LaTeX に依存していますし,その本家 LaTeX を開発している方々が expl3 も開発しています。その本家 LaTeX 開発チームが pLaTeX / upLaTeX のことを考慮してくれないと,最悪 pLaTeX / upLaTeX がエラーまみれで動かなくなってしまうのではないか…。そんな懸念から,海外の開発者に pTeX 系列のことを知ってもらう必要があるという判断に至ったわけです。ここで expl3 の開発者に知ってもらうべき pTeX 系列の情報とはなんでしょうか。exp3 はプログラミング言語の一種ですので,pTeX を使えばいかに日本語組版が綺麗にできるかということは全く重要ではありません。むしろ,
プログラミング言語の処理系として pTeX を使うと
(pdfTeX などの西欧の TeX と比較して)どんな違いが生じるのか
に特化した方が良いはずです。そうした目的に特化して書かれているのが ptex-guide-en で,「pTeX 系列かどうかを判定する方法」「pdfTeX との違い」「和文文字をやり過ごす方法」などを扱うことにしています*1。なお現在では,草の根の活動により expl3 の開発で e-pTeX / e-upTeX もテスト対象に入れていただいたため,少なくとも expl3 が pLaTeX / upLaTeX で全く使えない状況は回避されています。
🎉 pTeX の英語マニュアル “Guide of pTEX for developers not interested in Japanese” 初版をリリースしました。日本語組版の説明は**一切なし**で
— aminophen (@aminophen) 2019年10月19日
・カウンタなどのレジスタはいくつ?
・海外のパッケージ作者が pTeX を“やり過ごす”には?
などのトピックに絞りました。https://t.co/pjRUyQ13Qt pic.twitter.com/t2f730l1pw
逆に,「日本語組版とはなんぞや」を知りたい開発者もいるかもしれませんので,その場合に参照してもらえるドキュメントとして整備したのが japanese です。これは 2020 年 12 月 6 日以降 texdoc japanese
で表示され,つまり海外の人に真っ先に見つけてもらえる,日本語の LaTeX に関する英語ドキュメントになることを目指しています。
"Guide to Japanese Typesetting with LaTeX" (japanese.pdf) https://t.co/1xfIrYhtUB
— aminophen (@aminophen) 2020年12月7日
本文書のモチベーションは https://t.co/BDXKXYHmR0 の通り,主に海外の開発者に「LaTeX で日本語するのは欧州人の直観とは異なる」という事実を伝えることですが,日本のユーザの方にも面白い内容ですよ! #TeXJP
> LaTeX で日本語するのは欧州人の直観とは異なる
— aminophen (@aminophen) 2020年12月7日
もう少し specific に言うと,海外では意外と
● \usepackage[japanese]{babel} すれば日本語できるようになる
● \usepackage{CJK} でも日本語組版には十分
という認識がまだまだあるらしく,どちらも日本的には正しくないということ。
最初の例を LuaLaTeX + jlreq にした理由は,このドキュメントが「日本語組版を全く知らない**海外の**人(主に開発者,次に文書作成者)」向けだからです。
— aminophen (@aminophen) 2020年12月7日
日本語で日本人向けに書くのと違い,“資産”(解説書が豊富,周りの人が pLaTeX を使っている,等)が全くないので LuaLaTeX 一択です。 #TeXJP https://t.co/ad1nXwrgTI
一方,LuaLaTeX → upLaTeX → pLaTeX の順に3つとも取り上げた理由は,このドキュメントが海外の**文書作成者**のみならず,むしろ**開発者**が想定読者だからです。
— aminophen (@aminophen) 2020年12月7日
日本では DVI 出力がよく使われるという事実も知ってもらい,ドライバのサポートを続けてもらうのに役立つと思っています。 #TeXJP pic.twitter.com/8hYhZ76u2F
何かしたい人へ
日本語 TeX 関連の「開発」というと,何か難しいことのように感じるかもしれませんが,全くそのように構える必要はありません。
- GitHub のアカウントを取得してみる(これが開発者としての名刺代わりになります)
- https://github.com/texjporg/ の中の適当なプロジェクトに,建設的な要望を送ってみる
建設的な要望とは,必ずしもコードをゴリゴリ書けることを要求しません。例えば「説明書に間違いを見つけた・この説明文がわかりにくいので,このように改善してはどうか」などを指します。あるいは,「説明書が見当たらなかったので,説明書を書いてみました」なども大歓迎です。