Top / TeX 縦書き
TeX 縦書き

Last update on 2009-12-20 (日) 00:18:23 (264d) | 編集 | 凍結 | 複製 | 名前変更 | 差分 | バックアップ | 添付

TeXで日本語縦書きをして小説を書けたらページデザインが美しいだろうと思ったのです。
あれこれと試行錯誤を重ねたので、長めのページになりました。少しでもご参考になれば幸いです。

縦書き用のスタイルファイルを取得する

縦書きのために便利なスタイルファイルがいくつか存在する。私が利用しているのは Fujita Shinsaku TeX/LaTeX Page から適当に頂いてます。
具体的には

furikana.sty, tnamisen.sty, tsayusen.sty, tundline.sty, sfdanrak.sty, tatesuji.sty

を利用しています。
これらを~/share/texmf/tex/platex(or latex)以下に適当なフォルダをつくってまとめて入れておく。
ターミナル(Windowsならコマンドプロンプト)から

mktexlsr

を実行してスタイルファイルを更新しておく。

TeXのプリアンブル

縦書きのドキュメントスタイルを宣言し、取得してきたパッケージを使用する宣言をする。

\documentclass{(tarticle, tbookなど)}
\usepackage{hogehoge}

各コマンド

各種パッケージが必要であることに注意。上述のサイトからいただいたパッケージを使用の上、これらのコマンドを使うこと。

  • 傍点を打つコマンド
    \bou{傍点}
  • 縦中横
    \rensuji{数字}
  • 振り仮名
    \kana{漢字}{かんじ}
  • pdf化
    \dvipdfmx [option] hogehoge
    optionについては、場合によって使いわけるので後述。
  • 字下げしない改行
    \\
    または
    \noindent
  • ファイルの挿入
    input{hogehoge}
    若しくは
    \include{hogehoge}
    拡張子(tex)は省略すること。

ページレイアウト

以下では、好みのレイアウトによってプリアンブルの例を書いてみることにします。ドキュメントクラスは、tbookを用いることにします。

オプションについて

文字は10pt、11pt、12ptを使用可能。用紙はa4paper(デフォルト)またはa5paperを使用。 a4jやa5jは文章のスペースを大きくとる設定になっているのでお勧めできます。landscapeは用紙を横置きにする命令。notitlepageでタイトルなどを独立したページに出力するのを防ぎます。onesideは奇数ページ、偶数ページでレイアウトを区別しないようにする。twocolumnで二段組にします。

レイアウト

\usepackage{layout}

を宣言し、

\layout

を\begin{document}の後に挿入すると、レイアウトのプレビューが見られるので、レイアウトをいじっている間にはお勧め。
setlengthやaddtolengthに関する命令の具体的な効果はlayoutを見るか、各種webサイト、入門書などを参考にしてください。

\renewcommand{\baselinestretch}{(1.1など)}

は行間の空きスペースをいじって1.1倍にします。
日本語のTeX処理(pTeXだったかな?)の場合、12ptを使うと内部処理では10ptで行い、その後1.2倍に拡大しているらしいので、実際の行間は1.1X1.2なんだと思います。これ以外のレイアウトの設定も同様です。

A4を横置きにする場合

\documentclass[12pt,landscace,notitlepage,oneside]{tbook}
\addtolength{\voffset}{1zw}
\addtolength{\hoffset}{0zw}
\setlength{\headsep}{0zw}
\setlength{\headheight}{0zw}
\setlength{\textheight}{60zw}
\setlength{\textwidth}{40zw}
\renewcommand{\baselinestretch}{1.1}

PDF化するとき、用紙を横向きにしなければならないので

dvipdfmx -l hogehoge

としてオプションをつけます。

文庫っぽいレイアウトにする場合

\documentclass[12pt,a5paper,notitlepage,oneside]{tbook}
\addtolength{\hoffset}{-2zw}
\setlength{\headsep}{0zw}
\setlength{\textwidth}{40zw}
\setlength{\textheight}{28zw}
\AtBeginDvi{\special{pdf:docview <</ViewerPreferences <</Direction /R2L>> >>}}

一番最後の命令は、dvipdfmxでPDF化したとき、ページを右綴じにする命令です。これでPDFビューアで「見開き表示」にしたときに右から左に読むことができるようになります。 PDF化するときは、A5を使用するので

dvipdfmx -p a5 hogehoge

とします。
尚、ビューアで開いたときに、最初から見開きで表示させることが可能なオプションがもしあれば教えて頂きたいと思っています。現状では、幅に合わせた設定で開いてしまいます。暫定的な解決

ノベルスっぽいレイアウトにする場合

\documentclass[11pt,a5paper,notitlepage,twocolumn,oneside]{tbook}
\setlength{\columnsep}{2zw}
\addtolength{\hoffset}{-3zw}
\addtolength{\voffset}{0zw}
\setlength{\headheight}{0zw}
\setlength{\headsep}{0zw}
\setlength{\textwidth}{46zw}
\setlength{\textheight}{32zw}
\renewcommand{\baselinestretch}{1.05}
\AtBeginDvi{\special{pdf:docview <</ViewerPreferences <</Direction /R2L>> >>}}

\setlength{\columnsep}{2zw}は段の隙間を変更する命令です。
個人的には、講談社ノベルス好きなので、この設定はお気に入りだったりします。

その他の役立つかもしれない設定

\pagestyle{plain}

ヘッタには何も出力せず、フッタの中央にページ番号を出力します。その他の命令については各自でお調べください。

\renewcommand{\thesection}{\kansuji \arabic{section}.}

sectionの出力のしかたを変更します。
thesectionを他のもの(例えばchapterなど)にすれば、それに応じた出力を変更できます。最後の括弧を空白にすると、何も出力されません。sectionはデフォルトでは、日本語の場合{第 \arabic{section} 節}になっているのだと思います、たぶん。
\kansujiはpTeXに含まれいるパッケージで、漢数字で数字を出力します。
私が書いた設定の場合、section毎に漢数字で

一. 何々

などと出力されます。点は用いているフォントによって、全角か半角のどちらが好ましいか調べてご利用ください。私はIPAフォントを用いていますが、その場合は全角だと縦書きでは自然です。

暫定的な解決

pdfをビューアで開いたときに、見開きになるような設定を考えてみました。
hyperrefパッケージを使い、そのオプションとして見開き表示の設定を書き込むというものです。事実上、hyperrefパッケージの利用はしていないので、非常に不満ですが、とりあえずうまくいっています。Adobe readerでの動作を確認しています。
次のようにプリアンブルに記述します。

\RequirePackage[dvipdfm,bookmarks=false,pdfpagelayout=TwoPageLeft]{hyperref}

bookmarks=falseでしおりの表示をしないようにしています。今回は、見開き表示をさせることが目的であり、しおりを作成して表示することが目的ではないために、この設定をしています。
pdfpagelayout=TwoPageLeft?で見開きにして奇数ページを左側へ表示するようにしています。
他に

TwoPageRight:見開き、奇数ページを右側
TwoColumnLeft:連続見開き、奇数ページを左側
TwoColumnRight:連続見開き、奇数ページを右側
OneColumn:連続ページ
SinglePage:単一ページ

があります。もちろん、デフォルトではSinglePage?になります。

参考サイト

その他にたくさんのサイトを参考にさせて頂きましたが、あれこれと試行錯誤を重ねたので、具体的に挙げることが不可能です。

その他感想、質問など

dvipdfmxに関する設定について現在調査中。もしご存知でしたらお教え頂けると嬉しいです。

スパムが多いので一時閉鎖。そのうち対応したいと思いつつ…