見出し画像

【Asciidoc】パラグラフは・・・改行で空白が入るよ

今回は、「パラグラフ」について。。。
動作について解説する前に

:scripts: cjk
:pdf-theme: default-with-font-fallbacks

this
is
a
pen.

これは
ペン
です。

ロロロロロロロロロ

これを変換してみました。

html
PDF

出来ました。改行された部分も「段落パラグラフ」として纏められています。
 が・・・。
テキストをコピーしてコードエリアに貼り付けてみます。
まず、「HTML」

this is a pen.

これは ペン です。

ロロロロロロロロロ

次に「PDF」

this is a pen.
これは ペン です。
ロロロロロロロロロ

如何でしょうか?英文は良いのですが日本文は・・・。
改行毎に「半角空白スペース」が入っています。この「改行」を「半角空白スペース」に置き換える動作は「Asciidoctor」の基本仕様です。
「:scripts: cjk」はこれを是正するはずだったのですが・・・。機能しているように見えません。

日中韓言語(特に中国語と日本語)の改行ルールを有効にします。中国語と日本語はスペースなしで表記されます(英単語と混在する場合もスペースは使用できません)。この設定により、2つの日中韓文字の間に改行が入り、折り返しに対応できるようになります。また、これらの言語では、ポーズ、フルストップ、ダッシュの句読点が異なっており、改行する際に考慮されます。

AsciiDoc Attributes for PDF(機械翻訳)

「Asciidoctor PDF」の「V 1.6」では機能している記事を多く見かけるので「V 2.0」以降、仕様上の変化が有ったのだと思います。
この動作は元々「Asciidoctor」を初めとする軽量言語の処理仕様に基づくものと思われます。正確なところは「正規化(Normalization)」を参照してもらいたいと思います。「CJK」は通常、「文頭改行」を残し、その他の改行を「半角空白スペース」に置き換える処理を「削除ゼロスペース」に置き換える処理行う様になっているはずなのですが、「英単語」を初めとする欧米の場合、単語結合が発生するので・・・というのがスルーされた理由かと思われます。(プロポーショナル・フォントを利用すると目立たないというのもあるのでしょう。)
「Re:VIEW」でも似たような問題があり、「@kauplan」さんは「技術系同人誌を書く人の味方「Re:VIEW Starter」の紹介」において「英単語が結合されるバグを修正」で今回の逆「Thisisapen.」なるからと「Re:VIEW Starter」の中で調整されています。(マークダウンは方言が多いので調査していません。。。「reStructuredText」は回避策を持っているようです。)
根本的な解決は「ブロック」毎に基本定義のほかに「LANG」設定を行えるように仕様を変更するしかないのでしょうが、改変ポイントが多岐に渡ってかなり難しい様に思います。(そのうち・・・きっと・・・。)
しかし、こういう事を考えると「”TeX”は本当に完成されているなぁ」と感心します。

取り敢えず今回はここまで。
…ではまた。

当Noteは下記の「AsciiDoc Language Documentation」の文法に従っています。



いいなと思ったら応援しよう!