asciidocをPDFに変換してみた(asciidoctor-pdf)
Uncategorized
Published: 2015-07-01

気軽にドキュメントを書くシリーズです。

asciidocで書き、asciidoctor-pdfでさくっとPDFにするというソリューションがあるようなので試行錯誤を繰り返した結果、この.adocこのPDFに変換できるようになりました。

使い方ではまった箇所をメモしておきます。

インストール

githubのREADMEに書いてある通り、gemでインストールするだけ。

デフォルトのテーマでPDFに変換する

asciidoctor-pdfコマンドを利用します。

自作テーマを利用してPDFに変換する

Asciidoctor PDF Theming Guideに記載されている通り、自分なりのテーマを作ることができます。テーマを自作するにあたっては、デフォルトテーマの記載内容が参考になります。

今回はbasic-theme.ymlを作りました。ファイルはresources/themes配下に配置されています。

自作テーマを利用するためには、asciidoctor-pdfコマンドの-aオプションで、pdf-stylesdirとpdf-styleを指定します。

ページ番号を振る

ヘッダーとフッターにページ番号を振ることができます。今回は、.adocに:pagenums:を設定した上で、テーマファイルにページ番号の具体的なスタイルを記載します。

今回はフッターの真ん中にページ番号を表示してみましょう。

このようにフッターにページ番号が表示されます。今回はフッターにページ番号を付与しましたが、ヘッダーに付与することも可能です。

フッタ

ヘッダーやフッターに画像を追加する

ヘッダーやフッターに画像を追加することが可能です。まずは。追加したい画像をテーマと同じディレクトリに配置します。

そして、以下の様に設定します。今回はrecto_content_rightに画像を表示します。

ヘッダの右に画像が表示されました。ただしverso_content_rightにはimageを指定していないので、右ページには画像が出ますが、左ページには画像が出ません。

フォントを指定する

デフォルトでは以下3種類のフォントが利用可能です。これら以外のフォントを利用することも可能です。

  • NotoSerif
  • Mplus1mn
  • Mplus1pMultilingual

Mplus1pMultilingual にはboldがないので、migmix-1pを利用してみましょう。

今回はresources/fonts配下にフォントを配置します。

テーマファイルでmigmixを使うことを宣言します。

asciidoctor-pdfコマンドの-aオプションでpdf-fontsdirを指定します。

所感

  • PDFは綺麗に描画された。
  • 描画に至るまでの準備が簡単
  • テーマのスタイルファイルは独自形式なので、CSSでの装飾と比べると自由度は狭い。
    • たとえば、現在の私の力では、テーブルの横幅を縮めることができない。[width=”50″]で表の横幅が50%になるはずなのだが、PDFに表示される表の横幅は100%になってしまいまう
  • 必要最低限に装飾したPDFを作る分にはもってこいかも