KDP(電子出版)のメモ 急急如律令

Amazon Kindleダイレクト・パブリッシングでの電子出版や電子書籍の作成販売について、文章やイラストの作成や編集方法について書いています。

AozoraEpub3の見出しのバグ内容

AozoraEpub3で見出しを

タグで囲わないようにする。

タグの中に

タグがある

見出し部分をh1に変更したのでその影響がどのあたりにあるか

github.com

www.ne.jp

SVG表紙コマンドラインから有効化

twitterでみたけど、違う気がする。 GUI起動して、SVG表紙生成を選んでから、コマンドラインからiniを指定したら行けるのでは。 「SVG表紙生成」機能の追加 github.com

レコーディングスタジオで使われているヘッドホンの音をエミュレート

自分の持っているイヤホンを違うイヤホンの音にできれば面白いかなと思ってやってみた。

レコーディングスタジオの映像を見るたびに、SONYのMDR-CD900STが写っていることがある。どんな音なのかが気になったので特性データを見てみた。

github.com

ハーマンカーブに近いけどやや低音が下がっている感じがする。

autoeqの補正データを反転

Sony MDR-CD900ST ParametricEQ.txtを15bandPEQからimportしてからinverseで反転させる。

MDR-CD900ST inverse
autoeqの補正データを反転すると、手持ちのイヤホンやヘッドホンを任意のイヤホンやヘッドホンの音に近づけれる。

ヘッドホンの音をエミュレート

MDR-CD900STの特性に近づけると、低音が下がっているので聞き疲れがしにくい音。ただ、それ以外はハーマンカーブより音がぼやけた感じがする。ただ人の声だけは明瞭に聞こえる。

ここでしたヘッドホンの音をエミュレートは実際のヘッドホンの音に近いかどうかは、実物と比べてみないとわからない。

補正の手順

まず、手持ちのイヤホンをautoeqで補正、ターゲットのヘッドホンの補正データを反転して加える。

peq-inverter PEQ設定を反転するhtmlとjsのプログラム

使い方 AutoEqのParametricEqの反転させる。 ParametricEQ.txtのファイルを「ファイル選択」で読み込み「反転設定を保存」でダウンロードされる。

kyukyunyorituryo.github.io

autoeqで補正は過去記事から

99nyorituryo.hatenablog.com

6月19日から6月25日までキンドル新刊ピックアップ

6月19日発売の本

まじょのぼうし

まじょのぼうし

Amazon

6月19日発売のそのほかの本 kyukyunyorituryo.github.io

6月20日発売の本

6月20日発売のそのほかの本 kyukyunyorituryo.github.io

6月21日発売の本

6月21日発売のそのほかの本 kyukyunyorituryo.github.io

6月22日発売の本

6月22日発売のそのほかの本 kyukyunyorituryo.github.io

6月23日発売の本

MASTER OF CUBASE 14

MASTER OF CUBASE 14

Amazon

6月23日発売のそのほかの本 kyukyunyorituryo.github.io

6月24日発売の本

6月24日発売のそのほかの本 kyukyunyorituryo.github.io

6月25日発売の本

Blenderリギング

Blenderリギング

Amazon

6月25日発売のそのほかの本 kyukyunyorituryo.github.io

IT技術書向けのEPUB作成ソフトはなにかあるか

IT技術書向けのEPUB作成ソフトはなにかあるか気になって、知りたいことをChatGPTにきいて自分が書いたAozoraEpub3関連が出てきたときに、自分以外書いたものが知りたいのだと思うしかなかった。

AozoraEpub3はcodeタグやpreタグが使いづらいのでIT技術書には向かないかなと思っている。

その他に次のものが紹介されていた。。 Re:VIEW、Pandoc 、mdBook、Asciidoctor、Calibre、GitBook、Pressbooks、Scrivener

国内のEPUBを受け付けている、電子書籍販売サイトでの対応状況はよくわからない。電書協ベースなら行けそうだけど、電書協は縦書きの小説と漫画がメインなEPUBなのでその他の仕様がよくわからない。

rubyじゃなくてnode.jsで動くものでないかなと気になった。GitBookの派生したHonKitも気になったので調べてみた。ブラウザ上で動作するEPUB作成ツールがあれば初心者向けにはいいのかもしれない。データ量が増えると処理が重くなって使いづらそうだけど

あなた:

IT技術書向けのEPUB作成ソフトはなにかある

ChatGPT:

IT技術書向けのEPUB作成に適したソフト・ツールには以下のようなものがあります。それぞれ特徴が異なるため、目的や作成スタイルに応じて選ぶとよいです。

  • 概要: 技術書典などで人気の「技術書」を執筆・出版するための文書フォーマット。
  • 出力形式: EPUB / PDF / HTML / Kindleなど
  • 特徴:

Markdownに似た構文。

複数章・索引・脚注・数式など、技術書向けの構造をサポート。

技術書典の公式推奨。 - Markdownに似た構文。 - 複数章・索引・脚注・数式など、技術書向けの構造をサポート。 - 技術書典の公式推奨。 - 使用例: GitHubやCIと連携して自動でEPUB生成も可能。 - URL: https://github.com/kmuto/review

