編集プロセスを分岐およびマージ可能にするために、Github で一連の Markdown ドキュメントを作成しています。とりわけ、PDF 形式にレンダリングするつもりです。これらのタイポグラフィ機能のみが必要です。
- 見出しレベル 1 および 2
- 段落
- 箇条書きリストと箇条書き項目
- フッターのページ番号
- インラインの書式設定済みスタイル (主にインライン コード用)
- ブロックコード
私はpandoc
Markdown パーサーとして使用しており、最初は LaTeX/PDF 出力を直接試しています。しかし、私はそれについて質問し、あきらめました-LaTeXは遅くて使いにくいです(imo)、他のフォーマット(特にHTML)に役立つインラインの事前フォーマットされたスタイルのクラス属性を思いとどまらせるようです.
そのため、現在 Pandoc を使用して HTMLwkhtmltopdf
に変換し、HTML から PDF に変換しています。これにより、探しているタイポグラフィ機能の 90% が最小限の労力で得られるので、これは良いアプローチだと思います。ただし、段落の前の見出しと順序付けられていないリストの前の段落では、keep-with-next または孤立したコントロールが必要ですが、これはサポートされていないようです。これらのCSS機能を試しました:
li {
/* Try to avoid breaking inside a bullet, doesn't work for me */
break-inside: avoid-page;
}
ul {
/* Try to avoid breaking before a bullet list, doesn't work for me */
page-break-after: avoid;
}
p {
/* Not supported by Webkit: https://developer.mozilla.org/en-US/docs/Web/CSS/orphans */
orphans: 2;
}
私のコードからわかるように、orphans
理想的に聞こえますが、PDF 出力には違いがなく、Mozilla のリファレンスによると、Webkit (Wkhtmltopdf によって内部的に使用されます) はそれをサポートしていません。
これを達成するために何ができますか?私は非常に近いと感じていますが、明らかな解決策がないように見える些細な問題であることはイライラします. 私は Pandoc と Wkhtmltopdf の学習にいくらかの努力を払ってきましたが、他の F/OSS ツールがより良い仕事をすることが示されれば、そのどちらかまたは両方をやめても構わないと思っています。
戦略 2
無意味なうさぎの穴に消えてしまいたくはありませんが、Pandoc は ODT にレンダリングできるようです。私のマスター文書は (OpenOffice を使用して) ODT に保存されており、必要なすべての keep-with-next を含め、この文書の書式設定は完璧です。おそらく、スタイルを指定するためだけに ODT ドキュメントを用意し、これを Markdown ドキュメントと一緒に変換することもできます。これは試してみる価値がありますか?
戦略 3
Pandoc の HTML 出力はすべてのマークアップを正しく区別するので、新しい HTML から PDF へのコンバーターを追加すればうまくいくのではないかと考えています。Dompdfはかなり良さそうなので、それもやってみます。
戦略 4
ある時点で、 Lyxのようなエディターを使用して、生の LaTeX も試してみます。LaTeX は Markdown ほど人間が判読できないため、これは理想的ではありませんが、それでもほぼ同じ方法でマージ可能であると考えるべきです。