9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

pandocをやめて、md-to-pdfとvscodeでマークダウンからPDFを作成した

Last updated at Posted at 2020-09-16

はじめに

技術書展9で本を頒布する際にmd-to-pdfを使ったので、備忘録もかねて、書きたいと思います。

初めて、技術書展を見に行ったのが第4回、当時エンジニアですらなかったのに「いつかは技術書展で本を頒布してみたいな」と思って、技術通の人たちがごった返す秋葉原の会場にで考えていました。

それから2年以上経ち、今回はオンラインのみの開催ですが、技術書典9でやっと「実践 Vue.jsでスマホアプリをつくろう」という本(PDF)を頒布しました。

もし興味のある方は手にとってみてください!

初めて頒布したということもあり、思い入れも強く細かいところにこだわるために、色々悩んだことを残します。

概要

執筆環境は、ソースコードもあったため開発と並行するためvscodeを選択しました。
また、マークダウンで書けば最悪PDFにどうやっても変換できるだろうと考え、マークダウンで書くことにしました。

Wordとか使うとマークダウンでもなくて良いのかなと思います。

Pandocを最初に選択したが。。。。

マークダウンをPDF化するにあたり、最初に候補にあがるのがpandocです。

私もpandocでイケると思ってました、当時は。

正直言うと、カスタマイズにするには学習コストが少し高い印象を受けました。「ページ番号付けたいのに」とか「章の見出しをカスタマイズしたい」という時に一々調査してという感じだったので諦めました。

修得できれば便利だとは思います。

md-to-pdfに出会う

何か、シンプルで使い方がわかりやすいものがないかなと思い、MarkdownをPDFに変換する「md-to-pdf」は痒いところに手が届く素敵ツールでmd-to-pdfを見つけました。困った時のクラスメソッドさんw

md-to-pdfはシンプルなマークダウンからPDFに変換するライブラリです。npmでインストール可能です。

npm i -g md-to-pdf

下記のように、対象のマークダウンを指定して、スタイルシートを当てることできます。

求めているのは、最低限のマークダウンを変換し、スタイルシートでデザインをつけること。md-to-pdfがもっとも合っているように感じました。

npx md-to-pdf tmp/*.md --stylesheet styles/style.css

devtoolsオプションをつけることで、ChroniumでHTMLとCSSの状態を確認することも可能です。
一々、PDF変換して確認だと時間がかかるので、地味に便利です。

※ホットリロードは効かないです。

npx md-to-pdf <マークダウン> --devtools --stylesheet styles/style.css"

工夫した点

表紙と裏表紙はあとでマージする

md-to-pdfでは、冒頭に設定を書くことができ、ページのサイズや余白を指定できます。

---
pdf_options:
  format: A4
  margin: 20mm 10mm
  displayHeaderFooter: true
---

しかし、これが全部に入ると表紙や裏表紙にも余白が入ってしまいます。なので、表紙と裏表紙は別でmd-to-pdfでpdf化し、その後PDFをマージしました。

手作業になってしまったところ

目次や章番号が手動になってしまいました。markdown-indexMarkdown TOCで自動的で作成することができるのですが、章番号が1.1.1 のようなフォーマットだったり、目次にスタイルを当てる関係で手動にしました。

おわりに

本を執筆するのも大変だけど、装丁も大変でした。。。
表紙・裏表紙の設定、目次、章番号、著者紹介、章ページなど思ったよりもデザインする箇所がたくさんあります。

シンプルなツールにして、CSSでカスタマイズが簡単にできるmd-to-pdf一度試してみてください!

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?