#はじめに
これまでLaTeXで書いた資料をPDFにして配布したりしていたのですが、わけあってkindle本にすることになったので、調べてやってみたメモです。
参考記事
半ばあきらめていたところで、以下の記事により復活しました。感謝いたします。
準備
参考記事の内容と重複しますが、必要となるツールのインストール記録です。
LaTeXからkindle本を作るために、htmlに変換するのですが、そのためにはやはりTeXシステム一式が必要となります。インストールの仕方は色々なサイトで紹介されているので省略します。すでにインストールしている人は飛ばして結構です。
- helpers4htのインストール
LaTeXからhtmlに変換するtex4htはTeX一式の中に入っていますが、足りないファイルがあるそうなので、helpers4htをインストールします。
インストールの手順には、
cd `kpsewhich -var-value TEXMFHOME`
mkdir -p tex/latex
cd tex/latex
git clone git@github.com:michal-h21/helpers4ht.git
とありますが、Windowsの場合、
kpsewhich -var-value TEXMFHOME
でフォルダを確認した上で、さらにその下にtex\latex
フォルダを作って、Download ZIPで取ってきたhelpers4ht一式をコピーします。
#LaTeX原稿の修正
tex4htではpLaTeXではなく、LuaLaTeXを使うので、プリアンブルの書き方が若干違います。なので、通常のLaTeX用のtexファイルとは別にkindle作成用のtexファイルを作っておくとよいでしょう。
以下は私がkindle用に修正した点です。TeXの書き方は人それぞれなので、必ずしもこうする必要はありません。
-
漢字コードはutf-8に
-
プリアンブルを以下のように修正(jがつくクラスは使えないので注意)
\documentclass{book}
\usepackage{alternative4ht}
\altusepackage{fontspec}
\altusepackage{xeCJK}
\altusepackage{xunicode}
\setCJKmainfont{IPAMincho}
- インデントしない(zwの単位は使えない)
\parindent=0pt
-
equation環境は使わず、eqnarray環境を使う
-
数式を左寄せにして式番号を付ける
\documentclass[fleqn]{book}
\mathindent=45mm
数式はpngファイルに変換されるのですが、数式の位置によって表示サイズが変わったりしたので、数式の環境と式の始まりから式番号までの幅を同じにして何とか凌ぎました。
- graphicのスケールをpdf用とkindle用で変える
図のスケールをpdfに合わせておくと、kindleに変換したときにかなり小さくなってしまいます。そこで、図の倍率をpdf用とkindle用で変えられるようにfp
というパッケージを使いました。
\usepackage{fp}
そして、倍率を表すmult
という定数を使って、pdf用は、
\def\mult{1}
kindle用は、
\def\mult{3}
と変えておきます。そして、図を挿入するところで、
def\gscale{0.5}
\FPmul{\gscale}{\gscale}{\mult}
\includegraphics[scale=\gscale]{figure.png}
のようにgscale
をmult
倍して渡すと、kindle用だと3倍の大きさにすることができます。
なお、最後にkindle本にするときに、サブフォルダ上のファイルは認識されないようなでの、図のファイルはサブフォルダに分けないで、texと同じフォルダに入れておきます。
- 数式のサイズ調整
図と同じくpngに変換される数式のサイズが小さいので、
C:\w32tex\share\texmf-dist\tex4ht\base\win32\tex4ht.env を編集します。
<dvipng>
G.png
%echo "dbg: got to dvi to png via (dvipng)"
Gdvipng -T tight -D 144 -bg Transparent -pp %%2:%%2 %%1 -o %%3
の部分の-D 144
を -D 288
に変えてみます。このサイズだと、解像度が低い端末ではかなり大きい数式になりますが、解像度が高い端末だとちょうどよいサイズとなります。
htmlへ変換
make4htというコマンドを
make4ht -l -d dist main.tex
のように実行すると、main.texをhtmlに変換します。ここで、オプションの-l
は、LuaLaTeXを使うことを、-d
は出力ファイル一式をdist
というフォルダにコピーすることを意味します。
ここで注意ですが、このコマンドは一時的なファイルを頻繁に作ったり削除したりするので、クラウドと同期したフォルダ上で実行すると、アクセス違反が起こってうまく変換できないことがあります。
#kindle本の作成
変換されたhtmlファイル一式をzipファイルにしてKDP(Kindle Direct Publishing)にアップロードすればkindle本の完成です。
出版前に内容を確認するためには、KDPの「Kindle 本のプレビュー」でダウンロード版プレビューアーのオプション「コンピューター上でプレビュー」を選んで、Mobiファイルをダウンロードします。これをPCやタブレットのKindleフォルダにコピーしてkindleアプリで確認します。
#おわりに
今回わけあってkindle本を作りましたが、LaTeXは普通にPDFファイルにした方が明らかに見た目がきれいです。kindle本は図形(LaTeXの数式も)のサイズが端末の解像度で決まってしまいます。文字のサイズは変えられるのに、図形サイズが変えられないのは残念なところです。今後の改善に期待します。
#ちなみに
上記の方法で作成したkindle本です。