Closed aminophen closed 8 years ago
私も patch は何のためにあるのかよくわからない状態でした.ltpatch.ltx は TeX Live 2014 の最終版にはありましたが,2015 の途中で失くなっているみたいです.昔は必要だったのかもしれませんが,今ならばいらないようにも思います.
私も patch は何のためにあるのかよくわからない状態でした.
どうやら pLaTeX は昔 plpatch.ltx に quick fix コードを入れて配布していたようです(例:1998/09/10 には、アスキーが 1998/09/01 に対する「和文デフォルトフォントの変更が反映されないのを修正」というパッチを出しています)。いちいち pl***.dtx たちから plcore.ltx を regenerate しなくてよいから楽だった & 本家 LaTeX も同じようなことをやっていたからかもしれません。ダウンロード速度の問題で dtx のフル配布はなるべく控えたかったようにも思います。
最近の LaTeX は quick fix も直接 lt***.dtx に書き込んで、patch level を ltvers.dtx で定義しているようです。少なくとも LaTeX2e <2015/10/01> patch level 2
の patch level は ltvers.dtx 由来ですね。…というところでひとつ気づきました。最近は \patch@level
がデフォルト 0 で定義されているので
$ latex x
[... snip ...]
LaTeX2e <2016/03/31>
$ platex x
[... snip ...]
pLaTeX2e <2016/04/17> (based on LaTeX2e <2016/03/31> patch level 0)
のように (u)pLaTeX で余分な patch level 0 が出るようになってしまっています。
異論がないようでしたら、このあたりも含めて調整してみます。
調整ありがとうございました.まだ plpatch.ltx のファイル自体は残っているみたいですが,これは残すのですか?
ファイルも消してしまったほうがよかったですね、すみません。削除しましょう。
あっ、でも単純にファイルだけ消したらまだ (u)pldoc.pdf ビルド時にドキュメントの日付が変になってしまうので少々お待ちください。(LaTeX の source2e.pdf がまさにそうなってしまっているように「2016/05/07 Patch Level」と表示されてしまうので、そこのコードも外します)
LaTeX の source2e.pdf がまさにそうなってしまっているように
本当だ! ちょっと笑ってしまった…….バグ報告するとよいかもしれません(気付いているのかな?).
とりあえず source2e.tex は以下のようにすると Patch Level が取得できるようです(最初 #2#3
としてトークン #3
を捨てないといけないところを #2
と仮定してしまって 20 分くらい頭を抱えたのは内緒)。
--- source2e.tex.1~ Mon Feb 15 03:22:33 2016
+++ source2e.tex Sun May 08 20:23:59 2016
@@ -161,11 +161,12 @@
-% Get the date from ltvers.dtx
+% Get the date and patch level from ltvers.dtx
\makeatletter
\let\patchdate=\@empty
\begingroup
- \def\ProvidesFile#1\fmtversion#2{\date{#2}\endinput}
+ \def\ProvidesFile#1\fmtversion#2#3\patch@level#4{%
+ \date{#2}\xdef\patchdate{#4}\endinput}
\input{ltvers.dtx}
\global\let\X@date=\@date
あとで送ってみようかな。platex.dtx もこのあと調整します。
e068069 で platex.dtx を調整 & plpatch.ltx を削除しました。
uplatex のほうも同じ対処をしました。source2e.tex のほうはレポートしたところ早速 thanks for catching that! ときたので、もしかすると何かしら反映されるかも ;)
source2e.tex のほうはレポートしたところ早速 thanks for catching that! ときたので、もしかすると何かしら反映されるかも ;)
すばらしい.
あとはまた PDF を生成していただければと思います.IPAフォントでもよければ私がやるのですが…….
IPAフォントでもよければ
いいんじゃないでしょうか。(将来的にもこだわると面倒そうだし…)
latex2e-svn r1172 に反映されました(changes.txt に名前が出てる)。LaTeX team にパッチ送ったのはこれで 3 回目ですが、毎回 David Carlisle さんの反応が早くて素晴らしいです。
IPAフォントでもよければ
いいんじゃないでしょうか。(将来的にもこだわると面倒そうだし…)
他の PDF がヒラギノなので,合わせた方がよいかなあ,と思っていたのですが.いずれにせよ,やるのは明日です.
フォントについて一つの提案だけ:Debianに入れたいので、フリーなフォントの方が安全です。僕は普通に気にしなくてpdfをそのままDebianに入れてるんですが、ほかのライセンスオタクは気がついたら、Debianから外せないといけません。 ですから、IPAならば嬉しいです。。。理解をお願いします。
ヒラギノのライセンスに関しては、「ヒラギノを買った人」と「Mac な人」なら埋め込み PDF を作成して配布してよいと思っていたのですが、怪しいとする見解もあるのは確かですね。IPA フォントに変えて全ての PDF をいまから rebuild しようと思います。Makefile も IPA フォントの map を使うように書き変えておくと、どの環境でも同じ PDF が出来て都合がよいきがしますし、そのようにします。
僕の意見じゃないけど、Debianでは、それもダメです。生成のためのことは全部フリーにならないといけません。 ですから、上記のとおりの変化を厚遇です!
Makefile で IPAex フォントのマップを指定しました。ただし、私の Win32 環境は W32TeX で Un*x 環境は TeX Live なので、両方使えるように
dvipdfmx -f ipaex.map -f ptex-ipaex.map
のように書きました。このため、どの環境でも一方の map が見つからなくて Warning が出るとは思いますが、必ず一方が見つかるはずなので、いずれにせよ ipaex フォントを指定したことになります。この設定で rebuild したドキュメントを push してあります。
あと、各 dtx の冒頭の Copyright もバラバラだったので書き加えました。同時に、generated なファイルもアスキーのものと区別がつくように、ins ファイルにプリアンブルを定義してやはり Copyright を表示できるようにしました。また、あまり update する意味がないと判断した plcore.ins は削除しました。
色々とありがとうございました.CTAN に上げました.platex は既に配信されています.uplatex の配信は今夜遅くになりそうです.
フォントの件は,確かにヒラギノは埋め込んだものの配布が許諾されている(と考えられる)だけで,埋め込まれたものをフリーに使う権利はないので,フリーなライセンスにこだわる団体は嫌がりそうです.IPA の方が無難ですね.
(u)platex.ini でバナーをいじるより (u)plvers.dtx のなかに統合した方がよいと思いましたので、コードを書きなおしました (7775eb9) 。これで、LaTeX のバージョンを表示するコードもスマートになりました。実用上はほとんど差がありませんが、一点だけ改善したのが:今までのトノさんのコードだと最終的に \orgdump
の定義が \endinput
に残ってしまっていたのを、本来あるべき undefined に戻しました。
plpatch.ltx の削除が(TeX Live 側のほうでも)完了したので、close します。
plpatch.ltx のバージョンがフォーマット再作成のたびにいちいち面倒なので、次期バージョンからはなんらかの対処を行いたいと考えています。実際、ltfinal.dtx を見てみると最近は
として ltpatch.ltx を読ませるコードをコメントアウトしてあって、ltpatch.ltx は「あっても読まれない」という状態になっています。LaTeX のほうも ltpatch.ltx は今後使わない方針にみえますから、pLaTeX のほうもこれに合わせてはどうかという提案です。uplpatch.ltx についても同じです。