PythonでMarkdownからEPUBをつくろう

この連載について

 この連載は、『PythonでMarkdownからEPUBをつくろう』を一部抜粋して編集したものです。

 本編には、全てのソースコードや、生成する原稿のサンプルが付属しています。ぜひ、こちらもご購入ください。

 姉妹版の『PythonとPygameで作る レトロ風RPG 全コード』もあります。

目次に戻る

1-5 縦書き

公開:2025-03-07

 この本は横書きですが、縦書きの本の作り方も説明しておきます。やるべきことは2つです。

OPFファイルの「ページめくり方向」の設定

 OPFファイルの「ページめくり方向」の設定は、item/content.opf<spine>page-progression-direction属性で設定します。

 この「ページめくり方向」の設定は、このあと作る設定ファイルconfig.yamlpageProgressionDirectionの値を切り替えることでおこないます。

▶ 切り替え前
# ページ送り方向
pageProgressionDirection:
#  rtl
  ltr
▶ 切り替え後
# ページ送り方向
pageProgressionDirection:
  rtl
#  ltr

 切り替え後のrtlの状態にすると、Right To Left(右から左)にページが進行します。

CSSファイルで縦書き表示を指定

 CSSファイルでhtmlに縦書きの指定をおこないます。また、リンクの下線の向きも変えておきます。

▶ 01_md/css2/vertical.css
 1/* 縦書き用設定 基本 */
 2html {
 3    -webkit-writing-mode: vertical-rl;
 4    -webkit-text-orientation: mixed;
 5    -epub-writing-mode: vertical-rl;
 6    -epub-text-orientation: mixed;
 7    writing-mode: vertical-rl;
 8    text-orientation: mixed;
 9}
10a {
11    text-decoration: overline;
12}

 また次のような設定を用意しておき、必要に応じて本文中にタグを加えるとよいでしょう。

 こちらは、半角英数字を縦向きに表示する設定です。

14/* 縦書き用設定 文字組 半角縦書き
15  例:<span class="vertical-writing">ABC</span>。 */
16.vertical-writing {
17    -webkit-text-orientation: upright;
18    -epub-text-orientation: upright;
19    text-orientation: upright;
20}

 こちらは、年月日などの数字「12」「25」を横に並べて表示する設定です。

22/* 縦書き用設定 文字組 縦中横
23  例:<span class="text-combine">12</span>月<span class="text-combine">31</span>日。 */
24.text-combine {
25    text-combine-upright: all;
26}

目次に戻る

この連載について

 この連載は、『PythonでMarkdownからEPUBをつくろう』を一部抜粋して編集したものです。

 本編には、全てのソースコードや、生成する原稿のサンプルが付属しています。ぜひ、こちらもご購入ください。

 姉妹版の『PythonとPygameで作る レトロ風RPG 全コード』もあります。

 技術系同人誌など まとめページ


トップページに戻る
Cronus Crown(クロノス・クラウン)のトップページに戻る
(c)2002-2025 Cronus Crown (c)1997-2025 Masakazu Yanai
ご意見・お問い合わせはサイト情報 弊社への連絡までお願いします
個人情報の取り扱い、利用者情報の外部送信について