見出し画像

【2025年最新】でんでんコンバーター縦書きで左右(行方向)に中央寄せにする方法


Kindle で初めて小説を出版した際、お世話になったのが、でんでんコンバーターです。
でんでんコンバーターは、オンライン上で無料で利用できる EPUB 制作ツールです。
用意したテキストデータや画像をアップロードすると、
EPUB という電子書籍のファイル形式に簡単に変換してくれます。
今更ぐだぐだ説明するのも馬鹿らしいくらい Kindle 出版界隈では有名なツールです。

今回は、そのでんでんコンバーターを使って、縦書きで左右(行方向)に中央寄せにする方法を紹介したいと思います。
実は、4、5年前に同じような記事を書いたのですが、古くなって、今ではうまくいかなくなりました。
改めて検証した結果、うまくいく方法が見つかったので記事にしたいと思います。
いろいろと試してみたところ、縦書きのまま左右に中央寄せしようとすると、どれもうまくいきませんでした。

✕ margin: 0 auto;
✕ position: absolute; 関連(position: relative; と組み合わせたり、transform: translateX を使ってもダメ)
✕ display: flex;display: grid;
(あくまでも私個人の検証です)

検証する際、epub ファイルを分解して、xhtml ファイルを Chrome でプレビューして、デベロッパーツールで確認しました。
(他にもっとよい検証方法を知らないので)
その際、気をつけなければいけないのは、でんでんエディターや Chrome のプレビューでうまくいっても
Kindle Previewer 3 (ダウンロード版)や KDP のオンライン プレビューアーで失敗することが多いことです。
私も何度もぬか喜びに終わってがっかりしました(笑)

結論

ちょっと前置きが長くなってしまいました。先に結論を言っておきます。
以下の コードにすると、Kindle Previewer 3 や KDP のオンライン プレビューアーでもうまくいきました。
例、01.txt(自分でファイルを作る)

<div class="middle">
  <div class="title">タイトル</div>
</div>

例、default_vertical.css(ダウンロードする必要がある) の一番下に以下を追加

.middle {
  -epub-writing-mode: horizontal-tb;
  text-align: center;
  width: 100%;
}
.title {
  -epub-writing-mode: vertical-rl;
  display: inline-block;
  font-size: 1.2em;        /* ここでフォントサイズを調整 */
  text-indent: 1em;        /* ここで字下げを調整 */
}


KDP のオンライン プレビューアーで表示させたあと、 画像編集ソフトで表示領域の 50% のところに垂直のガイドラインを引いてみると、ぴったりでした。

イメージとしては、縦書き用をいったん横書きに戻して、
text-align: center; で中央寄せにして、そのあとでテキストだけ縦書き用にする感じです。
default_vertical.css はでんでんコンバーターのホームページ
https://conv.denshochan.com/   へ行って
メニューバーの「Downloads」→「スタイルシート」の「default_20130214.zip」をダウンロード。
解凍すると、フォルダーの中に縦書き用の default_vertical.css があると思います。
CSS のセレクターには優先度などの細かいルールがあるので、
自前の追加コードは、default_vertical.css の最後のほうでまとめて記述するようにしてください。
(アップロードする際は、default_vertical.css も忘れずに!)

フォントサイズは、CSS の .title クラスの font-size: 1.2em; で調整してください。
字下げは、CSS の .title クラスの text-indent: 1em; で調整してください。
text-indent: 1em; の代わりに、margin-top: 1em; を使ってもオッケーだと思います)
ちなみに一般的なブラウザのデフォルトフォントサイズは 16px が基準になっています。
html  {  font-size: 16px;  }  です。
でんでんコンバーターでもそこはいじっていないようなので、
上記の例で Chrome のデベロッパーツールで確認した場合、
フォントサイズは、16  x  1.2  =  19.2px、
字下げは、19.2  x  1  =  19.2px(1文字分)になるはずです。

問題なさそうです。

縦横(上下左右)中央寄せ

字下げではなく、縦横(上下左右)中央寄せにしたい場合は、
まず .title クラスの中の text-indent: 1em; を削除してから、
.middle クラスの中に margin: auto; を追記してください。
margin: auto 0; でもオッケーです)

.middle {
  -epub-writing-mode: horizontal-tb;
  text-align: center;
  width: 100%;
  margin: auto;    /* これを追記 */
}
.title {
  -epub-writing-mode: vertical-rl;
  display: inline-block;
  font-size: 1.2em;
}


こちらもうまく縦横中央寄せになっているようです。

リンクつきの目次に表示させる

最後に 01.txt のテキストデータについても簡単に触れておこうと思います。

<div class="middle">
  <div class="title">タイトル</div>
</div>

title と名をつけたクラス属性のある div を h1 、h2 .. などにすると、タイトルが Kindle 本 の目次に自動で追加されるようになります。そのタイトルをクリックすると、左右中央寄せにしたページに飛んでいくようになります。

例、01.txt

<div class="middle">
  <h1 class="title">タイトル</h1>
</div>

(default_vertical.css のほうは変更しなくても大丈夫です)
一つの表題しかない本の場合は、無理に目次に載せる必要はないかもしれませんが、短編集のそれぞれのタイトルや章などの場合は、好みに応じて h1 、h2 .. などを使って目次に表示させて、そこからそのページに飛べるようにしてもいいかもしれません。

以上です。興味ある方はよかったら試してみてください。


いいなと思ったら応援しよう!