doc/format.ja.md in review-3.0.0.preview2 vs doc/format.ja.md in review-3.0.0.preview3

- old
+ new

@@ -571,14 +571,108 @@ //texequation{ \sum_{i=1}^nf_n(x) //} ``` -インライン命令では `@<m>{〜}` を使います。インライン命令の式中に「}」を含む場合、`\}` とエスケープする必要があることに注意してください(`{` はエスケープ不要)。 +インライン命令では `@<m>{〜}` を使います。インライン命令の式中に「}」を含む場合、`\}` とエスケープする必要があることに注意してください(`{` はエスケープ不要)。「インライン命令のフェンス記法」も参照してください。 -LaTeX の数式が正常に整形されるかどうかは処理系に依存します。たとえば TeX PDF であれば問題なく利用できるでしょうが、EPUB では MathML 変換を有効にしても妥当な結果にならないことがあります。確実を期すならば、画像で表現するほうが適切です。 +LaTeX の数式が正常に整形されるかどうかは処理系に依存します。LaTeX を利用する PDFMaker では問題なく利用できます。 +EPUBMaker および WEBMaker では、MathML に変換する方法と、画像化する方法のどちらかを選べます。 + +### MathML の場合 +MathML ライブラリをインストールしておきます(`gem install math_ml`)。 + +さらに config.yml に以下のように指定します。 + +``` +mathml: true +``` + +なお、MathML で正常に表現されるかどうかは、ビューアやブラウザに依存します。 + +### 画像化の場合 + +LaTeX を内部で呼び出し、外部ツールを使って画像化する方法です。画像化された数式は、`images/_review_math` フォルダに配置されます。 + +TeXLive などの LaTeX 環境が必要です。必要に応じて config.yml の `texcommand`、`texoptions`、`dvicommand`、`dvioptions` のパラメータを調整します。 + +さらに、画像化するための外部ツールも用意します。現在、以下の2つのやり方をサポートしています。 + +- `pdfcrop`:TeXLive に収録されている `pdfcrop` コマンドを使用して数式部分を切り出し、さらに PDF から画像化します。デフォルトでは画像化には Poppler ライブラリに収録されている `pdftocairo` コマンドを使用します(コマンドラインで利用可能であれば、別のツールに変更することもできます)。 +- `dvipng`:[dvipng](https://ctan.org/pkg/dvipng) を使用します。OS のパッケージまたは `tlmgr install dvipng` でインストールできます。数式中に日本語は使えません。 + +config.yml で以下のように設定すると、 + +``` +imgmath: true +``` + +デフォルト値として以下が使われます。 + +``` +imgmath_options: + # 使用する画像拡張子。通常は「png」か「svg」(svgの場合は、pdfcrop_pixelize_cmdの-pngも-svgにする) + format: png + # 変換手法。pdfcrop または dvipng + converter: pdfcrop + # プリアンブルの内容を上書きするファイルを指定する(デフォルトはupLaTeX+jsarticle.clsを前提とした、lib/review/makerhelper.rbのdefault_imgmath_preambleメソッドの内容) + preamble_file: null + # 基準のフォントサイズ + fontsize: 10 + # 基準の行間 + lineheight: 12 + # pdfcropコマンドのコマンドライン。プレースホルダは + # %i: 入力ファイル、%o: 出力ファイル + pdfcrop_cmd: "pdfcrop --hires %i %o" + # PDFから画像化するコマンドのコマンドライン。プレースホルダは + # %i: 入力ファイル、%o: 出力ファイル、%O: 出力ファイルから拡張子を除いたもの + # %p: 対象ページ番号 + pdfcrop_pixelize_cmd: "pdftocairo -png -r 90 -f %p -l %p -singlefile %i %O" + # pdfcrop_pixelize_cmdが複数ページの処理に対応していない場合に単ページ化するか + extract_singlepage: null + # 単ページ化するコマンドのコマンドライン + pdfextract_cmd: "pdfjam -q --outfile %o %i %p" + # dvipngコマンドのコマンドライン + dvipng_cmd: "dvipng -T tight -z 9 -p %p -l %p -o %o %i" +``` + +たとえば SVG を利用するには、次のようにします。 + +``` +imgmath: true +imgmath_options: + format: svg + pdfcrop_pixelize_cmd: "pdftocairo -svg -r 90 -f %p -l %p -singlefile %i %o" +``` + +デフォルトでは、pdfcrop_pixelize_cmd に指定するコマンドは、1ページあたり1数式からなる複数ページの PDF のファイル名を `%i` プレースホルダで受け取り、`%p` プレースホルダのページ数に基づいて `%o`(拡張子あり)または `%O`(拡張子なし)の画像ファイルに書き出す、という仕組みになっています。 + +単一のページの処理を前提とする `sips` コマンドや `magick` コマンドを使う場合、入力 PDF から指定のページを抽出するように `extract_singlepage: true` として挙動を変更します。単一ページの抽出はデフォルトで TeXLive の `pdfjam` コマンドが使われます。 + +``` +imgmath: true +imgmath_options: + extract_singlepage: true + # pdfjamの代わりに外部ツールのpdftkを使う場合(Windowsなど) + pdfextract_cmd: "pdftk A=%i cat A%p output %o" + # ImageMagickを利用する例 + pdfcrop_pixelize_cmd: "magick -density 200x200 %i %o" + # sipsを利用する例 + pdfcrop_pixelize_cmd: "sips -s format png --out %o %i" +``` + +Re:VIEW 2 以前の dvipng の設定に合わせるには、次のようにします。 + +``` +imgmath: true +imgmath_options: + converter: dvipng + fontsize: 12 + lineheight: 14.3 +``` + ## 字下げの制御 段落の行頭字下げを制御するタグとして、`//noindent` があります。HTML では `noindent` が `class` 属性に設定されます。 ## 空行 @@ -876,11 +970,11 @@ * `%paW` : アルファベット(小文字・いわゆる全角)a, b, c, ... * `%pR` : ローマ数字(大文字)I, II, III, ... * `%pr` : ローマ数字(小文字)i, ii, iii, ... * `%pRW` : ローマ数字(大文字・単一文字表記)Ⅰ, Ⅱ, Ⅲ, ... * `%pJ` : 漢数字 一, 二, 三, ... -* `%pdW' : アラビア数字(0〜9まではいわゆる全角、10以降半角)1, 2, ... 10, ... -* `%pDW' : アラビア数字(すべて全角)1, 2, ... 10, ... +* `%pdW` : アラビア数字(0〜9まではいわゆる全角、10以降半角)1, 2, ... 10, ... +* `%pDW` : アラビア数字(すべて全角)1, 2, ... 10, ... 例: ``` locale: ja