Skip to content

Instantly share code, notes, and snippets.

@zetavg
Last active April 11, 2024 19:14
Show Gist options
  • Star 14 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save zetavg/9e99cb17ba16dea7dadc3a5391f5d5a4 to your computer and use it in GitHub Desktop.
Save zetavg/9e99cb17ba16dea7dadc3a5391f5d5a4 to your computer and use it in GitHub Desktop.
直書書籍用 Calibre 轉 azw3 在 Kindle 上跑版(翻頁相反、字體走位)的解決方法。

直書書籍用 Calibre 轉 azw3 在 Kindle 上跑版的解決方法

圖為修正後範例。

有些直書書籍轉成 azw3 後排版會跑掉,在 Kindle 上僅剩翻頁變相反、從左到右的(因為原本是直書呀)。這裡是一些解決方法。

首先對要修正的書按右鍵選編輯,然後選 AZW3

1. 直書變橫書

開啟主要的 css 檔(通常是內容最多的那個),加上

body {
  -webkit-writing-mode: vertical-rl;
  -epub-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
}

然後打開 content.opf (或 metadata.opf),確保裡面有:

<dc:language>zh-tw</dc:language><dc:language>zho</dc:language>

以及

<meta name="primary-writing-mode" content="vertical-rl" />

<spine toc="ncx" page-progression-direction="rtl">

這三行,如果不一樣就改一下。

2. 直書的標點符號歪掉

(如右圖一)發現強制指定字體可以解決(如右圖二)。

首先,在主要的 css 檔裡加入 Kindle 內建字體定義。

@font-face {
  font-family: "宋體繁";
  src: local("STSongTC");
}
@font-face {
  font-family: "黑體繁";
  src: local("STHeitiTC");
}
@font-face {
  font-family: "楷體繁";
  src: local("STKaitiTC");
}
@font-face {
  font-family: "圓體繁";
  src: local("STYuanTC");
}
@font-face {
  font-family: "宋体簡";
  src: local("STSong");
}
@font-face {
  font-family: "黑体簡";
  src: local("STHeiti");
}
@font-face {
  font-family: "楷体簡";
  src: local("STKai");
}
@font-face {
  font-family: "圆体簡";
  src: local("STYuan");
}
@font-face {
  font-family: "明朝";
  src: local("TBMincho");
}
@font-face {
  font-family: "ゴシック";
  src: local("TBGothic");
}
@font-face {
  font-family: "筑紫明朝";
  src: local("TsukushiMincho");
}

然後依喜好加入全域樣式:

body, p {
  font-family: "宋體繁";
}

h1, h2, h3, h4, h5, h6 {
  font-family: "黑體繁";
}

blockquote, blockquote p {
  font-family: "楷體繁";
}

以及、或是,若有影響,把所有 font-family: ... serif ...; 換成 font-family: "宋體繁";font-family: ... sans-serif ...; 換成 font-family: "黑體繁";

如果 "宋體繁""黑體繁" 後面接了 serifsans-serif 也可能導致標點符號跑掉。


參考資料

補充

@lavline
Copy link

lavline commented Jun 14, 2022

你好,请问下当我把显示和翻页都改成左到右时,每次翻页都会进入下一章节,这是什么原因。修改了所有vertical-rl为vertical-lr,page-progression-direction="rtl"调整为page-progression-direction="ltr".翻页是点击右侧翻页,会直接到下一章节,并不是正常的下一页。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment