新しい pLaTeX の話:非公式リリースノート 2016 年版 (2)
前回の続きです(新しい pLaTeX の概要や全体の目次は前回の記事を参照)。
【追記:2016-06-11】コミュニティ版 2016/05/07 には、本稿の 5. で解説している「ベースライン補正(縦組)で「Å」が乱れる問題を解消」という修正のやりかたがマズかったことにより、「すべてのアクセント文字」について多くの critical な副作用が生じてしまいました。
- TeX Live 2016のuplatexとucsパッケージ (forum:1941)
- pLaTeX が新しくなってアレ(マクロツイーター)
コミュニティ版 2016/06/10 では修正されています(参考:Issue #5)。TeX Live や W32TeX にも一両日中に反映されると思いますので、pLaTeX 2016/05/07 または 2016/04/17 をお持ちの方は 2016/06/10 に更新してください。
【追記:2016-06-20】コミュニティ版 2016/06/10 には、同じ「アクセント付き文字」でまた別の副作用(特別扱いされる i
のアクセントに関係)が入っていました。
これはコミュニティ版 2016/06/10 patch level 1 (2016-06-19) で修正されました。TeX Live や W32TeX にも一両日中に反映されると思いますので、再度更新してください。
【追記:2016-07-01】トラブルが相次いだことから、この「アクセント付き文字」のパッチだけを一旦リセットし、アスキー版の頃の挙動に戻しました。
コミュニティ版 2016/07/01 のほかの変更点も含め、こちらの記事を参照してください。
続きを読む
新しい pLaTeX の話:非公式リリースノート 2016 年版 (1)
TeX Live 2016 には「日本語 TeX 開発コミュニティ」によってカスタマイズされた新しい pLaTeX がインストールされます。W32TeX では 2016/05/02 以降は新しい pLaTeX が配布されていますし、TeX Live 2016 pretest をインストールした方も 2016/05/10 以降は新しい pLaTeX を持っていることになります。従来のものと何が変わったのか、ここで実際の画像を見ていただきながら説明していこうと思います。
あくまでこのブログは「日本語 TeX 開発コミュニティによる公式見解」ではなく、その中の一個人が独断と偏見を交えつつ(?)説明しようという試みであり、それ以上の意味を持たないことをことわっておきます。公式な告知は TeX Forum に出してあります。
変更点の超ダイジェスト(兼・目次)
詳しく説明する前に、ダイジェストで画像と一文解説だけ示しておきます。
- コミュニティ版 pLaTeX とは?
- 「私の pLaTeX は新しい?」
- 脚注番号前後の不自然なアキの削除(重要:pTeX 仕様変更への追随)
- tabular 環境前後のアキの削除(pTeX 仕様変更への追随)
\parbox[c]
(minipage 環境)、\underline
前後のアキの削除(仕様変更)- 縦組クラスでの overfull 警告の解消(バグ修正)
- ベースライン補正(縦組)で「Å」が乱れる問題を解消(重要:バグ修正)
- トンボが縮む問題への対処(対症療法あるいは予防策)
\eminnershape
の採用(LaTeX への追随)- platexrelease パッケージの追加(LaTeX への追随)
- ascmac パッケージの更新(バグ修正・仕様変更)
- その他:添付ドキュメントの追加や更新など
それでは、実際にみていくことにします。各項目についている番号は、pLaTeX News Community Edition, Issue 1 (plnewsc01.tex) のセクションに対応しています。
続きを読む古い TeX をインストールする (W32TeX, TeX Live)
この記事は、サブブログの 2016-05-18~2016-05-20 投稿記事を移転してきたものです。
最新版の TeX ディストリビューションをインストールするのは、方法さえ間違わなければ割と簡単である*1。ところが、ディストリビューションは日々更新されていて、サーバ上で次々に上書きされる*2ので、一昔前のバージョンを入手するのは意外に困難である。年を経るにつれて古い情報も埋もれていき(もちろん新しい情報が増えていくので好ましい!)、ふとした拍子に「いつ何が変わったのか」を確認したくなっても参照先が見つけられないことがよくある。
今回は備忘録も兼ねて、古い TeX ディストリビューションを入手できるサーバのうち僕が使ったことのあるもの(今でも生きているところ)を貼っておく。
*1:ここではそういうことにしておこう;-)
*2:現に W32TeX は角藤さんのご尽力でバイナリもパッケージもほぼ毎日更新されているし、TeX Live も年に一度(4-6月)のメンテナンス期を除いてパッケージが毎日更新され、メンテナンス期にはバイナリが rebuild される。
TeX Live 2016 の新しい LuaTeX あれこれ
【最終更新 2016/06/11 16:28】luatex85 パッケージの注意点として挙げていた件について “失敗する実例” の情報をいただいたので追記、冒頭の LuaTeX に対する意見を追加。
【記事公開 2016/04/23 14:19】W32TeX の LuaTeX が新しいものに置き換わったようなので、ひとまず公開します。まだ対処法は流動的ですが、現時点で有効そうなものを書いてあります。
久々の更新。今回は、既にあちこちで噂されているように相当新しくなった LuaTeX について説明します。まず LuaTeX の変更点を概説してから(ここまでは“カジュアルな LaTeX ユーザ”は難しければ読み飛ばしてもよいです)、次に LuaLaTeX を使ううえでつまずきそうな点の対処法をいくつか紹介します。
説明に入る前に:LuaTeX はいいぞ?
巷では「LuaTeX はいいぞ」という言及をよくみかけます。しかし、本当にそうなのでしょうか? たしかに LuaTeX は強いと私は思いますが、自分の目的に合っていないと思うときには (u)pLaTeX + dvipdfmx などの方法を使っています。
これに対する明確な答えがあるなら、ぜひとも LuaTeX を使いましょう。もし「ただなんとなく」「新しそうだから」「人が LuaTeX はいいぞと言っているから」という消極的な理由なら、いま一度「LuaTeX 使用によって起きるトラブルに自分で立ち向かう覚悟はあるか」と天秤にかけてみるとよいかもしれません*1。LuaTeX はついに 2016 年中に Ver. 1.0 をリリースする予定であることが公表されていて、ここでようやくベータ版を脱却して “まともに使える正式版” となることが期待されます。LuaTeX のメリットを正当に評価してうまく活用したいものです。
【誤解を防ぐために】上の主張は「○○というツールは〜に使うべきだ」を意図したものではありませんし、開発者の意見を代弁するものでもありません。ツールをどのように使うかは、使う人の完全な自由です。開発者が想定していない使いかたであっても、それが使う人にとって望むものだったなら、誰にも止める権利はありません。ただ、使うのであればその長所も短所も素直に受け入れることが、使う人にとっても作った人にとっても幸せだと私は思います。特にそのツールを無料で使わせてもらっている場合にはなおさら、作者への感謝(可能ならば改善案などのフィードバック)を忘れてはいけません。
【さらに注意】上記は「自分で好きなエンジンを選択して文章を書いてよい」という場合の話です。ソースを複数人でやりとりする場合にはもうひとつの観点が必要です。
本記事にあるとおり、LuaTeX や周辺パッケージはどんどん仕様が変わっています。したがって、手元ではコンパイルできても相手方ではコンパイルできない(あるいはレイアウトが変わる)ということが往々にしてあります。また、論文投稿規定自体に「pLaTeX で書いてください」「LuaTeX はダメです」のようにエンジンがはっきり指定されていることはまずないでしょう。しかし、特に日本語の場合には「配布されているクラスファイルがそもそも pLaTeX しか想定していない → 事実上 pLaTeX 以外ダメ」というケースがほとんどです。このような場合には、事前に関係者と相談して環境を統一しておくとトラブルを未然に防げることもあります。くれぐれも締切間近になって初めて問題点に気づくということのないように注意しましょう。
目次(タイトルだけでも参考になるかもしれません)
- TeX Live 2016 の LuaTeX の新しいところ
- 1. LuaTeX が OpenType Collection (OTC) フォントに対応した
- 2. プリミティブ名がすごーくたくさん変わった
- 3. 「\write18 で外部コマンド実行」(や「\write16 でコンソール出力」)が廃止
- 4. PDF 出力モードでの \mag サポート廃止
- LuaLaTeX ユーザのトラブルシューティング・マニュアル
TeX Live 2016 の LuaTeX の新しいところ
とにかく、いろいろ変わりました。とはいっても、当面の間はカジュアルな LaTeX ユーザが喜びそうなのは「OS X を El Capitan にアップグレードしてヒラギノフォントが LuaTeX で使えなくなってしまった」という人くらいでしょうか…
*1:参考までに、私が「LuaTeX は強い」と思う理由を挙げておきます:
- Unicode 対応
- 好きなフォント(欧文・和文、等幅・プロポーショナル問わず)を使える
- Lua モジュールで OpenType / TrueType フォントを毎回その場で読み込む能力があるので、pTeX のように面倒な TFM (TeX Font Metric) をいちいち準備しなくて済む。
- ただし、その裏替えしとして LuaTeX は処理は遅い。変則的なメトリクスのフォントでなければ pLaTeX の pxchfon パッケージで十分通用する。
- デフォルトで使える数式フォントの種類が多い
- 最近の (u)pLaTeX は e-(u)pTeX で動いていて、FAM256 拡張されているので、頑張れば数式フォントの種類を増やせる。
- ただし、LuaTeX に対しては LaTeX がデフォルトで数式フォントを多数使えるようにサポートしているので、難しいコードが不要。
- PDF 直接出力、組み込み MetaPost サポートが充実
- TikZ はほとんどの機能が dvipdfmx でも使えるが、若干 pdfTeX/LuaTeX のほうが多い(個人的にはそんなに気にならない程度)。
- ただし本記事で述べているとおり LuaTeX が仕様変更したことで、pdfTeX 向け TikZ モジュールが若干 LuaTeX で動きづらくなった。
- Lua コードをゴリゴリ書いて計算・多機能化できる
- パッケージが Lua で書かれている例も最近は増えてきた。
これらのことから、現在私が LuaTeX を使うのは事実上「プロポーショナルフォントを使いたいとき」「Lua コードでゴリゴリ書かれたパッケージを使いたいとき」に限られています。
ptexenc のアレ?を試してみる
この記事は、サブブログの 2016-02-17 投稿記事を移転してきたものです。
あべのりさんのを実験。ここでは e-pTeX ではなく pTeX を使ってみた。
file-0.tex
\newcount\filenum \filenum0 (\the\filenum) \advance\filenum1 \input file-\the\filenum.tex \bye
file-1.tex
(\the\filenum) \advance\filenum1 \input file-\the\filenum.tex \bye
file-50.tex
(\the\filenum) \advance\filenum1 \bye
copyfiles.sh
#/bin/sh for i in {2..49} do cp file-1.tex file-$i.tex done
そして ./copyfiles.sh を実行して file-1.tex を file-2.tex から file-49.tex としてコピーを作成。これで、file-0.tex をコンパイルすると file-1.tex から file-50.tex までが読み込まれる。期待される結果は「(0) から (50) までの数字が DVI に並ぶ」。
W32TeX [2012/11/04]
> set max_in_open=99 > ptex file-0 This is pTeX, Version 3.1415926-p3.3 (sjis) (TeX Live 2012/W32TeX) restricted \write18 enabled. (./file-0.tex (./file-1.tex (./file-2.tex (./file-3.tex (./file-4.tex (./file-5.tex (./file-6.tex (./file-7.tex (./file-8.tex (./file-9.tex (./file-10.tex (./file-11.tex (./file-12.tex (./file-13.tex (./file-14.tex (./file-15.tex (./file-16.tex (./file-17.tex (./file-18.tex (./file-19.tex (./file-20.tex (./file-21.tex (./file-22.tex (./file-23.tex (./file-24.tex (./file-25.tex (./file-26.tex ! TeX capacity exceeded, sorry [main memory size=3000000]. l.374194 ^^@^^@^^@(\the\filenum) If you really absolutely need more capacity, you can ask a wizard to enlarge me. No pages of output.
27個目のファイルを読もうとして main memory size を超過。よくみると…えっ、l.374194? そんなに行はないはずなのだが…
W32TeX [2014/11/08]
> set max_in_open=99 > ptex file-0 This is pTeX, Version 3.14159265-p3.5 (sjis) (TeX Live 2014/W32TeX) restricted \write18 enabled. (./file-0.tex (./file-1.tex (./file-2.tex (./file-3.tex (./file-4.tex (./file-5.tex (./file-6.tex (./file-7.tex (./file-8.tex (./file-9.tex (./file-10.tex (./file-11.tex (./file-12.tex (./file-13.tex (./file-14.tex (./file-15.tex (./file-16.tex (./file-17.tex (./file-18.tex (./file-19.tex (./file-20.tex
固まった。Ctrl + C でも止まらず、タスクマネージャで kill した。
TeX Live 2012 (Cygwin)
$ export max_in_open=99 $ ptex file-0 This is pTeX, Version 3.1415926-p3.3 (utf8.euc) (TeX Live 2012) restricted \write18 enabled. (./file-0.tex (./file-1.tex (./file-2.tex (./file-3.tex (./file-4.tex (./file-5.tex (./file-6.tex (./file-7.tex (./file-8.tex (./file-9.tex (./file-10.tex (./file-11.tex (./file-12.tex (./file-13.tex (./file-14.tex (./file-15.tex (./file-16.tex (./file-17.tex (./file-18.tex (./file-19.tex (./file-20.tex (./file-21.tex (./file-22.tex (./file-23.tex (./file-24.tex (./file-25.tex (./file-26.tex (./file-27.tex (./file-28.tex (./file-29.tex (./file-30.tex (./file-31.tex (./file-32.tex (./file-33.tex (./file-34.tex (./file-35.tex (./file-36.tex (./file-37.tex (./file-38.tex (./file-39.tex (./file-40.tex (./file-41.tex (./file-42.tex (./file-43.tex (./file-44.tex (./file-45.tex (./file-46.tex (./file-47.tex (./file-48.tex (./file-49.tex (./file-50.tex [1] ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) Output written on file-0.dvi (1 page, 756 bytes). Transcript written on file-0.log.
正常終了。出力も期待どおり。
TeX Live 2015 (OS X)
$ export max_in_open=99 $ ptex file-0 This is pTeX, Version 3.14159265-p3.6 (utf8.euc) (TeX Live 2015) restricted \write18 enabled. (./file-0.tex (./file-1.tex (./file-2.tex (./file-3.tex (./file-4.tex (./file-5.tex (./file-6.tex (./file-7.tex (./file-8.tex (./file-9.tex (./file-10.tex (./file-11.tex (./file-12.tex (./file-13.tex (./file-14.tex (./file-15.tex (./file-16.tex (./file-17.tex (./file-18.tex (./file-19.tex (./file-20.tex (./file-21.tex (./file-22.tex (./file-23.tex (./file-24.tex (./file-25.tex (./file-26.tex (./file-27.tex (./file-28.tex (./file-29.tex (./file-30.tex (./file-31.tex (./file-32.tex (./file-33.tex (./file-34.tex (./file-35.tex (./file-36.tex (./file-37.tex (./file-38.tex (./file-39.tex (./file-40.tex (./file-41.tex (./file-42.tex (./file-43.tex (./file-44.tex (./file-45.tex (./file-46.tex (./file-47.tex (./file-48.tex (./file-49.tex (./file-50.tex [1] ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) Output written on file-0.dvi (1 page, 756 bytes). Transcript written on file-0.log.
正常終了。出力も期待どおり。
あべのりさんのところで「(20)の前と最後にΛがふたつ並んでいる」というのは Computer Modern でいくと End Of Text (^C) の制御コードにあたる。MinGW でビルドしたもので起きたそうなので、ビルドしてみるか…
追記 (2016-03-01):TeX Live r39901 でとりあえず OPEN_MAX = 132
に設定する応急処置が入ったので、この問題は(見かけ上?)起こらなくなった。