概要: 技術書典などで人気の「技術書」を執筆・出版するための文書フォーマット。

出力形式: EPUB / PDF / HTML / Kindleなど

特徴:

  • Markdownに似た構文。
  • 複数章・索引・脚注・数式など、技術書向けの構造をサポート。
  • 技術書典の公式推奨。

Markdownに似た構文。

複数章・索引・脚注・数式など、技術書向けの構造をサポート。

技術書典の公式推奨。

使用例: GitHubやCIと連携して自動でEPUB生成も可能。

URL: https://github.com/kmuto/review

  • 概要: Rust公式ドキュメントにも使われているMarkdownベースのドキュメントビルダー。
  • 出力形式: HTMLが中心だが、プラグインやPandocと組み合わせることでEPUB化も可能。
  • 特徴:

見出し、ナビゲーション、検索機能などが整っている。

Markdownで簡単に執筆。 - 見出し、ナビゲーション、検索機能などが整っている。 - Markdownで簡単に執筆。 - URL: https://rust-lang.github.io/mdBook/

概要: Rust公式ドキュメントにも使われているMarkdownベースのドキュメントビルダー。

出力形式: HTMLが中心だが、プラグインやPandocと組み合わせることでEPUB化も可能。

特徴:

  • 見出し、ナビゲーション、検索機能などが整っている。
  • Markdownで簡単に執筆。

見出し、ナビゲーション、検索機能などが整っている。

Markdownで簡単に執筆。

URL: https://rust-lang.github.io/mdBook/

  • 概要: 文書フォーマット変換ツールの定番。
  • 出力形式: Markdown → EPUB / PDF / DOCX など多数対応。
  • 特徴:

Markdownで執筆 → コマンド1つでEPUB出力。

CSSや表紙画像などの設定も可能。 - Markdownで執筆 → コマンド1つでEPUB出力。 - CSSや表紙画像などの設定も可能。 - URL: https://pandoc.org/

概要: 文書フォーマット変換ツールの定番。

出力形式: Markdown → EPUB / PDF / DOCX など多数対応。

特徴:

  • Markdownで執筆 → コマンド1つでEPUB出力。
  • CSSや表紙画像などの設定も可能。

Markdownで執筆 → コマンド1つでEPUB出力。

CSSや表紙画像などの設定も可能。

URL: https://pandoc.org/

  • 概要: AsciiDocを使って文書作成するためのツール。
  • 出力形式: HTML / PDF / EPUB3
  • 特徴:

Re:VIEWより柔軟な構文。

CLIだけでなく、GradleやRubyとも相性が良い。 - Re:VIEWより柔軟な構文。 - CLIだけでなく、GradleやRubyとも相性が良い。 - URL: https://asciidoctor.org/

概要: AsciiDocを使って文書作成するためのツール。

出力形式: HTML / PDF / EPUB3

特徴:

  • Re:VIEWより柔軟な構文。
  • CLIだけでなく、GradleやRubyとも相性が良い。

Re:VIEWより柔軟な構文。

CLIだけでなく、GradleやRubyとも相性が良い。

URL: https://asciidoctor.org/

  • 概要: 電子書籍の変換・管理ソフト。
  • 出力形式: EPUB / MOBI / AZW3 / PDFなど
  • 特徴:

既存のWordやPDF、HTMLをEPUBに変換。

編集機能も備えている。 - 既存のWordやPDF、HTMLをEPUBに変換。 - 編集機能も備えている。 - URL: https://calibre-ebook.com/

概要: 電子書籍の変換・管理ソフト。

出力形式: EPUB / MOBI / AZW3 / PDFなど

特徴:

  • 既存のWordやPDF、HTMLをEPUBに変換。
  • 編集機能も備えている。

既存のWordやPDF、HTMLをEPUBに変換。

編集機能も備えている。

URL: https://calibre-ebook.com/

用途 おすすめツール
技術書典などに出す本 Re:VIEW
軽量・簡単な技術メモ Pandoc / mdBook
デザイン自由度を重視 Asciidoctor
GUIでの操作がしたい Calibre
自動ビルドやCI連携 Re:VIEW + GitHub Actions や Pandoc
  • コードブロックの整形(フォントや背景色)
  • 数式(MathMLまたは画像)
  • ナビゲーション(目次、内部リンク)
  • フォントやルビなどの装飾

コードブロックの整形(フォントや背景色)

数式(MathMLまたは画像)

ナビゲーション(目次、内部リンク)

フォントやルビなどの装飾

必要であれば、Re:VIEWやPandocを使った具体的なEPUBビルド手順も案内できます。興味ありますか?

あなた:

bookwalkerでの表示に対応しているものに限定して

ChatGPT:

BookWalker での表示にしっかり対応している EPUB 作成ツールに限定すると、以下の 2つが特に現実的かつ信頼性が高いです:

  • 特徴:

