
【Asciidoc】日本的な段落表現をやってみる。(字下げ)
前回の、「【Asciidoc】パラグラフは・・・改行で空白が入るよ」で半角空白が入る問題について解説したのですが。。。
一晩ぐらいでは解決方法を思い付けませんでした。
「PDF拡張コンバーター」を利用するしか無いよなぁ。
と思いながら「禁則処理」コンバーターを探したのですが、「V1.6」用は在っても「V2.x」用は見当たりませんでした。(「禁則処理」コンバーターについては、目処が付いたら記事にまとめてみようと思います。)
さて、今回は日本的な段落表現を行ってみたいと思います。
日本的段落表現
段落の最初は一字下げる。
段落間の空改行はセクション変更時のみ行う。
状況によるのでしょうが文庫本等ではこのような感じではないかと思っています。本来、縦書き用です。横書きだと何気に読みにくい。横書きの場合、西洋的段落表現のほうが合っているかもしれないとも思いますが、あえて今回はトライします。
題材は飽きもせず「吾輩は猫」・・・
= 吾輩は猫である
夏目漱石
:doctype: book
:scripts: cjk
:pdf-theme: ./themes/my-theme.yml
:pdf-fontsdir: ./fonts;GEM_FONTS_DIR
:stylesheet: my-asciidoctor.css
== 一
image::catsvg.svg[猫,150,,float=right]
[.normal]
吾輩は猫である。名前はまだ無い。
どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。
しかもあとで聞くとそれは書生という人間中で一番獰悪な種族であったそうだ。
この書生というのは時々我々を捕つかまえて煮にて食うという話である。
まず「HTML」の変換です。
「my-asciidoctor.css」は「【Asciidoc】変換したEPUBを・・・ ー 実験してみた ー」で実験した構文が流用できます。
@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";
@import "https://cdn.jsdelivr.net/gh/asciidoctor/asciidoctor@2.0/data/stylesheets/asciidoctor-default.css";
p {
margin: 0.2em 0 0 0;
text-indent: 1em;
}
最初の二行はフォント読み込みと「Asciidoctor」既定の「CSS」をインポートしています。「<p>」タグに段落処理を追加しました。
変換すると

次は「PDF」ですが以前「【Asciidoc】PDFに変換する ー テンプレートを作る(後半) ー」で作成した「my-theme.yml」を利用します。
・・・(前略)・・・
base:
align: left
font_color: 000000
font_family: ZenMincho
line_height_length: 15.5
line_height: $base_line_height_length / $base_font_size
prose:
margin-inner: 0
text-indent: $base_font_size
・・・(後略)・・・
「base」の下に「prose」を追加し「text-indent」を設定しています。実は「text-indent:」で「em」を利用できなかったので「$base_font_size」を取り敢えず割り当てています。単位は「cm」「pt」「px」「in」が利用できるようです。
変換すると、

出来ました。
まあ・・・読みにくいですね。
「PDF」で縦書きは「Asciidoctor-pdf(Prawn)」が対応していません。
「HTML」なら縦書きも可能ですが・・・使う場所を思いつかない。
いや、印刷メディア系CSS(Vivliostyle等)と組み合わせて・・・。
それでも「段落字下げ」は文章を書いている時に段落の先頭に全角空白を置くという処理をしたくないのでお気に入りのテクニックです。
取り敢えず今回はここまで。
…ではまた。
当Noteは下記の「AsciiDoc Language Documentation」の文法に従っています。