背景 |
理系書籍には式や表や図が多く、これを電子書籍に変換するのは大変な作業が必要でした。実際に前回はもともとTeXで作っていたものをWordに入れ直して、大変な調整作業をしてようやく出版にこぎ着けました。
しかしあれから2年経ってようやく割と簡単に、満足できる品質で理系書籍を電子出版できるようになりました。夢が叶いました。ここではその方法についてまとめます。あちこちで地道にソフトを開発し続けてくださっている多くの方々に感謝します。
この記事は2016年4月時点で書かれています。
準備 |
次にalternative4ht.styというのを入れる必要がありました。これは下記にありました。
helpers4ht これをInstallationにしたがって、まずkpsewhich -var-value TEXMFHOMEをcmdでやってみると、メタフォントのディレクトリがでてきますので、その下にtex/latexというのを作ってあげます。
C:\Users\otabe\texmf\tex\latexみたいになります。ここにDownload ZIPで全てのファイルを落としてきて、ファイルを展開して入れて置きます。
Kindle for PCが日本でも使えるようになりました。これもここ2年での変化です。これを入れて置きましょう。ダウンロードしたmobiファイルをプレビューすることができます。
TeX原稿からHTMLを作る |
TeXの原稿では次の様に書きます。
\documentclass{report}
\usepackage{alternative4ht}
\altusepackage{fontspec}
\altusepackage{xeCJK}
\altusepackage{xunicode}
\setCJKmainfont{IPAMincho}
\begin{document}
中身
\end{document}
ファイルはutf-8で準備します。EUCとかSJISとか言っていた時代がとおく感じます。pTeXは使わず、TeX4ebookのパッケージ機能を利用してfontspecを使うようです。これを
make4ht -l -d distination book.tex
というようにしてcmdから実行すると、book.htmlができます。-lはlulatexを使うということです。-d はdistinationというディレクトリを作って、そこに必要なフィアルをコピーしてくれます。
このdistinationの中のbook.htmlではいろいろと素晴らしい変換がされています。
Kindle Direct Publishingで出版 |

ちなみにスマホだとまだまだ式の大きさが小さいようでした。
アレンジしたい |
LaTeXをウェブに載せよう tex4htの使い方 が大変役に立ちました。
\documentclass{report}
% make4htの時には下記の分が必要
%\usepackage{alternative4ht}
%\altusepackage{fontspec}
%\altusepackage{xeCJK}
%\altusepackage{xunicode}
%\setCJKmainfont{IPAMincho}
% platexの時には下記を追加して\HCodeを無効化する
\def\HCode#1{}
\begin{document}
中身
\end{document}
まとめ |
結局準備としてはTeXとstyleファイルとKindle for PCくらいですむので、楽です。またコンパイルもmake4htを使うので、一発です。pngを作るので、すごく時間がかかるかも知れませんけど。
品質もまあ満足できるものになっています。課題としては目次が完全では無いので、なんとかしたところですが、まあ実用上はそこまで問題ないでしょう。本当はpngではなくてsvgを利用して、MathMLのようにきれいな数式で拡大自由自在になるといいのですが、それはまた数年先ということにして、期待しましょう。今回は本当に満足しました。
電子書籍のメリットを大いに享受したいところです。マークやコメントをつけたり、自由に検索したり、URLを埋め込むこともできますね。ぜひ、理系書籍をどんどん電子書籍にしていきましょう。
リンク先 |
追記(2026/4/15) |
結論としてalternative4ht.styが要らなかったです。したがって、make4htを使うに当たってのプリアンブルの部分は下記になりました。あと日本語化をちょっとだけしました。
\documentclass{report}
\usepackage{fontspec}
\usepackage{xeCJK}
\setCJKmainfont{IPAMincho}
% 日本語化
\renewcommand{\contentsname}{目次}
\renewcommand{\figurename}{図}
\renewcommand{\tablename}{表}
以上です。あとは補足です。生成AIが発展しているのでもちろん生成AIを使っていろいろとやったのですが、あまりうまく行きませんでした。本当はjreport.styのようにしたかったのですが、結局完全にはできませんでした。ここではChapter 1のようにでます。生成AIはこのパッケージを使えとか、マクロを書いてあげるとかいろいろと提案するのですが、悉くだめでした。そうそう、SVGを使ってやりましょうということでdvisvgmを使うというのも提案してくれたのですが、よく分かりませんでした。ということで更に数式をキレイにするのはお預けです。