コマンド名問題 †
アスキー日本語 pTeX による拡張コマンドには、以下のものがあります。
(もっとも、すべてがアスキー社によるものというわけではありません。)
ptexenc 拡張以前の状況をみますと、歴史的経緯により、
- オリジナルと同じ(衝突)
- 先頭に p がつく
- 先頭に j がつく
- 元のコマンドと無関係
- 元のコマンドが存在しない
というものに分かれます。
このままの状態を海外ユーザに紹介すると、
「なぜこんなに複雑なことになってるのか」と突っ込まれそうです。
なんとか整理したいのですが、どうしたらよいでしょうか。
少なくとも衝突しているものは変更せねばなりません。
オリジナル | 日本語ツール | 備考 | TeXLive2010の日本語ツール | TeXLive svnの日本語ツール |
---|
tex | ptex | pの接頭辞 | ptex | ptex / uptex |
latex | platex | pの接頭辞 | platex | platex / uplatex |
pltotf | ← | 衝突 | ppltotf | ppltotf / uppltotf |
tftopl | ← | 衝突 | ptftopl | ptftopl / uptftopl |
dvitype | pdvitype | pの接頭辞 | pdvitype | pdvitype / updvitype |
bibtex | jbibtex | jの接頭辞 | pbibtex | pbibtex / upbibtex |
makeindex | mendex | 無関係 | mendex | mendex / - |
mpost | jmpost | jの接頭辞 | - (※1) | - (※3) / ??? |
dvitomp | pdvitomp | pの接頭辞 | - | 不要 |
makempx | pmakempx | pの接頭辞 | - | 不要 |
なし | makejvf | | makejvf | makejvf (※4) |
updmap | updmap? | 衝突 | - | updmap (※2) |
dvips | | | dvips (※2) | dvips (※2) |
xdvi | ← | 衝突 | - | - (※5) |
※1: W32TeXではpmpost
※2: pTeX対応,upTeX対応を含む
※3: pmpostとして導入を目指す?
※4: upTeX対応を含む
※5: pxdviとして導入を目指す?
コメント †
ご意見を下さい。
- 日本語ツールの方はすべてjp(またはjp-)という接頭辞をつけるというのはいかがでしょうか?IPドメインと同じでもありますし。 -- 通りすがり
- ご意見ありがとうございます。j と p の二文字を両方使うというアイデアは面白いと思いますが、platex→jplatexと変更するとなると、影響が大きすぎて受け入れられ難いように思います。アスキーさんにも jpTeX と変更していただくことにもなりますし。 -- 土村
- 日本語ツールの中でも、ツールそのものが被っているという例が(ptex,jtexなど)過去にありましたので、jp-を被せて丸ごと保護するという発想はアリなのかな、とちょっと思いました。まとめるという考え方からは外れるかと思いますが…… -- 背景理解不足ユーザ
- 日本語用のTeXが国際的に流通するためにも、わかりやすいまとめ方を提案していくことが必要だと思います。日本語は日本人だけの物ではないですし、ポーランドの人やジャマイカの人たちにも独自のTeXを用意する余地を残すべきだと思います。そのためには他の言語との違いを「わかりやすく」「明確に」することが必要でしょう。思いつきですが、そこにIPドメインを使うというのは悪くないと思うのですが... -- 通りすがり2
- なんだか誤解してたので仕切り直します。今ある全てのコマンドに "jp-" の接頭辞を付加する、という提案なのですね。これはこれでいいかもしれません。 -- 土村
- ポーランド語 PLaTeX に何が起こったかを説明しておきます。あちらの拡張(?)は TeX 本体はそのままでした。マクロで実現できることにコマンド名を新設していたと理解しています。(この調子でコマンドを作るとなるとドイツ語の GLaTeX(?) やらフランス語の FLaTeX(?) まで作ることになるのでしょう。)日本語 pTeX の場合は TeX 本体にも拡張が入り、その上で platex コマンドが存在するので、拡張の度合が段違いに大きいことになります。このあたりを理解して下さったのでしょう、あちらからポーランド語 PLaTeX の廃止を申し出て下さいました。
今後は latex コマンドに \usepackage{polski} を使うスタイル(←ちょっと自信なし)に変わるのだろうと理解しています。 -- 土村
- もちろん、おっしゃっていることは分かりますが、2バイト文字を使うとか縦書きもある日本語のTeXが存在することは非ヨーロッパ圏の人々にとって、大きな勇気を与えることになるでしょうし、各言語に固有の事情を反映して、バイナリに手を加えるなりマクロで対処するなりという余地を常に残しておくことが大切なのだと思います。このページの趣旨とはややかけ離れたことでスペースをいただいて申し訳ありませんが、この際だから考えるよいチャンスなのだと思います。 -- 通りすがり2
- 日本語ツールに書かれているコマンドを全て等しく"オリジナルからの変種"と見なしたとき、今後も日本圏でオリジナルコマンドの変種(代替種?拡張?)が出てきた際に、名称の世界的衝突を起こさないようにしておくとよいのでは? という発想でした。接頭辞とするか接尾辞(_jpなど)とするかについては好みの問題と思います。 -- 背景理解不足ユーザ
- 動作報告8にありますように、今回名称を InterNational でビルドしコマンド名とリンク先を見ていました。私も通りすがり2さんのおっしゃる趣旨に賛同致します。昔、TeX で縦書き?という議論があったかと思いますが、俳句、和歌とその内容の原典となった漢詩を対比しながら使ったことがあります。藤田先生?がなさっていたのを参考にしたんだと思いますが記憶が曖昧です。ptexlive + Fedora 8 環境で当時書き散らかしたものを手入れして見ていますが、例えば、考古学の分野でも自然科学を土台とした数値測定や統計などの解析手法も利用して文書作成をされる場合、通りすがり2さんのおっしゃる視点はアジア圏のみならず恩恵を被る方々も多いことを意味すると思います。その上で、名称の問題については接頭辞として `p' + `j' の組み合わせ (衝突しかねない ptex 拡張部分)と `j' だけを頭に持ってくるような分別手法は不都合でしょうか。個人的な本音で言えば、ptex 拡張にかかるものは全て従来通りが有難いのですけど。 -- 新村
- jp- の接頭辞を付けることに賛同する方が多いと言う理解でよろしいでしょうか。私としては、各国の独自拡張はメンテナンスに手間がかかり、いずれは消える(というか、放置される)運命にあると思うので、なるべく上流に取り込んでもらうのがよいだろうと思っています。そう言う意味では、独自拡張をドメイン名の接頭辞付きで残しておくことはどうかと思うのですが、これに賛同する方が多いということは大いに参考になります。
(pdftex や context の紹介を怠っているというメッセージとも理解できそうです。pTeX 周辺の開発は世界の開発状況からかなり遅れてしまっているという事実に、我々は早く気を留めるべきだろうという気がしています。) -- 土村
- 衝突しているものだけ名前を変えて、していないものは現状維持に一票です。特に、ユーザがよく使うコマンドの名前を変えられるのは嫌です。全部の名前を変えなくても、現在の状態をきちんと上流に説明すればよいことだと思います。 -- okayama
- 環境変数 LANG を判別して自動的に何か適切な処理がなされるような機構があれば,さらにユーザに何も意識させる事なくコマンドを使う事が出来るのではないでしょうか(Windows は現状で議論せず).オリジナルの TeX Live 環境を使いたくなったら (LANG=en_US.UTF-8 platex hoge.tex) とするという方が良いのかなと思いつきました. -- Thor
- open SUSE 10.3 の texlive-bin-latex パッケージの中に(ないはずの) polish platex が含まれていたので,ふとそう思いました. -- Thor
- LANG で切替えるという案は、私も一度提案したことがあります。Win 環境では苦しいようですので、最後の切札というところでしょうか。 -- 土村
TeX Live のディレクトリ構造 †
上のようにご意見をいただきましたが、実際に作業をしてみると、
いくつかは p の接頭辞にするのがよいだろうという気持ちになりました。
そう思った背景を説明してみます。
それには、まず TeX Live 2007 のソースの状況から見てみます。
source.tar.bz2 を展開すると source/texk/web2c/ というディレクトリに
Knuth の tex.web を始めとする TeX エンジンのソースがあります。
拡張された TeX エンジンのソースは、
以下のようなディレクトリを掘ってその下にソースが置いてあります。
alephdir/ eomegadir/ mpdir/ omegafonts/ tests/ window/
ctiedir/ etexdir/ mpware/ omegaware/ tiedir/ xetexdir/
cwebdir/ lib/ omegadir-1.15/ otps/ triptrap/
doc/ man/ omegadir/ pdftexdir/ web2c/
ここには国依存の拡張が行われたものが置いてないことに注目下さい。
置いてあるのは Omega や e-TeX, pdfTeX といった、エンジンの拡張や、
MetaPost のような Web で記述されたアプリです。
さて、pTeX のソースはどこに置けばよいでしょうか。
技術的に言えば、Web の枠組の拡張を行う限り、
web2c/ のディレクトリの下に置くしかありません。
しかしここには国依存の名前が見当たりません。
pTeX が TeX の一拡張であると思って、
ここに ptexdir というディレクトリを作り、
その下に ptex, pltotf, tftopl, pdvitype などのソースを置くと
おさまりがよさそうです。
jp-dir のようなディレクトリを作るとすれば奇異な感じがします。
ところで、Makefile は web2c/ にはありますが、サブディレクトリにはありません。
従って、コンパイルされた実行ファイルは web2c/ に置かれて、
サブディレクトリには置かれないことになります。
ということは、pltotf のように、名前の衝突するコマンドは、
そもそもコンパイルできないということにご注意下さい。
アスキーさんの配布物では、サブディレクトリに実行ファイルを置いていますので、
名前の衝突があっても別々にコンパイルできます。
そして make install では上書きしますので、
後から make install したものが残る、ということになっています。
もう一点、ptexdir という名前のディレクトリの下に
jbibtex のソースを置くのかどうかということに着目下さい。
ちなみに omegadir の下にあるコマンドの名前は、すべて o で始まっています。
jbibtex 用に jbibdir のようなディレクトリを作るのであれば筋が通ってます。
しかし、アスキーさんの配布物では jbibtex は ptex, pdvitype と同じ場所にあって、
ソースコードを一部共有しています。
mendex と makejvf は Web アプリではなく、C 言語で記述されていますので、
置場がもう一階層上になります。
名前の衝突もありませんので、このままでも大丈夫です。
もっとも名前からは pTeX との関連がわかりにくいので、
外国の人には「目障りなものが増えた」と思われるかもしれません。
jmpost は Web アプリなので、web2c/ 以下に置くことになります。
しかも ptex とソースを共有しているので ptexdir に置くのが最も自然です。
この接頭辞の j はなんとかならないものでしょうか。
特に、pdvitomp と pmakempx のコマンドは jmpost の下請け専用コマンドだと
理解しているのですが、こちらは p の接頭辞になってて、なんとも不統一です。
コメント †
ご意見を下さい。
- 名前はいろいろな人がつけており、歴史的な性質も持っているので、あまり統一されていないのは仕方がないと思います。今までに親しまれていることもあり、tftopl や pltotf など、あきらかに衝突してまずい場合を除いて、あまり変更しないほうがよいと思います。 -- kakuto
- 今の私の認識では、jbibtex も jmpost も、命名したであろう最初の開発者さんは、今はメンテナンスされてないということになっているのですが、正しいでしょうか。
(先日まで jbibtex はアスキーさんが開発されていたと思い込んでました。)
つまり、名前を変更する最大の権利を持ってる方が、今はいらっしゃらないのだと思っています。
現状が複雑なことになっている理由はよくわかりますので、CTAN/海外ディストリビューションに取り込んでもらうにあたって整理したいと考えています。
歴史的経緯をご存じの方はお教え下さるとありがたいです。 -- 土村
- それはそうと bibtex8 なるツールがあるのですね。これで日本語が通るのか、試された方はいらっしゃいますでしょうか。 -- 土村
- 仮に通ったとすれば,読み (yomi) に相当するものの拡張がされているかが気になります. -- kuroky
- 確か、yomi に関する特殊処理は bst の中でコーディングされていたような…。 -- ZR
- ただ、multibyte encoding (UTF-8 等) に「対応」してはいないようなので、それを使ったときには、たとえ通ったとしても、bibtex8 のもつ「8-bit encoding に関する付加機能」は消えてしまう気がします。(すべて憶測で書いていますが…。) そもそも欧文 bibtex は high byte を通さないのだったかな? -- ZR
- ↑を書いた後,日本語用 BiBTeX にはどんな機能が必要なのだろうかと考えていましたが,「日本語が通ること」+ 適切な bst (「姓名の扱い」+「and の扱い」+「整列順序の扱い (yomi のような)」) という構図なのでしょうかねぇ -- kuroky
- 私は、bibtex8 よりも、AsiaTeX08 で紹介されていた MlBibTeX の方が気になります。 -- ZR
- 質疑応答で,「ソースを公開しようぜ!」的な suggestion があったので,開発者が応答しているかも知れません.探してみてはいかがでしょうか.また,Asian Journal of TeX にも post proceedings があります (すでにお読みになっているかもしれませんが). Asia 圏の言葉をまったく分からない人が開発しているので,Asia 圏の人たちが使えるものになるまでにはそれなりの commitment をしてあげる必要があると思います. -- kuroky
- MlBibTeX については「作者は、TeX 関係の会議の度に発表はするが、実物はいつまでたっても出てこない」ということらしく、それを知る多くの TeX の住人が辟易しているようです。(ジョークではないかという説があるほど。)「完成させるまで出さない」という態度のまま、アジア言語について考え出したとなると、これはもう永遠に実物は出ないのでは?と私も思ってしまいます。 -- ZR
- LANGで判別することは、切り札どころか、絶対さけるべきことだと思います。というのも、そもそも国際化に対応したいのに、使用環境が日本語環境だと仮定するのはおかしいし、日本国内だって日本語じゃない環境はいくらでもあるとおもいます。 -- xylosper
- jbibtex から pbibtex にコマンド名が改名されたのことですが……。pltotf や tftopl とは異なり、これはかなりユーザが使うコマンドで、多数の本やWebにも記述があるので、不統一に思えるという理由だけで名前を変えるのには抵抗を感じます。混乱を避けるためにも、名前の衝突がないものはそのままの方が望ましいと思います。どうしても名前を変えないと開発のモチベーションが下がる(^^;というのであれば、互換性(元のコマンドを打っても動く)があれば許容範囲かなぁと思います。例えば、シンボリックリンクをはっただけできちんと動いてくれるなら、パッケージャが手動なりtexlinksなりでリンクをはれば、表向きには解決するので。現状ではそうなっているんでしょうか? -- okayama
- pbibtex は改名というよりも fork と理解していただければありがたいです。
- jbibtex は NTT jTeX 用に開発された痕跡があって、文字コードの扱いには jTeX との組み合わせのためか、多くの処理が含まれています。ptexenc 対応のパッチでは、pTeX のみと組み合わせることを前提に、この機能の多くを切り捨ててしまいました。従って jTeX と組み合わせるには問題のありそうな状態にあるわけで、jbibtex を名乗るのは不適切に思えて来ました。少なくとも、上位互換ではなくなってますので、同じ名前で配布するには気がひけます。
- 幸いにして、jbibtex のライセンスは pTeX と同じ修正 BSD と解釈できそうですので、著作権表示をそのままにして、名称を変更してリリースしなおすことは許されてそうに思います。そこで、pbibtex という名前で配布しなおすことにしてみました。
- 今のところ、エンコードの扱い以外は jbibtex と同じ処理をしていますので、pTeX と組み合わせる限り jbibtex の代用になります。コマンド名の互換性を気にされるのでしたら、パッケージ製作者さんにはお手数をおかけしますが、"pbibtex $*" と書いたシェルスクリプト jbibtex を用意していただくようお願いします。ちなみにシンボリックリンクでは BIBINPUTS.jbibtex を見に行ってしまってうまく動かないようです。
- ちなみに、私としては pdvips, pxdvi と同様に bibtex も pbibtex を使って下さい、と啓蒙していただくのがよいと思っています。 -- 土村
- mlbibtexのソース類はもしかしたら http://www.gust.org.pl/bachotex/2008/presentations/hufflen/grouping にあるのかもしれません。mlbiblio.dtd ファイルをダウンロードするとHTMLの中にXML文書が含まれています。XMLはよくわからないので、このファイルがどういうものか理解できてませんが。ところで、「一般ユーザ」としては、pbibtexはこれまでのjbibtexとコマンド名以外気にすべき変更点というのはないのでしょうか。これまでの書式で *.bib ファイルを作成し、必要があればネットから *.bst ファイルをダウンロードして使用できるのであれば、個人的には充分なのですが。 -- wakakumo
- 角藤さん配布の W32TeX では早速 p* に変更されたようです (http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/53349.html).これにより,これから出版されるほとんどの入門書では jbibtex->pbibtex に書き換わるでしょうね. -- kuroky
- はい、pbibtex は jbibtex とコマンド名が違うこと、参照される環境変数がコマンド名に連動して BIBINPUTS.pbibtex に変わること、TEXMF ツリーも texmf/pbibtex を参照するようになること、この3点ぐらいに注意すればよいと思います。JIS の kanji-in/out のバリエーション(ESC$@/ESC$B)なんかの違いも無視するようになってしまってますが、pTeX と組み合わせる限り問題ないと思います。そもそも ptexlive では jbitex が抜けてる状態で何年も過ぎてしまってたんですよね。
もう W32TeX まで変更されましたか。しかも pmpost も... -- 土村
- TeXLive2010の状況を理解したくて、調べながら追加してみました。間違っていたり差し障りあったら適当に処理していただいて構いません。 -- ttk