以下の内容はhttps://yamaimo.hatenablog.jp/entry/2025/12/12/220000より取得しました。


Vivliostyleと禁則処理の話。

技術同人誌を書く場合、何かしらの組版システムを使うことが多い。  \TeXであったり、Re:VIEWであったり、Vivliostyleであったり。 最近はTypstも注目を集めている。

こういった組版システムを使うメリットの一つは、禁則処理をシステム側が適切に扱ってくれること。 そのおかげで行頭に句読点がきたりしないかとかを気にせずに執筆に集中できる。

ただ、自分は最近Vivliostyleを使うことが多いんだけど、禁則処理がうまくされずに困ったことがあったので、その話をしてみたい。

これは技術書同人誌博覧会 Advent Calendar 2025の12日目の記事です。

結論

まず結論を書いてしまうと、Vivliostyleで禁則処理がうまく働くようにするには、2つの設定が必要になる:

  • 原稿(Markdown)のフロントマターでlang: 'ja'を指定する
  • スタイルシートCSS)で改行規則の設定として:root {line-break: strict;}を指定する

2つ目の設定はCSSで禁則について調べると普通に出てくるので、とくに問題はないと思う。

見落としがちなのが1つ目の設定。 CSSで改行規則として禁則処理をすると指定していても、HTMLのlang属性が"ja"になっていない場合、和文における禁則処理のルールが適用されないっぽい。

自分はモロにこの罠にハマって、なんで禁則処理がうまくいかないんだろうと頭を悩ませることになった。 普段Markdownを書くときはlang属性とか別に気にしないからなぁ。 でもそれではダメなので、Vivliostyleの原稿としてMarkdownを書くときは、もう常にフロントマターを書く勢いでやっていった方がよさそう。

<!-- 普段の場合、最初から書いてOK -->

# 見出し1

本文がどーたらこーたら・・・
<!-- Vivliostyleで原稿を書く場合、まずはフロントマターでlang: 'ja'を指定する -->
---
lang: 'ja'
# 他にも設定あれば書く
---

# 見出し1

本文がどーたらこーたら・・・

今年書いた同人誌の場合

ここからは余談で、今年書いた同人誌の場合、禁則処理をどうしてたかについて。

今年出したのは次の2冊:

これらはいずれもVivliostyleで書いてるんだけど、実は禁則処理の設定が違ってる。

1冊目のビジネスモデル本は2つ目の設定はしたものの1つ目の設定をしてなかったので、禁則処理がうまくいかずに困ったりした。 けど、実物を見てもらえれば分かるんだけど、禁則処理で問題になってるところはないはず。 じゃあどうやっているのかというと、全力でチェックしてひたすら書き直すことで対処している。 言い方や説明の順序とかをとにかく書き換えて、問題になるような場所が出ないように人力で調整した。 これは本当に大変だった・・・

これはさすがにツラかったので、2冊目の設計書本は頑張って調べて、1つ目の設定が必要なことを突き止めた。 そのおかげもあって、快適に執筆することができた。 やっぱり禁則処理をシステム側でやってくれるのは楽よ。 当たり前の話ではあるんだけど、1冊目の苦労を味わったあとだったので、改めてそのありがたみを感じた。

ちなみに、過去の同人誌はBOOTHでも扱ってるので、気になった方はぜひ。

今日はここまで!




以上の内容はhttps://yamaimo.hatenablog.jp/entry/2025/12/12/220000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14