元々は青空文庫向けだが、日本語縦書き・ルビ・画像配置・目次など、日本の電子書籍ストア(BookWalker含む)での表示に最適化されている。

拡張版(電書協仕様対応版)を使えば、電書協EPUBガイドライン(Ver 1.1/1.2)に準拠した出力ができる。 - 元々は青空文庫向けだが、日本語縦書き・ルビ・画像配置・目次など、日本の電子書籍ストア(BookWalker含む)での表示に最適化されている。 - 拡張版(電書協仕様対応版)を使えば、電書協EPUBガイドライン(Ver 1.1/1.2)に準拠した出力ができる。 - 対応内容:

電書協ガイドラインに準拠(BookWalker公式仕様に準拠)

ルビ、縦書き、禁則処理、目次、カバー画像、著者情報、奥付、フォント埋め込み(任意) - 電書協ガイドラインに準拠(BookWalker公式仕様に準拠) - ルビ、縦書き、禁則処理、目次、カバー画像、著者情報、奥付、フォント埋め込み(任意) - 拡張版URL: https://w.atwiki.jp/hmdev/ - 入力形式:

青空文庫形式テキスト or XHTMLテンプレート - 青空文庫形式テキスト or XHTMLテンプレート

特徴:

  • 元々は青空文庫向けだが、日本語縦書き・ルビ・画像配置・目次など、日本の電子書籍ストア(BookWalker含む)での表示に最適化されている。
  • 拡張版(電書協仕様対応版)を使えば、電書協EPUBガイドライン(Ver 1.1/1.2)に準拠した出力ができる。

元々は青空文庫向けだが、日本語縦書き・ルビ・画像配置・目次など、日本の電子書籍ストア(BookWalker含む)での表示に最適化されている。

拡張版(電書協仕様対応版)を使えば、電書協EPUBガイドライン(Ver 1.1/1.2)に準拠した出力ができる。

対応内容:

  • 電書協ガイドラインに準拠(BookWalker公式仕様に準拠)
  • ルビ、縦書き、禁則処理、目次、カバー画像、著者情報、奥付、フォント埋め込み(任意)

電書協ガイドラインに準拠(BookWalker公式仕様に準拠)

ルビ、縦書き、禁則処理、目次、カバー画像、著者情報、奥付、フォント埋め込み(任意)

拡張版URL: https://w.atwiki.jp/hmdev/

入力形式:

  • 青空文庫形式テキスト or XHTMLテンプレート

青空文庫形式テキスト or XHTMLテンプレート

  • 特徴:

技術書向けマークアップ。Re:VIEW EPUB Builderを使うことで、BookWalker向けのEPUB出力に対応。

電書協EPUBガイドラインに対応した設定が可能。 - 技術書向けマークアップ。Re:VIEW EPUB Builderを使うことで、BookWalker向けのEPUB出力に対応。 - 電書協EPUBガイドラインに対応した設定が可能。 - 対応内容:

目次、縦書き対応(設定次第)、ルビ、コードブロック、索引などを含むEPUB。

カスタムCSSを使ってBookWalker向けのレイアウト最適化も可能。 - 目次、縦書き対応(設定次第)、ルビ、コードブロック、索引などを含むEPUB。 - カスタムCSSを使ってBookWalker向けのレイアウト最適化も可能。 - 関連プロジェクト:

review-epubmaker(Re:VIEW公式)

review-template-ja - review-epubmaker(Re:VIEW公式) - review-template-ja - 入力形式:

Re:VIEW形式(.re、.txt類似構文) - Re:VIEW形式(.re、.txt類似構文)

特徴:

  • 技術書向けマークアップ。Re:VIEW EPUB Builderを使うことで、BookWalker向けのEPUB出力に対応。
  • 電書協EPUBガイドラインに対応した設定が可能。

技術書向けマークアップ。Re:VIEW EPUB Builderを使うことで、BookWalker向けのEPUB出力に対応。

電書協EPUBガイドラインに対応した設定が可能。

対応内容:

  • 目次、縦書き対応(設定次第)、ルビ、コードブロック、索引などを含むEPUB。
  • カスタムCSSを使ってBookWalker向けのレイアウト最適化も可能。

目次、縦書き対応(設定次第)、ルビ、コードブロック、索引などを含むEPUB。

カスタムCSSを使ってBookWalker向けのレイアウト最適化も可能。

関連プロジェクト:

  • review-epubmaker(Re:VIEW公式)
  • review-template-ja

review-epubmaker(Re:VIEW公式)

review-template-ja

入力形式:

  • Re:VIEW形式(.re、.txt類似構文)

Re:VIEW形式(.re、.txt類似構文)

  • Pandoc や mdBook でも EPUB 作成はできますが:

CSSや構造を手動調整しないと、日本語縦書きやルビに非対応。

そのままでは BookWalkerのEPUB検証ツールで弾かれる可能性が高い。 - CSSや構造を手動調整しないと、日本語縦書きやルビに非対応。 - そのままでは BookWalkerのEPUB検証ツールで弾かれる可能性が高い。

