Sigilでepubを作ろう(1) とりあえずepubにする

epub勉強中です。

この作業の目標

  • テキストのみの小説を縦書きのepubにする
  • 表紙、中表紙、目次、奥付を作成する
  • epubリーダーソフトで読んでみる

用意するもの

注意

Sigilはepub2.0なので、以下は基本2.0の説明のはず。。

コンテンツを用意する

青空文庫から、宮沢賢治の『銀河鉄道の夜』をげっとする。
長さ、章の長さと数、ルビがなんとなくあんばいがよく、文章がほんわかしているので。(夏目漱石とか太宰治はウツになるから練習には向いていない)

テキストエディタでの作業

テキストファイル(gingatetsudono_yoru.txt)を色々加工する

  • ファイル先頭から、「タイトル」と「作者名」は削除する
  • その次の、破線から破線(「【テキスト中に現れる記号について】」など説明がある)の部分を破線混みで削除する。
  • 最後のほうの、「底本」などの部分も一旦削除する。
[#3字下げ]一、午后《ごご》の授業[#「一、午后の授業」は中見出し]

がファイルの先頭にくるようにする

以下、正規表現でタグに置き換える
正規表現は自己責任で。。)

見出し

このファイルの場合、見出しの部分は、[#3字下げ]から[#3字下げ]一、午后《ごご》の授業[#「〜〜〜」は中見出し] となっているので、そこを変換する。
今回は、作品タイトルを h1 とみなして、見出しを h2 に変換することとする。

検索

[#3字下げ](.*)[#.*]

置換

<h2>$1</h2>

$1はサクラエディタの場合。CotEditorの場合は \1 。

改行

行末($)に <br /> を入れる。

いや、段落は p だろとか、いろいろあるみたいですが、そこらへんはきりがないみたいなのでとりあえず。

ルビ

ルビを変換する。
もともとのファイルの先頭に、きっちり書いてある。

《》:ルビ
(例)云《い》われたり

|:ルビの付く文字列の始まりを特定する記号
(例)光る粒|即《すなわ》ち

検索

|*([一-龠々]+)《([ぁ-んァ-ヶー]+)》

置換

<ruby>$1<rt>$2</rt></ruby>

sigilで作業

貼り付ける

Sigilを起動すると、Section0001.htmlが開く。
「表示」を「コードビュー」に変えると、htmlみたいな中身が開く。
body から body タグの間に、先の加工したテキストをコピー&ペーストでびゃっと貼り付ける。

スペルチェックをはずす

全体的に赤い破線がでてくるが、これはスペルチェックでミスになっているから。
「ツール」「Spellcheck」「Highlight Misspelled Words」のチェックをはずすとすっきりする。

保存する

ファイル名、ginga.epub 等で「保存」する。
このときなぜか随所に p タグが入るが、そのままで。

「表示」を「ブックビュー」に切り替える。見出し、本文、ルビが確認できる。

あとは随時保存する

日本語対策

xml:lang="ja"を追加して、ついでにタイトルもいれる

変更前

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>

変更後

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<title>銀河鉄道の夜</title>
</head>
メタデータ

「ツール」の「Metadata Editor」を開いて設定する

  • タイトル
  • 著者
  • 言語
もくじ(Table Of Contents)を作る

「表示」の「目次」を開く。
「Generate Table Of Contens」をクリックする。
見出しが全部チェックがついているか確認して、「OK」をクリック。

すると目次がでてくるが、そのなかに

一、午后ごごの授業
五、天気輪てんきりんの柱
九、ジョバンニの切符きっぷ

というのがある。「午后ごご」って変だ。
これをtoc.ncx を開いて修正する。ルビの部分を削除する(あるいは元データにならってルビの部分を《》で囲む?)

<text>一、午后の授業</text>

ここにルビをいれることは出来なかった。

epubリーダーで表示してみる

ADEやReadiumを立ち上げて、表示する。
タイトル、著者名、横書き、ルビ、目次 など確認する。

うまくいったら、コピーして ginga01.epub などバックアップを作っておきませう

以後epubを更新したとき、ADEやReadiumで更新されないときは、一度削除して開きなおす。