2023/2/28 by @kmuto

Re:VIEW 5.7 での変更点

Re:VIEW 5.7 において 5.6 から変更した点について解説します。


2023年2月28日に、2023年最初となるRe:VIEW 5 系のマイナーバージョンアップ「Re:VIEW 5.7.0」をリリースしました。中身をガッツリ変える気合いが足りなくてメジャー5系が長いですね。

今回のバージョン 5.7 は、不具合の修正を行いました。


既知の問題

現時点ではありません。


インストール

新規インストールの場合

$ gem install review

更新の場合

$ gem update review

既存プロジェクトのバージョンアップ追従

既存のプロジェクトを 5.7 に更新するには、Re:VIEW 5.7 をインストール後、プロジェクトフォルダ内で review-update コマンドを実行してください。

$ review-update
** review-update はプロジェクトを 5.7.0 に更新します **
config.yml: 'review_version' を '5.0' に更新しますか? [y]/n 
プロジェクト/sty/review-base.sty は Re:VIEW バージョンのもの (/var/lib/gems/2.7.0/gems/review-5.7.0/templates/latex/review-jsbook/review-base.sty) で置き換えら
れます。本当に進めますか? [y]/n 
プロジェクト/sty/review-jsbook.cls は Re:VIEW バージョンのもの (/var/lib/gems/2.7.0/gems/review-5.7.0/templates/latex/review-jsbook/review-jsbook.cls) で置き換えられます。本当に進めますか? [y]/n 
完了しました。

続いて、リリースノートをベースに、変更点について理由を挙げながら解説します。

バグ修正

Windows において、review-init -w の実行時にバインドアドレスを省略したときにエラーが発生するのを修正しました

がんばったわりに知名度の低い機能なのですが、Re:VIEWバージョン4からは、review-init -w プロジェクト名とすると、Webブラウザ上でTeX版面レイアウトをして設定に盛り込むことができます。

ただ、Windowsネイティブ環境のRubyでは、Linux/Unixと違って全部のインターフェイスにバインドするつもりでバインドアドレスに「0」を指定すると動かないという問題がありました。ウィザードモード自体はIPv4範囲内でよかろうと判断して、「0.0.0.0」をデフォルト値に変更しました。バインドアドレスとポートは--bind--portで変更できます。

PDFMaker: //blankline でページをまたいだときに、ページの先頭に空行が入るのを抑制しました

空行を強制的に入れる//blankline命令ですが、TeX PDFの紙面でページをまたいだときのページ先頭に空行が入る、というのはほとんどの場合は期待しない挙動です。ページ先頭時のように、入れるべきではないところに置かれた場合は空行配置を無視するように変更しました。

EPUBMaker: MathJax で数式を表現する際に、<, >, & を変換し、HTML のエラーが出ないようにしました

MathJaxはHTML上にTeXの数式を記述するとレンダリングしてくれる便利なライブラリです。Re:VIEWではimgmath: mathjaxとするとこのモードが有効になります。

TeX数式でたまに登場する<, >, &を使うと妙な挙動になっていたのですが、これらはHTML上で表現する際に実体参照(&lt;, &gt;, &amp;)に変換すべきものでした。

なお、MathJaxはJavaScriptプログラムのため、EPUBでは利用できません。残念ですね。

非互換の変更

動作検証済みバージョンを Ruby 2.7 以降としました

Re:VIEW自体は問題なかったのですが、コードテストのほうの互換性保持が困難になったため、Ruby 2.5・Ruby 2.6についてはテスト対象から除き、今後このバージョンで動かなくなっても諦めることにしました。

2.7以降の固有の機能については、RuboCop先生の提言に従って入りかけはしたのですが、入れてもコード品質の満足だけでユーザーへの価値創造にはつながらないと判断して見送っています。

とはいえ、メジャーバージョンが変わるタイミングでは2.7以降となる可能性があります(Debian stableのRubyがまだ2.7のため、このバージョンでの動作は当面保証されます)。

EPUMaker: EPUB の検証ルールに従い、EPUB の目次に表紙へのリンクを含めました

1月にリリースされたEPUBcheck v5.0.0でRe:VIEWから生成されるEPUBをチェックしてみると、表紙ファイルへのリンク不在でエラー指摘されるようになりました。

容易・無難な対策として、目次から表紙へのリンクを張り、EPUBチェックが通るようにしました。

その他

Ruby 3.2 を動作検証テスト対象に含めました

Ruby 2.5、2.6をテスト対象から捨てた代わりに、3.2が新たに仲間となりました。

RuboCop 1.45.1 の指摘を反映しました

RuboCop先生にまたビシビシと指摘をいただきました。

終わりに

今回の Re:VIEW 5.7 もやや小幅な修正に留まりました。前回の5.6の最後で「公私で手一杯」と触れましたんですが、転職活動から転職・新しい職への必死順応で、Re:VIEWについては最低限のことしかできなかったなぁ…という感慨です。

Enjoy!