Pandoc や mdBook でも EPUB 作成はできますが:

  • CSSや構造を手動調整しないと、日本語縦書きやルビに非対応。
  • そのままでは BookWalkerのEPUB検証ツールで弾かれる可能性が高い。

CSSや構造を手動調整しないと、日本語縦書きやルビに非対応。

そのままでは BookWalkerのEPUB検証ツールで弾かれる可能性が高い。

ツール名 BookWalker対応度 推奨用途 入力形式
AozoraEpub3(拡張) ◎(実績多数) 小説・技術書混在OK 青空文庫テキスト or XHTML
Re:VIEW + 拡張 ◎(技術書典などで実績) 技術書・同人技術本に最適 Re:VIEW記法(.re)

必要なら、Re:VIEW や AozoraEpub3(拡張版)でのEPUB作成手順も案内できます。どちらか選んでいただければ、サンプル付きでご説明可能です。

あなた:

英語圏で主に使われているのは

ChatGPT:

英語圏で主に使われているEPUB作成ツール(特に技術書やプロフェッショナルな用途)には、以下のようなものがあります。これらはBookWalker向けではなく、Kindle、Apple Books、Kobo、Google Play Booksなど英語圏の主要プラットフォームをターゲットにしています。

  • 特徴: 最も広く使われる文書変換ツール。Markdown → EPUB 変換が可能。
  • 対応: EPUB 2 / EPUB 3 対応。CSSカスタマイズ可能。
  • 用途:

技術ブログ、ホワイトペーパー、技術書の初稿など。 - 技術ブログ、ホワイトペーパー、技術書の初稿など。 - 備考:

数式、コードブロック、画像、目次などに対応。

EPUB作成には追加のカスタマイズが必要なことがある。 - 数式、コードブロック、画像、目次などに対応。 - EPUB作成には追加のカスタマイズが必要なことがある。 - 公式: https://pandoc.org/

特徴: 最も広く使われる文書変換ツール。Markdown → EPUB 変換が可能。

対応: EPUB 2 / EPUB 3 対応。CSSカスタマイズ可能。

用途:

  • 技術ブログ、ホワイトペーパー、技術書の初稿など。

技術ブログ、ホワイトペーパー、技術書の初稿など。

備考:

  • 数式、コードブロック、画像、目次などに対応。
  • EPUB作成には追加のカスタマイズが必要なことがある。

数式、コードブロック、画像、目次などに対応。

EPUB作成には追加のカスタマイズが必要なことがある。

公式: https://pandoc.org/

  • 特徴: 英語圏の開発者に人気。シンプルな構文で高機能な文書が作れる。
  • 対応: asciidoctor-epub3 でEPUB 3を生成可能。
  • 用途:

開発ドキュメント、プログラマ向け書籍(O’Reilly Media等)。 - 開発ドキュメント、プログラマ向け書籍(O’Reilly Media等)。 - 備考:

Markdownよりも構造化された文書向け。 - Markdownよりも構造化された文書向け。 - 公式: https://asciidoctor.org/

特徴: 英語圏の開発者に人気。シンプルな構文で高機能な文書が作れる。

対応: asciidoctor-epub3 でEPUB 3を生成可能。

用途:

  • 開発ドキュメント、プログラマ向け書籍(O’Reilly Media等)。

開発ドキュメント、プログラマ向け書籍(O’Reilly Media等)。

備考:

  • Markdownよりも構造化された文書向け。

Markdownよりも構造化された文書向け。

公式: https://asciidoctor.org/

  • 特徴: Webベースのドキュメンテーションプラットフォーム。EPUBエクスポートあり(Pro版)。
  • 用途:

プロダクトマニュアル、APIドキュメント、チーム内技術資料。 - プロダクトマニュアル、APIドキュメント、チーム内技術資料。 - 備考:

デザインが美しい。HTMLベースでの配信が主流になっており、EPUB出力は補助的。 - デザインが美しい。HTMLベースでの配信が主流になっており、EPUB出力は補助的。 - 公式: https://www.gitbook.com/

特徴: Webベースのドキュメンテーションプラットフォーム。EPUBエクスポートあり(Pro版)。

用途:

  • プロダクトマニュアル、APIドキュメント、チーム内技術資料。

プロダクトマニュアル、APIドキュメント、チーム内技術資料。

備考:

  • デザインが美しい。HTMLベースでの配信が主流になっており、EPUB出力は補助的。

デザインが美しい。HTMLベースでの配信が主流になっており、EPUB出力は補助的。

公式: https://www.gitbook.com/

  • 特徴: 書籍執筆向けのWebアプリ(WordPressベース)。
  • 用途:

教育機関や出版社がEPUBやPDFを作成するのに利用。 - 教育機関や出版社がEPUBやPDFを作成するのに利用。 - 対応: EPUB 3 / PDF / MOBI / Web book - 備考:

UIベースで使いやすく、テーマ設定や章ごとの編集が可能。 - UIベースで使いやすく、テーマ設定や章ごとの編集が可能。 - 公式: https://pressbooks.com/

特徴: 書籍執筆向けのWebアプリ(WordPressベース)。

