texjporg / platex

pLaTeX community edition
BSD 3-Clause "New" or "Revised" License
49 stars 8 forks source link

plpatch は必要か? #2

Closed aminophen closed 8 years ago

aminophen commented 8 years ago

plpatch.ltx のバージョンがフォーマット再作成のたびにいちいち面倒なので、次期バージョンからはなんらかの対処を行いたいと考えています。実際、ltfinal.dtx を見てみると最近は

% Patch file code removed.

として ltpatch.ltx を読ませるコードをコメントアウトしてあって、ltpatch.ltx は「あっても読まれない」という状態になっています。LaTeX のほうも ltpatch.ltx は今後使わない方針にみえますから、pLaTeX のほうもこれに合わせてはどうかという提案です。uplpatch.ltx についても同じです。

kmaed commented 8 years ago

私も patch は何のためにあるのかよくわからない状態でした.ltpatch.ltx は TeX Live 2014 の最終版にはありましたが,2015 の途中で失くなっているみたいです.昔は必要だったのかもしれませんが,今ならばいらないようにも思います.

aminophen commented 8 years ago

私も 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 が出るようになってしまっています。

異論がないようでしたら、このあたりも含めて調整してみます。

kmaed commented 8 years ago

調整ありがとうございました.まだ plpatch.ltx のファイル自体は残っているみたいですが,これは残すのですか?

aminophen commented 8 years ago

ファイルも消してしまったほうがよかったですね、すみません。削除しましょう。

aminophen commented 8 years ago

あっ、でも単純にファイルだけ消したらまだ (u)pldoc.pdf ビルド時にドキュメントの日付が変になってしまうので少々お待ちください。(LaTeX の source2e.pdf がまさにそうなってしまっているように「2016/05/07 Patch Level」と表示されてしまうので、そこのコードも外します)

kmaed commented 8 years ago

LaTeX の source2e.pdf がまさにそうなってしまっているように

本当だ! ちょっと笑ってしまった…….バグ報告するとよいかもしれません(気付いているのかな?).

aminophen commented 8 years ago

とりあえず 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 もこのあと調整します。

aminophen commented 8 years ago

e068069 で platex.dtx を調整 & plpatch.ltx を削除しました。

aminophen commented 8 years ago

uplatex のほうも同じ対処をしました。source2e.tex のほうはレポートしたところ早速 thanks for catching that! ときたので、もしかすると何かしら反映されるかも ;)

kmaed commented 8 years ago

source2e.tex のほうはレポートしたところ早速 thanks for catching that! ときたので、もしかすると何かしら反映されるかも ;)

すばらしい.

あとはまた PDF を生成していただければと思います.IPAフォントでもよければ私がやるのですが…….

aminophen commented 8 years ago

IPAフォントでもよければ

いいんじゃないでしょうか。(将来的にもこだわると面倒そうだし…)

latex2e-svn r1172 に反映されました(changes.txt に名前が出てる)。LaTeX team にパッチ送ったのはこれで 3 回目ですが、毎回 David Carlisle さんの反応が早くて素晴らしいです。

kmaed commented 8 years ago

IPAフォントでもよければ

いいんじゃないでしょうか。(将来的にもこだわると面倒そうだし…)

他の PDF がヒラギノなので,合わせた方がよいかなあ,と思っていたのですが.いずれにせよ,やるのは明日です.

norbusan commented 8 years ago

フォントについて一つの提案だけ:Debianに入れたいので、フリーなフォントの方が安全です。僕は普通に気にしなくてpdfをそのままDebianに入れてるんですが、ほかのライセンスオタクは気がついたら、Debianから外せないといけません。 ですから、IPAならば嬉しいです。。。理解をお願いします。

aminophen commented 8 years ago

ヒラギノのライセンスに関しては、「ヒラギノを買った人」と「Mac な人」なら埋め込み PDF を作成して配布してよいと思っていたのですが、怪しいとする見解もあるのは確かですね。IPA フォントに変えて全ての PDF をいまから rebuild しようと思います。Makefile も IPA フォントの map を使うように書き変えておくと、どの環境でも同じ PDF が出来て都合がよいきがしますし、そのようにします。

norbusan commented 8 years ago

僕の意見じゃないけど、Debianでは、それもダメです。生成のためのことは全部フリーにならないといけません。 ですから、上記のとおりの変化を厚遇です!

aminophen commented 8 years ago

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 は削除しました。

kmaed commented 8 years ago

色々とありがとうございました.CTAN に上げました.platex は既に配信されています.uplatex の配信は今夜遅くになりそうです.

フォントの件は,確かにヒラギノは埋め込んだものの配布が許諾されている(と考えられる)だけで,埋め込まれたものをフリーに使う権利はないので,フリーなライセンスにこだわる団体は嫌がりそうです.IPA の方が無難ですね.

aminophen commented 8 years ago

(u)platex.ini でバナーをいじるより (u)plvers.dtx のなかに統合した方がよいと思いましたので、コードを書きなおしました (7775eb9) 。これで、LaTeX のバージョンを表示するコードもスマートになりました。実用上はほとんど差がありませんが、一点だけ改善したのが:今までのトノさんのコードだと最終的に \orgdump の定義が \endinput に残ってしまっていたのを、本来あるべき undefined に戻しました。

aminophen commented 8 years ago

plpatch.ltx の削除が(TeX Live 側のほうでも)完了したので、close します。