トップ 最新 追記

KeN's GNU/Linux Diary


2018年10月01日

_ [cooking] チリコンカン、とうもろこしのトルティーヤ


2018年10月02日

_ [cooking] チキンステーキ柚子胡椒添え



2018年10月05日

_ [cooking] サンマの塩焼き、ほうれん草の中華炒め


2018年10月06日

_ [cooking] 塩豚焼肉とダールスープ



2018年10月08日

_ [cooking] 蒸しソーセージ、ナスのクミン焼き


2018年10月09日

_ [cooking] ベーコンとポルチーニのクリームパスタ、野菜スープ


2018年10月10日

_ [cooking] 塩豚のグリル、サルサメヒカーナ添え


2018年10月11日

_ [cooking] 鶏肉と小松菜の豆乳煮込み


2018年10月13日

_ [cooking] レンコンの鳥挽肉詰め、人参のごま油炒め


2018年10月14日

_ [cooking] 牛カレー


2018年10月16日

_ [reviewml] Re:VIEW Version 3.0.0 preview3

Re:VIEW 3.0.0preview3 を本日10月16日にリリースしました。

前回のpreview2に引き続き、preview3の新機能や注意点を解説します。

gem版のインストールについては、preview 版のため「gem install review --pre」を使います。

PDFMaker: これまでの jsbook.cls クラスファイルをそのまま使用する方法に代わり、紙・電子双方の書籍制作に適するよう拡張した review-jsbook.cls (jsbook.cls 基盤、デフォルト)、および review-jlreq.cls (jlreq.cls 基盤) を導入しました

今回の最も大きな変更です。

これまでreview-pdfmakerからのTeXによるPDF生成に使われていたjsbookクラスには、印刷に使うにはいくつかの問題がありました(実際、私の制作業務においてはjsbookクラスは使っていません)。

技術書典などを通して技術書制作に興味を持ち、Re:VIEWを使ってくださる方が増えたのはよいのですが、そのjsbookを使い、家庭用プリンタの感覚で入稿仕様に合わないPDFを印刷所に入稿してしまうといった話を見聞きし、印刷業界から懸念と苦言が呈されつつある現状は憂慮すべき事態です。

Re:VIEWは、LuaLaTeXへの対応やカスタマイズ性の観点でjlreq.clsベースのものにデフォルトを移行するという目標を立てていますが、jlreq.clsの機能確定やLinuxディストリビューションへの収録を考えると、まだ年単位の時間を要すると思われます。

このような状況での対策として今回導入したのが、「ひとめで印刷用とわかり、印刷所の入稿仕様の最低限のところは守ったものをデフォルトの状態で提供する」クラスファイルです。

  • review-jsbook.cls:jsbook.clsを拡張しています。デフォルトではこちらが使われます。
  • review-jlreq.cls:jlreq.clsを拡張しています。

これらのクラスファイルは、以下のような機能を提供します。

  • 紙用PDF、電子PDFの1オプションでの切り替え(cameraready=print | ebook)
  • 級数・文字数・行数・行送り・天・ノドからなる版面設計指定
  • 塗り足し幅も設定可能なデジタルトンボ(review-jsbook.clsはgentombowパッケージを利用)
  • 紙面サイズ、トンボ付き紙面サイズの設定
  • 大扉からのアラビア数字ページ通しや最初のページの設定
  • 隠しノンブル(同人誌向けにノド部分に小さくページ番号を入れる)。preview3ではreview-jsbook.clsのみ(正式リリースまでにreview-jlreq.clsも対応予定)
  • 塗り足し領域まで含めた紙面全体への図版貼り付け

具体的にはconfig.ymlのデフォルトは以下のようになります。

 # デフォルト
 texdocumentclass: ["review-jsbook", "cameraready=print,paper=a5"]
 # または
 texdocumentclass: ["review-jsbook", ""]

紙面モードは紙用PDF(print)で、デフォルトの仕上がり紙面はA5です。cameraready=printの場合、

  • トンボおよびデジタルトンボが設置される
  • 表紙(cover)は付かない
  • ハイパーリンク設定の箇所は、色付け・装飾・ハイパーリンクをしない

となります。以下のようにするだけで、今度は電子版になります。

 # 電子版化
 texdocumentclass: ["review-jsbook", "cameraready=ebook,paper=a5"]
  • トンボは付かない
  • 表紙が付く(実寸で全体に貼り付け)
  • ハイパーリンクの色付け、装飾、ハイパーリンクジャンプが有効