用途:

  • 教育機関や出版社がEPUBやPDFを作成するのに利用。

教育機関や出版社がEPUBやPDFを作成するのに利用。

対応: EPUB 3 / PDF / MOBI / Web book

備考:

  • UIベースで使いやすく、テーマ設定や章ごとの編集が可能。

UIベースで使いやすく、テーマ設定や章ごとの編集が可能。

公式: https://pressbooks.com/

  • 特徴: 作家・研究者向けの執筆支援ツール。EPUB出力機能あり。
  • 用途:

フィクション、ノンフィクション、論文、技術書初稿など。 - フィクション、ノンフィクション、論文、技術書初稿など。 - 対応:

EPUB 2/3、Kindle(.mobi)、PDFなどへの書き出し。 - EPUB 2/3、Kindle(.mobi)、PDFなどへの書き出し。 - 公式: https://www.literatureandlatte.com/scrivener/overview

特徴: 作家・研究者向けの執筆支援ツール。EPUB出力機能あり。

用途:

  • フィクション、ノンフィクション、論文、技術書初稿など。

フィクション、ノンフィクション、論文、技術書初稿など。

対応:

  • EPUB 2/3、Kindle(.mobi)、PDFなどへの書き出し。

EPUB 2/3、Kindle(.mobi)、PDFなどへの書き出し。

公式: https://www.literatureandlatte.com/scrivener/overview

ツール名 英語圏での技術書用途 備考
Pandoc ◎ 広範囲で使用 自動変換・CIに最適
AsciiDoctor ◎ O’Reillyなどで採用 出版にも対応
GitBook ○ ドキュメント中心 EPUB出力は補助的
Pressbooks ○ 教育・出版系 EPUB出力が前提
Scrivener △ 作家寄り 長文作成向け
ツール 対象 EPUB品質 コード・数式対応 備考
Pandoc 技術全般 Markdown → EPUB変換に最適
AsciiDoctor プログラマ・開発書籍 英語圏開発者に人気
GitBook 製品ドキュメント 美しいUI、Web配信中心
Pressbooks 教育・出版系 高等教育向けに多用
Scrivener 作家・論文 複雑な執筆工程に便利

必要であれば、Pandoc や AsciiDoctor を使った技術書向けEPUB作成の具体例も提供できます。ご希望ありますか?

あなた:

プログラミングコード色付けして表示できるものは

ChatGPT:

プログラミングコードをシンタックスハイライト付き(色付き)で表示できるEPUB作成ツールに限定すると、以下のツールが現実的かつ信頼性があります。

  • 対応: ✅ 色付きコード対応(多言語)
  • 方法: --highlight-style オプションでスタイル指定(例: tango, pygments, breezeDark など)
  • 使用例:

sh コピーする 編集する pandoc input.md -o output.epub --highlight-style=tango

  • 対応言語: Python, JavaScript, Java, C++, Ruby など数十種類
  • 補足:

EPUB内に

...
として出力され、CSSと連動。

カスタムCSSも指定可能。 - EPUB内に

...
として出力され、CSSと連動。 - カスタムCSSも指定可能。

対応: ✅ 色付きコード対応(多言語)

方法: --highlight-style オプションでスタイル指定(例: tango, pygments, breezeDark など)

使用例:

pandoc input.md -o output.epub --highlight-style=tango

対応言語: Python, JavaScript, Java, C++, Ruby など数十種類

補足:

  • EPUB内に
    ...
    として出力され、CSSと連動。
  • カスタムCSSも指定可能。

EPUB内に <pre>...</code>``</pre> として出力され、CSSと連動。

カスタムCSSも指定可能。

  • 対応: ✅ Rougeライブラリによるハイライト(Rubyベース)
  • 設定: source-highlighter=rouge を使えば、コードブロックに自動的にハイライト。
  • EPUB出力方法:

