マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

新しい BXjscls の話(v1.9)

TeX Live 2018 および W32TeX は既に更新されている。

近いうちに、メジャー改版となる 2.0 版のリリースを予定していて、今回の 1.9 版はそれに向けた準備が含まれる。

textwidth と textwidth-limit と \jsTextWidthLimit と

もともと bxjsbook では、他の BXJS クラスと異なり、textwidth-limit というオプションで一行の文字数を指定していた。ところが、1.8 版において、行の長さを指定する全クラス共通のオプションである textwidth が新設された。そして、bxjsbook においては、この textwidth は旧来の textwidth-limit と全く同じ役割を果たす(\fullwidth 以下の範囲内で \textwidth の値を決める*1)ものなので、両方存在するのは無駄である。

従って、2.0 版においては、汎用性の高い textwidth の方を残し textwidth-limit は非推奨の扱いにする予定である。

従来の仕様では、textwidth-limit で指定した値は \jsTextWidthLimit という数値マクロに保存される。((というか、元々は「bxjsbook の \textwidth を変えるにはこのマクロを直接再定義する」という仕様であった。))2.0 版の仕様では textwidth-limit は「textwidth の旧式の別インタフェース」となるため、それを見越して今回(1.9 版)の改修において、 textwidth で行長を指定した場合にも \jsTextWidthLimit に一行の文字数の値を保存することにした。

通常は、textwidth で指定した長さ値は実際には全角の整数倍に切り捨てられるが、\jsTextWidthLimit に入るのは切り捨てた後の整数値である。ここで、whole-zw-lines=false を指定して整数全角の切り捨てを無効化した場合は、\jsTextWidthLimit には実数値(行長÷全角幅)が入ることになる。

一部のオプションの名前がそのうち変わる話

2.0 版において、以下の 4 つの(ほとんど使われていないであろう)真偽値型オプションの名前を変更する予定である。

  • (no)jsdisguise-js=<真偽値>
  • (no)zwuse-zw=<真偽値>
  • (no)precisetextprecise-text=<真偽値>
  • (no)simplejasetupsimple-ja-setup=<真偽値>

1.9 版では、この変更を見越して、新名称のオプションを別名として用意した。つまり、1.9 版では両方のオプションが使用可能でかつ正当である。2.0 版では古いオプションは非推奨になる予定である(後述)。

その他もろもろ

  • 元号について、BXwareki パッケージが利用可能であれば、その情報を利用する。
  • jafontscale が認識されないバグを修正。

補足:今よりもっと新しい BXjscls の話

2.0 版では、次のような(互換性に影響のある)変更を予定している。

  • geometry 4.x 版のサポートを廃止し、5.0 版以降を必須とする。
    ※ geometry 4.x 版 の使用は 1.2 版 [2016/08/01] において非推奨となっている。
  • \ifdraft 命令を廃止する。代わりに \ifjsDraft を使う必要がある。 ((LaTeX ユーザレベルで \ifthenelse{\boolean{draft}}... を使っている場合、\ifthenelse{\boolean{jsDraft}}... に変更してもよいが、それよりも ifdraft パッケージの使用の方を推奨する。))
    ※ 1.2 版 [2016/08/01] において非推奨となっている。
  • (u)pLaTeX 以外のエンジンにおいて、ja オプションを省略する(この場合和文ドライバは minimal になる)指定を非推奨とする。
  • 以下に挙げる、旧版との互換性のためのオプションを非推奨とする(廃止ではない)。
    • (no)js (→ disguise-js=<真偽値>)
    • (no)zw (→ use-zw=<真偽値>)
    • (no)precisetext (→ precise-text=<真偽値>)
    • (no)simplejasetup (→ simple-ja-setup=<真偽値>)
    • textwidth-limit=<整数> (→ textwidth-limit=<整数>zw)
    • dvipdfmx-if-dvi (→ dvi=dvipdfmx)
    • magstyle=mag/real/xreal (→ magstyle=usemag/nomag/nomag*)
    • jadriver=<名前> (→ ja=<名前>)
    • noscale (→ scale=1)

*1:ただし、指定の書式について、textwidth-limit は全角単位の整数値、textwidth は長さ値で指定するという違いがある。textwidth で指定した場合も、普通は全角の整数倍に切り捨てられる。