テキスト→TeXのスクリプトで呻いていた懸案事項を順番に解決していった.
章を右頁(縦書きだと偶数ページ)起こし
コレ,ふと見た『続LaTeX2ε階梯・縦組編』62ページに\cleardoublepageはLaTeX2εでは偶数起こしになる,と書いてあり,おや?と気がついた.
だったら,右から始まらないのってLaTeX2εのせいじゃないよなあ.ってことは,読み込んでるbunko.styのほうか!
そこで,bunko.styソースの方を見たら,下の方に% 縦組みの場合も奇数ページ起こし
という所があったので,コメントアウトしたら,見事に右ページ起こしになりました.
が,結局,空白ページがもったいなくて,openanyにしたという.
目次ページのデザイン
bunko.styのデフォルトの目次はこんな感じ.
どうも縦書きだと随分間延びして見える.
章タイトルとページ番号と間を詰めたらいいかなと思ったけど,考えてみたら,1ページに7章までしか入らないってずいぶんもったいない.それで,最初,2段組にしたらどうだろうと\twocolumnと書いてみたりしたんだが,2段になってくれない.\tableofcontentsの方の定義とバッティングしてるのかなあ.
で,はたと,ここだけ横組みってのもいいな,と思い,minipage環境を使ってみることにする.組んでみたらうまくいったんだけど,どうにも行間が若干広くて,これでも12章までぐらいしかきれいに入らない.それに,このページにノンブルが入っていると,章ごとのページ番号も並ぶのでなんだか収まりが悪い.
それで,結局,以下のようにしました.
まず,プリアンブルに行間を変えるための新しい環境を定義します.
%一部だけ行間を変えるための新しい環境
\newenvironment{minilinespace}{ \baselineskip = 1mm }
で,目次の所は,
\begin{minipage}<y>[b]{5cm} %目次だけ横組み
\begin{minilinespace}
\tableofcontents
\thispagestyle{empty}
\end{minilinespace}
\end{minipage}
\tableofcontentsにもページスタイルの定義があるので,\thispagestyle{empty}は,その直後に置かないと効いてくれません.(\tableofcontentsの前に置いてもノンブルが出てしまう)
そうやって,目次を出力.
なかなかいいんでない?
\rensujiの後の空白制御
TeXでは,「!」や「?」の後には自動で文字との間に空きが入る.ところが,\rensuji{!!}などで繋がったエクスラメーションマークを半角文字・縦向きに回転させると,そういうことを自動でやってくれない.
それで,最初,kinsokuファイルに書き足せばいいのかなあと思ったんですが,kinsokuは,どうも1字だけを指定するものらしい.
それに,考えてみると,\rensujiを使っているからってかならずしも記号ではないわけで,そういうときは次の文字との間が空くと困るよなあ.
というわけで,結局,TeXソースを作るときに該当するところに全角空白(\quad)を入れることにした.
これはテキスト→TeXソースのRubyスクリプトの記号をrensujiにしているところを改造することで対処した.
if line =~ /[?!][?!]/ #?!のつながりは,半角にして並べる
line.gsub!(/([?!])([?!])([^、-◯])/){"\\rensuji{" +to_single($1)+to_single($2)+"}\\quad "+$3} #次の文字との間に1文字空白
line.gsub!(/([?!])([?!])([、-◯])/){"\\rensuji{" +to_single($1)+to_single($2)+"}"+$3} #次の文字が記号の時は空白を入れない
end
TeXソースで入りすぎている空行の制御
別に実害は無いので趣味だけど,Rubyスクリプトをちょっちいじって,空行がいつも入るのを直してみた.
まず,空行を入れるかどうか(改行1回にするか2回にするか)を判別するフラグを作る.
br_f = 0 #ソースの空行を制御するためのカウンタ(段落の時だけ改行を2つ入れる)
後は,\begin{...}だけ入れたとか,\chapter{...}だけ書いたとかの処理をしたところにbr_f = 1
を書き足し,最後に
if br_f == 1
outputfile.print line + "\n" #文章の段落でないときは改行記号1つ。
br_f = 0
else
outputfile.print line + "\n\n" #他は段落なので改行記号2つ。
end
で処理終了.
あ~,すっきり.