このほか、cover=<true|false>で表紙の使用有無、tombopaper=<紙サイズ>でトンボ付き用紙のサイズ、Q=<級数>, W=<字詰>, L=<行数>, H=<行送り>, head=<天>, gutter=<ノド>で基本版面設計、startpage=<ページ番号>で開始ページ、serial_pagination=<true|false>で通しノンブル、hiddenfolio=<プリセット>で隠しノンブルを設定できます。

 # JIS B5仕上がり、トンボ用紙はA4、アラビア数字3ページ目から始まり、日光企画の隠しノンブル仕様に準拠
 texdocumentclass: ["review-jsbook", "cameraready=print,paper=b5,tombopaper=a4,startpage=3,serial_pagination=true,hiddenfolio=nikko-pc"]

review-initコマンドを実行して新規プロジェクトを作ると、デフォルトでreview-jsbookが使われます(review-init --latex-template review-jlreq <プロジェクト名> とすればreview-jlreqになります)。 詳細については、プロジェクトのstyフォルダのREADME.mdを参照してください。

なお、config.ymlでreview_version: 2.0としている場合には、従来の仕組みが使われます。もし2.0のプロジェクトそのままの状態でビルドを実行して変なエラーが出たら、教えてください。

review-jsbook.clsは、TeXのスペシャリストGreenCherryの@munepixyzさんに大半を実装していただきました。

また、preview3のreview-jsbook.clsでは文字サイズなどがjsbook.clsといくぶん違うこと、無効オプションのエラー表示がわかりにくいことといった問題があり、リリースまでにいくらかこの改善を図る予定です。

EPUBMaker/WEBMaker: @<m> や //texequation で入れた数式を画像化する imgmath 機能を追加しました

駆け込みで入れた機能ですが、これまでも隠し機能的に存在したEPUB/WebMakerの数式画像化のロジックを見直し、汎用化しました。「imgmath: true」とすると有効になります。

デフォルトではpdfcrop + pdftocairo(poppler-utils内)を使うようになっていますが、別のツールに変更することも可能です。詳細についてはformat.ja.mdの「TeX式 - 画像化の場合」を参照してください。

PDFMaker: 前付の開始を宣言する LaTeX 命令 \frontmatter を、大扉(titlepage)の後ろから大扉の前に移動しました

あまり気にした人はいなかったかもしれませんが、これまでのバージョンだとページ番号は表紙〜大扉がアラビア数字、そこからPREDEFに入れている前付がローマ数字で始まり、CHAPSの章が始まってアラビア数字、となっていました。実際には大扉は前付として数えるのが正しいです。

この変更により、表紙はアラビア数字(cameraready=printだと表紙は出ないので問題ない)、大扉からローマ数字が始まり、CHAPSの章でアラビア数字、となります。なお上記のとおり、serial_pagination=trueにすれば大扉からCHAPSまで通しのアラビア数字になりますし、startpage=<ページ番号>を指定すれば大扉の開始ページ番号を変えられます。

PDFMaker: coverimage の表紙の貼り付けは、実寸で中央に配置されるようになりました

Re:VIEW 2まではcoverに指定していたものを紙面に合わせて拡縮していたのですが、デジタルトンボの対応に合わせて塗り足し領域まで正確に配置できることのほうを優先しました。

PNGファイルなどはDPIの関係でたいていは大きくはみ出すことになるので調整が必要でしょう。一方で、紙面いっぱい、あるいは塗り足しを含めた領域へ貼り付けるというのは、特にデザイナーには聞き慣れたやり方であり、塗り足し込みのサイズで画像を作ってもらえば、フチのない表現が可能となります。

EPUBと使い分けたいときには以下のようになります(review-initのデフォルトでこうなるはずです)。

 coverimage: cover.jpg
  ...
 pdfmaker:
   coverimage: cover-a5.ai
    ...

画像はPDFまたはIllustrator AIファイルを推奨します。ただし、AIファイルはその「PDF互換表示」部分を使っており、レイヤーのOFFは無効で表示されてしまうことには注意が必要です。 全面貼り付けは表紙に限らず利用可能です。挿絵などに利用できるでしょう。ただ、この表現はLaTeX以外で適用しづらいため、Re:VIEWのタグには割り当てていません。入れたい箇所で以下のようにembedタグを使います。全面に貼り付ける都合でページ番号も入らないので、指定があるときには隠しノンブルを有効化してください。

 //embed[latex]{
 \includefullpagegraphics{images/sashie.pdf}
 //}

PDFMaker: coverパラメータの扱いの誤りを修正しました

preview2でちょっとしくじっていて、coverパラメータを指定しても効果がありませんでした。

PDFMaker: 新しいクラスファイルで、preview 2で発生していた紙面の偏りを修正しました

preview2を使っていた人がどのくらいいたのだろう……というところですが、当時geometry.styでの紙面設計をやめた都合で、A4紙面上の左上に全体が寄るというページ割り付けになっていました。

冒頭のreview-jsbook.clsの導入で別の紙面設計にしたので、この問題は解消されました。

PDFMaker: LaTeX に渡す config.yml の設定パラメータを増やしました

前のpreviewのとおりconfig.ymlのパラメータを一旦LaTeXのマクロにしているのですが、全部を完全に表現するのは難しいですし、使わないものを並べてもあまり意味がないので、ある程度限っていました。

ただ特に書籍のメタ情報(rightsなど)については渡したほうがよさそうと考え、いくつか追加しています。ほかにこれも渡しておいたほうがいいのでは、というのがあればご報告ください。

PDFMaker: LaTeX 命令 \begin{document} の直後に実行されるフックマクロ \reviewbegindocumenthook、\end{document} の直前に実行されるフックマクロ \reviewenddocumenthook を追加しました

あまりLaTeX流儀っぽくないらしいのですが、フック追加時のわかりやすさを考えました。デフォルトでは空ですが、凝ったものを作ろうとすると必要になることもあろうかと思います。

PDFMaker: 新しいクラスファイルでは版面設計をドキュメントオプションで指定するようになったため、geometry.sty は不要になりました

これは先ほど書いたとおりです。前回のpreview2のときにも書いたとおり、もともとのjsbookの12ptなどのオプションは、magnificationという単位の拡縮率自体をいじるという手法で擬似的に文字サイズを変えており、それがgeometry.styを狂わせます。本質的に問題の種となる方法であり、正確な12ptでもないので推奨されません(今のところreview-jsbook.clsでは指定してもエラーになります)。

PDFMaker: 新しいクラスファイルで、大扉からの通しノンブルをサポートしました

serial_paginationのことです。

review-init コマンドにネットワークダウンロードの機能を追加しました。-p オプションで zip ファイルの URL を指定すると、生成したプロジェクトフォルダに zip ファイルを展開して上書きします

Techboosterなどのサードパーティスタイルを作成しているところ向けの配布手段の提供です。いちいちgit cloneしてコピーしてうんぬんとか言わなくても、zipを用意しておけば「review-init -p https://〜/archive.zip プロジェクト名」のようにして展開してもらえるという仕組みです。ぜひ活用してほしいです。

texstyleなども書き換えてほしいときにはconfig.ymlも入れちゃえば?ということになっています(まぁ初期生成時だし……)。いちおうプロジェクトよりも上位のフォルダには展開できないようにはしているつもりです。

PDFMaker: デジタルトンボや隠しノンブルを表現するために外部 TeX パッケージの gentombow パッケージを取り込み、プロジェクトフォルダの sty フォルダにコピーするようにしました

review-jsbookのトンボ機能は自前ではなくgentombowパッケージに委ねることにしましたが、このパッケージは新しめのTeXLiveにしか収録されていないのと、デジタルトンボ対応はまたさらに新しめなので、ひとまず数年はRe:VIEWのソース側のvendorフォルダにコピーしておき、そこからreview-init時にコピーするようにしています。

システムにちゃんとgentombowパッケージが入っている場合にはそちらを使います。

Kindle 用の電子書籍ファイルを作る方法を doc/customize_epub.ja.md に追記しました

私もたまに忘れてrejectされるのでメモ代わりに。epubcheck通ってるんだからいいじゃんといかないのが電子書籍の世界です。特にKindleはエラーから判断できる原因情報に乏しいです。

サンプルファイルなどにある PDFMaker のデフォルトのドキュメントオプションの例示を新しいクラスファイルに合わせました

とりあえずconfig.yml.sampleなどを合わせましたが、もう少し改善していく予定です。config.yml.sampleはちょっと長くて見辛くなってきましたね。

review-init コマンドで展開されるファイルなど、扱いが明示されていなかったファイルについてライセンスを明記しました

基本的に、プログラムコードはGPL2、プロジェクトにコピーされて自由に改変される可能性のあるテンプレート類はMITと明記しました。当然ながらユーザ各自が作るコンテンツはユーザが自由にライセンスを決められ、Re:VIEWチームが関与するところではありません。

数式を画像化する imgmath について、doc/format.ja.md に追記しました

上記のimgmathの説明を追加しました。業務でもよく使うことなので便利ですが、TeXの数式に対してなぜこういうことをしないといけないのか……という気持ちもあります。WebやCSS組版ならMathJAXを使うロジックを組み込んでもいいのかも。

ということで

3.0.0preview3のリリースノートを解説してみました。

月末か来月頭にはいよいよRe:VIEW 3.0正式リリースにしたいと思いますので、使ってみて今のうちにいろいろとご報告いただければ幸いです。

Re:VIEWナレッジベースにもRe:VIEWのカスタマイズなどをまとめていきます。

_ [cooking] ミートソースショートパスタ、ザワークラウトとソーセージのシチー


2018年10月18日

_ [cooking] ビーフステーキ

_ [cooking] 蒸し鶏、ヒジキの煮物


2018年10月19日

_ [cooking] 焼きサンマ、ごぼう煮、豆腐の味噌汁


2018年10月21日

_ [cooking] カオマンガイ


2018年10月22日

_ [cooking] ビーフストロガノフ


2018年10月23日

_ [cooking] 炙りびんちょうまぐろ、さつま揚げと柚子胡椒、松山揚げの味噌汁


2018年10月25日

_ [cooking] 麻婆豆腐


2018年10月26日

_ [cooking] 豚肉とぬか漬け大根の台湾風炒め



2018年10月29日

_ [reviewml] Re:VIEW Version 3.0.0 preview4

Re:VIEW 3.0.0preview4 を10月28日にリリースしました。本当は Release Candidate にしたかったところですが、正式前にもう少し対処したいところがあり、preview の継続となっています。

前回のpreview3に引き続き、preview4の新機能や注意点を解説します。

gem版のインストールについては、preview 版のため「gem install review --pre」を使います。

旧バージョンのプロジェクトを新しいバージョンに合わせたものに更新する review-update コマンドを導入しました

Re:VIEW 2→3や、3preview→3、および今後のバージョンに備えて、アップデートツールを作ってみました。重要になりそうなツールなので、どんどん使ってみていただきたいです (なるべく安全側に倒してはいますが、いちおうプロジェクトをバックアップしておくことはお勧めします)。

式を表す //texequation に ID の指定による採番およびキャプションを付けられるようにし、@<eq> 命令でその参照もできるようにしました

業務でもよく使うので、機能追加してみました。なお、これはリストと同様に「式1.1」のように式上にキャプションとして付けるもので、いわゆる TeX での式の横に付くような「(1)」みたいな形ではありません。TeX 型の式番号を使いときには、わざわざ回り道をする意味はなく普通に最初から TeX で書けばよい話ですし。

また、キャプションの見た目についてはあまり手をかけていないので、reviewequationまわりのマクロを適当に変えて装飾するほうがよいでしょう。

IDGXMLBuilder、PlaintextBuilder、TextBuilder において @<chapref> の展開結果を独自に作成していたのを止め、ほかのビルダと同様に chapter_quote のロケール文字列を使うようにしました

IDGXML を使っていてさらに @<chapref> を使っているというケースはそう多くないと思いますが、これまで chapref パラメータで独自に解釈していたのを止めました (もともといろいろバギーでしたし)。カスタマイズしていた場合は locale.yml の chapter_quote で指定し直してください。

samples フォルダ内のサンプル集は preview3 でそのままでは PDF を生成できませんでしたが、rake pdf だけで動作するように修正しました

Rakefile のルールを少し学びました。あと、ディレクトリ内の*による取得だと順序不定なので、sortもするようにしています。lib/tasks/のファイルは辞書順に読まれます。

PDFMaker: review-jlreq.cls クラスファイルでも hiddenfolio パラメータを利用できるようにしました

隠しノンブルを review-jlreq でも使えるようにしてみました。

EPUBMaker/WEBMaker: imgmath 機能を有効にしたときに、各 //texequation に対してフォントサイズを明示して渡すようにしました

@naotacoさんから報告いただいて、対処してみました。一部のパッケージのマクロでは本文側で指定したフォントサイズを無視してしまうようで、式内で再度指定するようにしています。

_ [cooking] 鮭のムニエル


2018年10月30日

_ [cooking] ロコモコ?