sh コピーする 編集する asciidoctor-epub3 -a source-highlighter=rouge sample.adoc

  • 対応言語: 多言語対応(公式一覧: https://rouge.jneen.net/)

対応: ✅ Rougeライブラリによるハイライト(Rubyベース)

設定: source-highlighter=rouge を使えば、コードブロックに自動的にハイライト。

EPUB出力方法:

asciidoctor-epub3 -a source-highlighter=rouge sample.adoc

対応言語: 多言語対応(公式一覧: https://rouge.jneen.net/)

  • 対応: ⚠️ シンタックスハイライトは 外部ツールとの連携で可能(デフォルトでは色なし)
  • 補足:

review-ext.rbやテンプレートをカスタマイズすれば Pygmentsやhighlight.jsなどと連携可。

電書協準拠にするには CSS調整が必須。

EPUB出力は review-epubmaker を使用。 - review-ext.rbやテンプレートをカスタマイズすれば Pygmentsやhighlight.jsなどと連携可。 - 電書協準拠にするには CSS調整が必須。 - EPUB出力は review-epubmaker を使用。 - 上級者向け

対応: ⚠️ シンタックスハイライトは 外部ツールとの連携で可能(デフォルトでは色なし)

補足:

  • review-ext.rbやテンプレートをカスタマイズすれば Pygmentsやhighlight.jsなどと連携可。
  • 電書協準拠にするには CSS調整が必須。
  • EPUB出力は review-epubmaker を使用。

review-ext.rbやテンプレートをカスタマイズすれば Pygmentsやhighlight.jsなどと連携可。

電書協準拠にするには CSS調整が必須。

EPUB出力は review-epubmaker を使用。

上級者向け

  • 対応: ✅ Web上では自動ハイライト。EPUBエクスポートでも反映されるが、Proプラン限定機能。
  • 補足:

Markdownで書くだけで色付き表示される。

ただし、Web UI中心なので開発者には不向きな場合も。 - Markdownで書くだけで色付き表示される。 - ただし、Web UI中心なので開発者には不向きな場合も。

対応: ✅ Web上では自動ハイライト。EPUBエクスポートでも反映されるが、Proプラン限定機能。

補足:

  • Markdownで書くだけで色付き表示される。
  • ただし、Web UI中心なので開発者には不向きな場合も。

Markdownで書くだけで色付き表示される。

ただし、Web UI中心なので開発者には不向きな場合も。

  • 対応: ⚠️ HTMLでは色付き可。EPUB出力には工夫が必要。
  • 補足:

mdBook自体はHTMLメイン。EPUB出力には pandoc 併用を推奨。

mdbook-pdf や mdbook-pandoc などで間接的に対応。 - mdBook自体はHTMLメイン。EPUB出力には pandoc 併用を推奨。 - mdbook-pdf や mdbook-pandoc などで間接的に対応。

対応: ⚠️ HTMLでは色付き可。EPUB出力には工夫が必要。

補足:

  • mdBook自体はHTMLメイン。EPUB出力には pandoc 併用を推奨。
  • mdbook-pdf や mdbook-pandoc などで間接的に対応。

mdBook自体はHTMLメイン。EPUB出力には pandoc 併用を推奨。

mdbook-pdf や mdbook-pandoc などで間接的に対応。

ツール 状況
AozoraEpub3 ❌ コード用の色付きなし(ルビや縦書きは得意)
Scrivener ❌ コードの色分けに非対応(装飾は可能)
Pressbooks △ CSS次第で可能(標準では未対応)
ツール コード色分け EPUB品質 コメント
Pandoc 一番簡単に色付きEPUBを作れる
Asciidoctor 高品質な構造とハイライト
Re:VIEW △(設定次第) 電書協対応可能、上級者向き
  • Markdownで書いて --highlight-style を付けるだけ。

Markdownで書いて --highlight-style を付けるだけ。

  • 技術書向けに美しく整った構造+色付きコード。

技術書向けに美しく整った構造+色付きコード。

必要であれば、Pandoc でシンタックスハイライト付きの EPUB を作る Markdown サンプルとコマンド例を提供できます。やってみますか?

あなた:

node.jsで動作するものに限定して

ChatGPT:

Node.js 環境で動作し、プログラミングコードをシンタックスハイライト付きで EPUB を作成できるツールに限定すると、候補はかなり絞られます。ただし、組み合わせ(Markdown + ハイライト + EPUB変換)で構成可能です。

以下が、Node.jsベース or Node.jsで動作可能な構成です。

  • 構成:

Markdownパーサ:markdown-it

シンタックスハイライト:highlight.js

EPUB生成:epub-gen(Node.js用EPUB出力ライブラリ) - Markdownパーサ:markdown-it - シンタックスハイライト:highlight.js - EPUB生成:epub-gen(Node.js用EPUB出力ライブラリ) - 特徴:

すべてNode.js上で完結。

コードブロックは highlight.js が HTML+スタイルを生成。

CSSを調整すれば、EPUBビューアで色付き表示可能。 - すべてNode.js上で完結。 - コードブロックは highlight.js が HTML+スタイルを生成。 - CSSを調整すれば、EPUBビューアで色付き表示可能。 - 使い方の流れ:

bash コピーする 編集する npm install markdown-it highlight.js epub-gen

サンプルコード(簡略版):

js コピーする 編集する const MarkdownIt = require('markdown-it'); const hljs = require('highlight.js'); const { Epub } = require('epub-gen');

const md = new MarkdownIt({ highlight: (str, lang) => { if (lang && hljs.getLanguage(lang)) { return <pre><code class="hljs ${lang}">${hljs.highlight(str, { language: lang }).value}</code></pre>; } return <pre><code class="hljs">${md.utils.escapeHtml(str)}</code></pre>; } });

const content = md.render(`

Sample

```javascript console.log("Hello, EPUB!"); ``` `);

new Epub({ title: "Code Highlight EPUB", author: "Your Name", content: [ { title: "Chapter 1", data: content } ], css: pre { background: #f0f0f0; padding: 1em; } code.hljs { color: #333; } .hljs-keyword { color: #0077aa; font-weight: bold; } .hljs-string { color: #dd1144; } }).promise.then(() => console.log("EPUB created!"));

  • サンプルコード(簡略版):

js コピーする 編集する const MarkdownIt = require('markdown-it'); const hljs = require('highlight.js'); const { Epub } = require('epub-gen');

const md = new MarkdownIt({ highlight: (str, lang) => { if (lang && hljs.getLanguage(lang)) { return <pre><code class="hljs ${lang}">${hljs.highlight(str, { language: lang }).value}</code></pre>; } return <pre><code class="hljs">${md.utils.escapeHtml(str)}</code></pre>; } });

const content = md.render(`

Sample

```javascript console.log("Hello, EPUB!"); ``` `);

new Epub({ title: "Code Highlight EPUB", author: "Your Name", content: [ { title: "Chapter 1", data: content } ], css: pre { background: #f0f0f0; padding: 1em; } code.hljs { color: #333; } .hljs-keyword { color: #0077aa; font-weight: bold; } .hljs-string { color: #dd1144; } }).promise.then(() => console.log("EPUB created!"));

構成:

  • Markdownパーサ:markdown-it
  • シンタックスハイライト:highlight.js
  • EPUB生成:epub-gen(Node.js用EPUB出力ライブラリ)

Markdownパーサ:markdown-it

シンタックスハイライト:highlight.js

EPUB生成:epub-gen(Node.js用EPUB出力ライブラリ)

特徴:

  • すべてNode.js上で完結。
  • コードブロックは highlight.js が HTML+スタイルを生成。
  • CSSを調整すれば、EPUBビューアで色付き表示可能。

すべてNode.js上で完結。

コードブロックは highlight.js が HTML+スタイルを生成。

CSSを調整すれば、EPUBビューアで色付き表示可能。

使い方の流れ:

npm install markdown-it highlight.js epub-gen
  • サンプルコード(簡略版):

js コピーする 編集する const MarkdownIt = require('markdown-it'); const hljs = require('highlight.js'); const { Epub } = require('epub-gen');

const md = new MarkdownIt({ highlight: (str, lang) => { if (lang && hljs.getLanguage(lang)) { return <pre><code class="hljs ${lang}">${hljs.highlight(str, { language: lang }).value}</code></pre>; } return <pre><code class="hljs">${md.utils.escapeHtml(str)}</code></pre>; } });

const content = md.render(`

Sample

```javascript console.log("Hello, EPUB!"); ``` `);

new Epub({ title: "Code Highlight EPUB", author: "Your Name", content: [ { title: "Chapter 1", data: content } ], css: pre { background: #f0f0f0; padding: 1em; } code.hljs { color: #333; } .hljs-keyword { color: #0077aa; font-weight: bold; } .hljs-string { color: #dd1144; } }).promise.then(() => console.log("EPUB created!"));

サンプルコード(簡略版):

const MarkdownIt = require('markdown-it');
const hljs = require('highlight.js');
const { Epub } = require('epub-gen');

const md = new MarkdownIt({
  highlight: (str, lang) => {
    if (lang && hljs.getLanguage(lang)) {
      return `<pre><code class="hljs ${lang}">${hljs.highlight(str, { language: lang }).value}</code></pre>`;
    }
    return `<pre><code class="hljs">${md.utils.escapeHtml(str)}</code></pre>`;
  }
});

const content = md.render(`
# Sample

\`\`\`javascript
console.log("Hello, EPUB!");
\`\`\`
`);

new Epub({
  title: "Code Highlight EPUB",
  author: "Your Name",
  content: [
    {
      title: "Chapter 1",
      data: content
    }
  ],
  css: `
    pre { background: #f0f0f0; padding: 1em; }
    code.hljs { color: #333; }
    .hljs-keyword { color: #0077aa; font-weight: bold; }
    .hljs-string { color: #dd1144; }
  `
}).promise.then(() => console.log("EPUB created!"));
  • 特徴:

Node.jsでMarkdownからEPUBを生成。

highlight.js を組み込んだテンプレートを使えば色付き可能。 - Node.jsでMarkdownからEPUBを生成。 - highlight.js を組み込んだテンプレートを使えば色付き可能。 - URL: https://www.npmjs.com/package/md-to-epub - 備考:

内部的にはHTML変換後、epub-genなどと同様の仕組み。 - 内部的にはHTML変換後、epub-genなどと同様の仕組み。

特徴:

  • Node.jsでMarkdownからEPUBを生成。
  • highlight.js を組み込んだテンプレートを使えば色付き可能。

Node.jsでMarkdownからEPUBを生成。

highlight.js を組み込んだテンプレートを使えば色付き可能。

URL: https://www.npmjs.com/package/md-to-epub

備考:

  • 内部的にはHTML変換後、epub-genなどと同様の仕組み。

内部的にはHTML変換後、epub-genなどと同様の仕組み。

ツール名 状況
Pandoc ❌ Haskell製。Node.js不可
AsciiDoctor ❌ Ruby製(Node.jsで動かせない)
Re:VIEW ❌ Ruby製
方法・ツール名 コードハイライト EPUB品質 備考
markdown-it + highlight.js + epub-gen 自由度が高く、Node.js完結
md-to-epub △(テンプレート次第) 手軽にMarkdown → EPUB
  • 上記構成で使える テンプレート、CSS例、コマンドライン化スクリプト も提供できます。
  • highlight.js のテーマ適用や、目次・カバー画像などの追加にも対応可能です。

上記構成で使える テンプレート、CSS例、コマンドライン化スクリプト も提供できます。

highlight.js のテーマ適用や、目次・カバー画像などの追加にも対応可能です。

ご希望があれば、フルサンプルのプロジェクト構成を提示しますか?

あなた:

HonKitでのEPUB作成手順

ChatGPT:

HonKit(旧 GitBook v3 互換のオープンソースクローン)を使って、コードハイライト付きのEPUBを作成する手順は以下の通りです。

  • GitBook v3 ベースの Node.js 製ドキュメントツール。
  • Markdown で記述 → HTML / EPUB / PDF / MOBI を生成。
  • highlight.js によるシンタックスハイライトがデフォルトで有効。
  • EPUB 生成は honkit epub コマンドで可能。

GitBook v3 ベースの Node.js 製ドキュメントツール。

Markdown で記述 → HTML / EPUB / PDF / MOBI を生成。

highlight.js によるシンタックスハイライトがデフォルトで有効。

EPUB 生成は honkit epub コマンドで可能。

npm install -g honkit

npx での実行も可能ですが、グローバルインストールが楽です。

mkdir mybook
cd mybook
honkit init
  • これで以下のファイルが生成されます:

css コピーする 編集する . ├── README.md ← 表紙・前書きに相当 └── SUMMARY.md ← 目次定義ファイル(章構成)

これで以下のファイルが生成されます:

.
├── README.md      ← 表紙・前書きに相当
└── SUMMARY.md     ← 目次定義ファイル(章構成)

例:chapter1.md を追加

# chapter1.md
## サンプルコード

function hello() { console.log("Hello, EPUB!"); }






# SUMMARY.md
* [はじめに](README.md)
* [第1章: サンプルコード](chapter1.md)
honkit epub ./ ./output.epub
  • ./:ソースディレクトリ
  • ./output.epub:出力ファイル

./:ソースディレクトリ

./output.epub:出力ファイル

  • output.epub が生成されます。
  • EPUBビューワ(例:Thorium Reader や Calibre)で確認可能。

output.epub が生成されます。

EPUBビューワ(例:Thorium Reader や Calibre)で確認可能。

HonKitは内部的に highlight.js を使用しているため、デフォルトでコードに色が付きます。 変更したい場合は book.json にテーマを指定するか、カスタムCSSを追加します。

例:book.json でカスタムCSSを指定する

{
  "styles": {
    "website": "styles/website.css",
    "epub": "styles/epub.css"
  }
}

styles/epub.css を作成して pre, .hljs-keyword, .hljs-string などを定義すればOK。

項目 内容
入力形式 Markdown(GitBookスタイル)
EPUB出力 honkit epub
コード色付け デフォルトで highlight.js 対応
カスタマイズ book.json と CSSで可能
OS対応 Node.jsが動作すればOK(Win/Mac/Linux)
  • テンプレート付きのスターターZip
  • カバー画像付きEPUBの作り方
  • GitHub Actionsでの自動EPUB化

テンプレート付きのスターターZip

カバー画像付きEPUBの作り方

GitHub Actionsでの自動EPUB化

…なども案内できます。必要ですか?

[blog:g:11696248318754550880:banner]

ハイレゾスピーカーは必要なのだろうか

ハイレゾ対応のDACがCX31993で検索するといっぱい出てくる。たまにアリエクで500円ぐらいで買えたりする。ハイレゾ対応イヤホンにそのまま繋げばハイレゾ環境の出来上がりだ。そこで気になるのがCX31993にアンプを繋いでスピーカー出力するとハイレゾ対応になるのかどうか。検索してもレビューがない。

安い中華アンプがD級アンプで20kHz以上をカットしてあるものが多い。ハイレゾ対応を謳ったものでも40kHz以上はカットしている。D級アンプを使うとハイレゾではなくなってしまうという問題。フルデジタルというものもある、D級アンプはアナログ信号をデジタル信号に変換してから増幅するので、デジタル信号のまま増幅すればフルデジタルアンプだね。

ハイレゾ対応を謳うものははアナログアンプが使われている。アナログアンプはアナログ信号のまま増幅するので、周波数をカットしないのでハイレゾにいいみたい。アナログアンプはD級アンプと比べて効率が悪く熱を持ちやすいので大きくなりがち。 ただ、スピーカーだけでなくスーパーツイーターも繋がないとハイレゾ対応とは言えないのではという気もする。40kHz以上出るスーパーツイーターがあるのかどうか。

パワーが必要な低音部分にD級アンプを使い、高音部分はアナログアンプを使う製品もある。

USBDAC、アナログアンプ、パッシブスピーカーをつなぐとハイレゾスピーカーの出来上がりですかね。