-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[bibtex] TeX Live 2022 → 2023 でファイル入出力の挙動が変化? #163
Comments
Windows でも再現しました。 (ClutTeX が設定する?)環境変数 max_print_line=65536 がセットされていると発生するみたいです。 max_print_line=10000 はセーフ、max_print_line=20000 はアウトでした。 |
確かに,試しに r63238 を revert すると ClutTeX でも大丈夫になりました。 bibtex.web 及び WEB2C 実装 bibtex.ch を考え合わせると max_print_line の値が 20000 未満でなければならないと書かれているので,ClutTeX が 20000 以上の値を設定しているのは NG のようです。 bibtex.web
bibtex.ch
|
(u)(p)BibTeX で「max_print_line を texmf.cnf あるいは環境変数から読むようにした」という新機能は意図的な変更なので(pbibtex-manual.pdf にも記載あり),この変数を設定する場合は (u)(p)BibTeX が許す値の範囲内とする必要がある。
後者は大きすぎて不自然なので ClutTeX での対応が望ましいでしょうか。 @minoki |
以前は max_print_line=79 で動作するのが固定だったはず(max_print_line=65536 が無視されていたはず)で、その時点で動作に支障がなかったはずなので、max_print_line=65536 の動作を可能にすることが適切な解決策とは考えにくいと思います。 ClutTeX 側の対応をお願いしたいと思います。 |
了解です。ClutTeX側で |
なるほど。 ただ |
できると思います。 |
どういったことをすればよいのでしょうか? |
日本語 TeX 開発コミュニティの方にもお迎えしたいですが、 TeX Liveの方は、お仕事はボランティアでコミットするだけです。 https://www.tug.org/texlive/pkgcontrib.html https://www.tug.org/texlive/build.html を読むと、新規のパッケージのことと既存のバイナリーのビルドの話が中心で、既存部分のメンテのトピックスは見当たりませんね。 自前の環境は、TeX Live svn リポジトリとのやりとりが出来るようにすることが必要です。自分側はsvnである必要はなくgit svnでも大丈夫です。 優しい終身の独裁者 もクリティカルレヴューアーもいらっしゃいません。なので、自制心が重要と思います。 ChangeLog に記載するメールアドレスは、公開されてしまいます。 いかがでしょうか。 |
ありがとうございます。 さて、
の件ですが、ユーザーに分かりやすいメッセージ("max_print_line is too large." とか)を出すとしてそのあとどうするのがよいでしょうか?
できるだけ改行してほしくないという意図をくみ取るなら最大値でしょうか? |
確かめずに言いますが、 bibtex-x の方は C言語で全然別の実装なのですが、 私の好みは「max_print_line を最大値 (buf_size-1=19999) に設定する」です。 |
簡単に調べただけですが、 TeX, Metafont は下限が 60 で 60 未満の値だった場合は
というエラーで終了するようです。 MetaPostは下限 79 未満の値だった場合は無言で 79 に設定される(?)ようです。
bibtex8, bibtexu も max_print_line が最大値を超えた場合は "3 is bad bad" でエラー終了するようです。 メッセージを出力して max_print_line を最大値 (buf_size-1) に設定するを h20y6m@fef15b8 で試しています。 (u)(p)bibtex だけ変更するは中途半端な気もしますが…… |
bibtex{8,u} の場合、 "3 is bad bad" でエラー終了するのは、Buf_Size を超えたときのように見えます。 bibtex-2.c :: if (Max_Print_Line >= Buf_Size)
bad = 10 * bad + 3; Buf_Size は増やしてもよい、とコメント行に書いてありました。 utils.c :: ** Parameter Cmd Standard --big --huge --wolfgang
** ------------------------------------------------------------------
** Buf_Size *** initialy 20000, increased as required *** bibtex.h :: /***************************************************************************
* WEB section number: 14
* ~~~~~~~~~~~~~~~~~~~
* These parameters may be changed at compile time to extend or reduce
* BiBTeX's capacity. They are set to accommodate a maximum of about 750
* cites when used with the standard styles.
***************************************************************************/
#define MIN_PRINT_LINE 3
#define MAX_PRINT_LINE 79
#define AUX_STACK_SIZE 20
#define MAX_BIB_FILES 20
#define BUF_SIZE 20000 よい仕様が何なのか、わからなくなってしまいました。 |
(u)(p)BibTeX の挙動が TL2022→2023 の間で変化し,ClutTeX が使えなくなったという報告を X(旧 Twitter)で複数見かけたので,issue を立てます。なおこの期間に ClutTeX は一度も更新されていないので,他の何か(→ BibTeX のプログラム側)の変化が影響していると思われます。
ClutTeX の説明は上のリンクを見ていただきたいですが,TeX のオプション -output-directory を使ってカレントディレクトリを汚さないという挙動をします。さて試しに
を clutbib.tex として保存し
を実行すると,TeX Live 2022 では lualatex → upbibtex → lualatex の順に走って正常終了しますが,TeX Live 2023 では upbibtex の段になって "3 is a bad bad" というエラーが発生して止まります。TL2022 の upbibtex バイナリを取ってきて TL2023 に置くと正常になるので,バイナリの変更点の何かが効いているようですが特定できていません。
The text was updated successfully, but these errors were encountered: