adbird(広告鳥) 備忘録

LaTeX(LuaLaTeX) で A5・縦書き・2段組の小説本・エッセイ本を作る

最終更新:2019年1月20日 A5tate-twocolumn.sty と 原稿.tex を修正(ページの余白等調整)。


以前、Pandoc + LaTeX で markdownからA5・縦書き・2段組の小説本のPDFを作成 という記事を書いた。一度、下準備さえすれば、あとは楽なのだけど、その下準備が多すぎる…。

ということで、普通にLaTeX(LuaLaTeX)で原稿を書きたい人のために。

縦書きの日本語クラスファイルとしては、jlreq が今アツいらしいので、いつか試したいのだけど、とりあえず、以前の記事で作った独自スタイルファイル(A5tate-twocolumn.sty)の遺産が使える ltjtbook クラスファイルで構成した。

※ B6サイズで縦書きをしたい人は、 LaTeX(LuaLaTeX) で B6・縦書きの小説本・エッセイ本を作る へ。

目次

環境

環境が変われば、うまくいかない場合もあるかもしれませんので、あしからず。

フォルダ内の構成

任意のフォルダ内が以下のような構成になるようにする。

任意のフォルダ
├── A5tate-twocolumn.sty
├── breakfbox.sty
├── pic (画像ファイルを入れるフォルダ)
│    ├── cat001.jpg
│    ├── cat002.jpg
│    ├── cat003.jpg
│    └── cat004.jpg
├── uline--.sty
└── 原稿.tex

準備

  • Windowsの人はファイルの拡張子が表示されるようにしておいてください。

LaTeXTeX Live)のインストール

リンク先を参照のこと。
僕の場合、「TeX Live のインストーラを使ってインストールする」方法でインストールしている。
インストールに2時間近くかかる…。

TeX Wiki / Linux

TeX Wiki / TeX Live/Windows

uline--.sty と breakfbox.sty

下線・波線などのために必要なTeXスタイルファイル。
breakfbox パッケージから、以下の2つのファイルを入手する。

  • uline--.sty
  • breakfbox.sty

A5tate-twocolumn.sty

テキストエディタを開いて、以下をコピペして「A5tate-twocolumn.sty」として保存。
細かい調整等はこれをいじってください。

%%原稿ページ設定 lltjp-geometry.sty
    %A5サイズは148mm×210mmなので、
    % left + width + right=148mm に、
    % top + height + bottom=210mm にならないといけない。
    %まず、width(1行の幅×行数+1行間×行間数)を測ってから、leftとrightを決めないと本文が裏表で重ならない。
    %ltjtbookのオプションでtwosideを指定することが必要。
    %left=小口側の余白 right=ノド側の余白 headsep=本文とヘッダーとの余白 footskip=本文とヘッダー(ノンブル)との余白
\usepackage{ifluatex}
\usepackage{filehook}
\usepackage[top=17mm,bottom=17mm,left=17mm,width=111mm,right=20mm,headsep=5mm,footskip=9mm]{geometry}

%行間
\renewcommand{\baselinestretch}{1} 

%段と段の間隔を10mm
\setlength{\columnsep}{10mm}

%フォント指定のためのパッケージ
%\usepackage{luatexja-fontspec}
%欧文・数字フォント(フォントによっては文字が欠落する場合があるので注意)
%\setmainfont{M+ 1m-light}
%\setsansfont{M+ 1m-light}
%ここで日本語フォント指定 (フォントによっては文字が欠落する場合があるので注意)
%\setmainjfont[BoldFont=Ume Gothic]{M+ 1m-light}
%\setsansjfont{M+ 1m-light}

\usepackage{luatexja-otf}

%ルビや傍点  例 \ruby{山﨑}{やま|さき} 
\usepackage{pxrubrica}

%表
\usepackage{longtable}
\usepackage{booktabs}
%下線・波線・囲み文字 https://github.com/doraTeX/breakfbox から uline--.sty と breakfbox.sty を入手
\usepackage[usetype1]{uline--}
\usepackage{breakfbox}
%脚注番号を (1)に変更
\renewcommand\thefootnote{(\arabic{footnote})}
%脚注番号を 1)に変更
%\renewcommand\thefootnote{\arabic{footnote})}

%リンク しおり
\usepackage[hidelinks,unicode=true]{hyperref}

%縦中横数字
\usepackage{lltjext}

%画像
%\usepackage[export]{adjustbox}
\usepackage{graphicx}

%1行目を1文字目インデント
\usepackage{indentfirst}

%タイトルページ出力
\usepackage{titlesec}

%タイトルページの再定義
\makeatletter
\if@titlepage
  \renewcommand{\maketitle}{\begin{titlepage}%
  \let\footnotesize\small
  \let\footnoterule\relax
  \let\thanks\p@thanks
  \let\footnote\thanks
  \vbox to\textheight\bgroup\tate\hsize\textwidth
  \null\vfil
  \vskip 80\p@ %右余白
  \begin{center}%
%タイトルと作者を表示
    {\LARGE \@title}\hspace{4em}{\large \@author \par}%
%タイトルのみ表示
%    {\LARGE \@title}%
  \end{center}\par
  \vfil{\centering\@thanks}\vfil\null
  \egroup
  \end{titlepage}%
  }%
\makeatother

%ヘッダー、フッター調整。文字を小さく(\footnotesize)。
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[ol]{\footnotesize\leftmark} %奇数ページ左上に「偶数ページ用の柱=章」
\fancyhead[er]{\footnotesize\rightmark} %偶数ページ右上に「奇数ページ用の柱=節」
\fancyfoot[ol]{\footnotesize\thepage} %奇数ページ右上にページ番号
\fancyfoot[er]{\footnotesize\thepage} %偶数ページに右下にページ番号
\renewcommand{\headrulewidth}{0pt} %ヘッダーの下線の太さ
\renewcommand{\footrulewidth}{0pt} %フッターの下線の太さ

%1頁目を空白ページにしない。\白紙ページにfootnombreスタイルを適用
\makeatletter
\def\cleardoublepage{\clearpage
\if@twoside
  \ifodd\c@page\else
      \hbox{}\thispagestyle{footnombre}\newpage
      \if@twocolumn\hbox{}\newpage\fi
  \fi\fi}
\makeatother

%footnombre 白紙ページ、各章の最初のページのノンブルを小さく
\makeatletter
\def\ps@footnombre{\let\@mkboth\@gobbletwo
    \let\ps@jpl@in\ps@footnombre
  \def\@evenfoot{\hfil\footnotesize\thepage}%\footnotesizeで小さく
  \def\@oddfoot{\footnotesize\thepage\hfil}%\footnotesizeで小さく
  \let\@oddhead\@empty\let\@evenhead\@empty}
\let\ps@jpl@in\ps@footnombre
\makeatother


%%以下、目次のページ設定%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%目次ページのヘッダーを削除。
\makeatletter
\renewcommand{\tableofcontents}{%
  \if@twocolumn\@restonecoltrue\onecolumn
  \else\@restonecolfalse\fi
  \chapter*{\contentsname
    \@mkboth{}{}
    %\@mkboth{\contentsname}{\contentsname}
  }\@starttoc{toc}%
  \if@restonecol\twocolumn\fi
}
\makeatother

% hyperref.styの関係で、目次ページ番号が寝てしまうので、正しく縦向きに。 参考:http://id.fnshr.info/2017/05/20/my-latex-templates-201705/
\makeatletter
\def\contentsline#1#2#3#4{\csname l@#1\endcsname{\hyper@linkstart{link}{#4}{#2}\hyper@linkend}{\rensuji{#3}}}
\makeatother

%目次の節以下の点線を3点リーダーに。節(section)以降のページ下余白調整
\makeatletter
\def\@dottedtocline#1#2#3#4#5{%
  \vskip\toclineskip \@plus.2\p@%
  {\setlength{\parfillskip}{5em}%節(section)以降の下余白
    \parindent #2\relax\@afterindenttrue
   \interlinepenalty\@M
   \leavevmode
   \@lnumwidth #3\relax
   \advance\leftskip \@lnumwidth \hbox{}\hskip -\leftskip
    {#4}\nobreak
 \leaders\hbox to 3pt{\hfil\raise3pt\hbox{.}\hfil}%
     \hfill \nobreak\hbox to\@pnumwidth{%
         \hss\reset@font\rmfamily\small \normalcolor #5}\par}}
\makeatother

%目次の章(chapter)の設定
\makeatletter
\renewcommand*{\l@chapter}[2]{%
  \ifnum \c@tocdepth >\m@ne
    \addpenalty{-\@highpenalty}%
    \addvspace{1.0em \@plus\p@}%目次の行間
    \begingroup
      %\parindent\z@ \rightskip\@pnumwidth \parfillskip-\rightskip
      \setlength{\parindent}{3em}%インデント(上部余白)
      \setlength{\parfillskip}{5em}%下余白
      \leavevmode\bfseries
      \setlength\@lnumwidth{2em}%数字と目次本文との間
      \advance\leftskip\@lnumwidth \hskip-\leftskip
      #1\nobreak\hfil\nobreak\hb@xt@\@pnumwidth{\hss#2}\par
      \penalty\@highpenalty
    \endgroup
  \fi}
\makeatother

%目次の節(section)の設定。
%\renewcommand*{\l@区分}{\@dottedtocline{レベル}{インデント量}{ラベル幅(数字+余白)}}
\makeatletter
\renewcommand*{\l@section}{\@dottedtocline{1}{4em}{2em}}
\makeatother

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



%脚注のインデント調整
\renewcommand\thefootnote{\rensuji{\arabic{footnote}}}

\makeatletter
\long\def\@makefntext#1{\parindent 1em\noindent 
\@hangfrom{\hbox to 1.8em{\hss{\@makefnmark}}}#1}
\makeatother

%見出しの数字を変更
\renewcommand{\thechapter}{\rensuji{\arabic{chapter}}}  %%章レベルをアラビア数字に
%\renewcommand{\thechapter}{第\rensuji{\arabic{chapter}}章}  %% 第1章
%\renewcommand{\thechapter}{\Kanji{chapter}}  %% 章レベルを漢数字に
%\renewcommand{\thechapter}{第\Kanji{chapter}章}  %% 第一章
%\renewcommand{\thesection}{\rensuji{\arabic{section}}}  %% 節レベルをアラビア数字に
\renewcommand{\thesection}{\Kanji{section}}  %% 節レベルを漢数字に

% 見出しの調整 \vspace{見出しの前の余白}、\fontsize{フォントサイズ}{2行以上になったときの行間}
\titleformat{\chapter}
  {\vspace{-7.2mm}\normalfont\fontsize{12}{16}\bfseries}{\thechapter}{1em}{}
\titleformat{\section}
  {\vspace{-3mm}\normalfont\fontsize{10}{15}\bfseries}{\thesection}{1em}{}

%目次に「第」や「章」をつけない
\renewcommand{\prepartname}{}
\renewcommand{\postpartname}{}
\renewcommand{\prechaptername}{}%章レベルの前
\renewcommand{\postchaptername}{}%章レベルの後

%写真のキャプションに「図」を入れない
\renewcommand{\figurename}{}

%画像まわり再定義
\makeatletter
\renewcommand{\thefigure}{%
 %\ifnum\c@chapter>\z@\thechapter{}・\fi\rensuji{\@arabic\c@figure} %%画像のキャプションに余計な文字や数字を入れない
 }
\def\fps@figure{tbp}
\def\ftype@figure{1}
\def\ext@figure{lof}
\def\fnum@figure{\figurename\thefigure}
\makeatother

%キャプションまわりの余白を再定義
% [Tex tips](http://osksn2.hep.sci.osaka-u.ac.jp/~naga/miscellaneous/tex/tex-tips2.html)を参照のこと
\abovecaptionskip=-8pt

\makeatletter
\setlength\belowcaptionskip{0\p@}
\long\def\@makecaption#1#2{%
  \vskip\abovecaptionskip
  \iftdir\sbox\@tempboxa{#1\hskip1zw#2}%
    \else\sbox\@tempboxa{#1 #2}%
  \fi
  \ifdim \wd\@tempboxa >\hsize
    \iftdir #1\hskip1zw#2\relax\par
      \else #1 #2\relax\par\fi
  \else
    \global \@minipagefalse
    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip
  }
\makeatother


%ダッシュをつなげる 参照:https://qiita.com/isari/items/1d0b60b76c7ef168e376
\usepackage{newunicodechar}
\makeatletter
\chardef\my@J@horizbar="2015% Unicodeの2015
\newunicodechar{―}{\x@my@dash}
\def\x@my@dash{\@ifnextchar―{%
  \my@J@horizbar\kern-.5\zw\my@J@horizbar\kern-.5\zw}{%
    \my@J@horizbar}}
% 次が―なら2回目のkernまでを、そうでないなら普通の―を出力
\makeatother

原稿.tex を書いていく。

文字コードUTF-8で。

\documentclass[a5paper,twocolumn,twoside]{ltjtbook}

%%自作のA5tate-twocolumn.styを適用
\usepackage{A5tate-twocolumn} 

\title{吾輩は猫である} 
\author{夏目 漱石} 
\date{\today} 

\begin{document}
    \maketitle %タイトルを挿入
    \tableofcontents %目次を挿入

%以下に本文を書いていく。

\chapter*{はじめに}
\addcontentsline{toc}{chapter}{はじめに}

用紙A5サイズの縦書き2段組の文章が書けます。

細かい調整をしたい場合は、A5tate-twocolumn.styをいじってください。

\oline{傍線}、そして、\kenten{傍点}……。

ダッシュ(―)を二つ。――。

〝ダブルミニュート(二重引用符)〟

〝〟を「かっこ」と打てば出てくるように単語登録しておけばいいかも。

目次の挿入には「\$ lualatex 原稿」を2回実行する必要があります。

\begin{figure}
\begin{center}
\begin{minipage}<y>[htbp]{11cm} %
\centering
\includegraphics[width=11cm]{./pic/cat001.jpg} %
\caption{多賀山公園のネコ} %
\end{minipage}
\end{center}
\end{figure}



\chapter{見出し}

吾輩は猫である。名前はまだ無い。

どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。しかもあとで聞くとそれは書生という人間中で一番\ruby{獰悪}{どう|あく}な種族であったそうだ。この書生というのは時々我々を捕えて煮て食うという話である。しかしその当時は何という考もなかったから別段恐しいとも思わなかった。ただ彼の掌に載せられてスーと持ち上げられた時何だかフワフワした感じがあったばかりである。掌の上で少し落ちついて書生の顔を見たのがいわゆる人間というものの見始であろう。この時妙なものだと思った感じが今でも残っている。第一毛をもって装飾されべきはずの顔がつるつるしてまるで\ruby{薬缶}{や|かん}だ。その後猫にもだいぶ逢ったがこんな片輪には一度も出会わした事がない。のみならず顔の真中があまりに突起している。そうしてその穴の中から時々ぷうぷうと煙を吹く。どうも咽せぽくて実に弱った。これが人間の飲む煙草というものである事はようやくこの頃知った。

この書生の掌の裏でしばらくはよい心持に坐っておったが、しばらくすると非常な速力で運転し始めた。書生が動くのか自分だけが動くのか分らないが無暗に眼が廻る。胸が悪くなる。到底助からないと思っていると、どさりと音がして眼から火が出た。それまでは記憶しているがあとは何の事やらいくら考え出そうとしても分らない。

ふと気が付いて見ると書生はいない。たくさんおった兄弟が一疋も見えぬ。肝心の母親さえ姿を隠してしまった。その上今までの所とは違って無暗に明るい。眼を明いていられぬくらいだ。はてな何でも容子がおかしいと、のそのそ這い出して見ると非常に痛い。吾輩は藁の上から急に笹原の中へ棄てられたのである。

ようやくの思いで笹原を這い出すと向うに大きな池がある。吾輩は池の前に坐ってどうしたらよかろうと考えて見た。別にこれという分別も出ない。しばらくして泣いたら書生がまた迎に来てくれるかと考え付いた。ニャー、ニャーと試みにやって見たが誰も来ない。そのうち池の上をさらさらと風が渡って日が暮れかかる。腹が非常に減って来た。泣きたくても声が出ない。仕方がない、何でもよいから食物のある所まであるこうと決心をしてそろりそろりと池を左りに廻り始めた。どうも非常に苦しい。そこを我慢して無理やりに這って行くとようやくの事で何となく人間臭い所へ出た。ここへ這入ったら、どうにかなると思って竹垣の崩れた穴から、とある邸内にもぐり込んだ。縁は不思議なもので、もしこの竹垣が破れていなかったなら、吾輩はついに路傍に餓死したかも知れんのである。一樹の蔭とはよく云ったものだ。この垣根の穴は今日に至るまで吾輩が隣家の三毛を訪問する時の通路になっている。さて邸へは忍び込んだもののこれから先どうして善いか分らない。そのうちに暗くなる、腹は減る、寒さは寒し、雨が降って来るという始末でもう一刻の猶予が出来なくなった。仕方がないからとにかく明るくて暖かそうな方へ方へとあるいて行く。今から考えるとその時はすでに家の内に這入っておったのだ。ここで吾輩は彼の書生以外の人間を再び見るべき機会に遭遇したのである。第一に逢ったのがおさんである。これは前の書生より一層乱暴な方で吾輩を見るや否やいきなり頸筋をつかんで表へ抛り出した。いやこれは駄目だと思ったから眼をねぶって運を天に任せていた。しかしひもじいのと寒いのにはどうしても我慢が出来ん。吾輩は再びおさんの隙を見て台所へ這い上った。すると間もなくまた投げ出された。吾輩は投げ出されては這い上り、這い上っては投げ出され、何でも同じ事を四五遍繰り返したのを記憶している。その時におさんと云う者はつくづくいやになった。この間おさんの三馬を偸んでこの返報をしてやってから、やっと胸の痞が下りた。吾輩が最後につまみ出されようとしたときに、この家の主人が騒々しい何だといいながら出て来た。下女は吾輩をぶら下げて主人の方へ向けてこの宿なしの小猫がいくら出しても出しても御台所へ上って来て困りますという。主人は鼻の下の黒い毛を撚りながら吾輩の顔をしばらく眺めておったが、やがてそんなら内へ置いてやれといったまま奥へ這入ってしまった。主人はあまり口を聞かぬ人と見えた。下女は口惜しそうに吾輩を台所へ抛り出した。かくして吾輩はついにこの家を自分の住家と極める事にしたのである。

吾輩の主人は滅多に吾輩と顔を合せる事がない。職業は教師だそうだ。学校から帰ると終日書斎に這入ったぎりほとんど出て来る事がない。家のものは大変な勉強家だと思っている。当人も勉強家であるかのごとく見せている。しかし実際はうちのものがいうような勤勉家ではない。吾輩は時々忍び足に彼の書斎を覗いて見るが、彼はよく昼寝をしている事がある。時々読みかけてある本の上に涎をたらしている。彼は胃弱で皮膚の色が淡黄色を帯びて弾力のない不活溌な徴候をあらわしている。その癖に大飯を食う。大飯を食った後でタカジヤスターゼを飲む。飲んだ後で書物をひろげる。二三ページ読むと眠くなる。涎を本の上へ垂らす。これが彼の毎夜繰り返す日課である。吾輩は猫ながら時々考える事がある。教師というものは実に楽なものだ。人間と生れたら教師となるに限る。こんなに寝ていて勤まるものなら猫にでも出来ぬ事はないと。それでも主人に云わせると教師ほどつらいものはないそうで彼は友達が来る度に何とかかんとか不平を鳴らしている。

\begin{figure}
\begin{center}
\begin{minipage}<y>[htbp]{11cm}
\centering
\includegraphics[width=11cm]{./pic/cat002.jpg}
\caption{吾輩は猫である。名前はまだ無い。}
\end{minipage}
\end{center}
\end{figure}


吾輩がこの家へ住み込んだ当時は、主人以外のものにははなはだ不人望であった。どこへ行っても跳ね付けられて相手にしてくれ手がなかった。いかに珍重されなかったかは、今日に至るまで名前さえつけてくれないのでも分る。吾輩は仕方がないから、出来得る限り吾輩を入れてくれた主人の傍にいる事をつとめた。朝主人が新聞を読むときは必ず彼の膝の上に乗る。彼が昼寝をするときは必ずその背中に乗る。これはあながち主人が好きという訳ではないが別に構い手がなかったからやむを得んのである。その後いろいろ経験の上、朝は飯櫃の上、夜は炬燵の上、天気のよい昼は椽側へ寝る事とした。しかし一番心持の好いのは夜に入ってここのうちの小供の寝床へもぐり込んでいっしょにねる事である。この小供というのは五つと三つで夜になると二人が一つ床へ入って一間へ寝る。吾輩はいつでも彼等の中間に己れを容るべき余地を見出してどうにか、こうにか割り込むのであるが、運悪く小供の一人が眼を醒ますが最後大変な事になる。小供は――ことに小さい方が質がわるい――猫が来た猫が来たといって夜中でも何でも大きな声で泣き出すのである。すると例の神経胃弱性の主人は必ず眼をさまして次の部屋から飛び出してくる。現にせんだってなどは物指で尻ぺたをひどく叩かれた。


\chapter{縦長の写真のテスト}

縦長の写真。

\onecolumn
\begin{figure}
\begin{center}
\begin{minipage}<y>[htbp]{11cm}
\centering\includegraphics[width=11cm]{./pic/cat003.jpg}
\caption{黒猫}
\end{minipage}
\end{center}
\end{figure}
\twocolumn


\chapter*{あとがき}
\addcontentsline{toc}{chapter}{あとがき}

あとがきとか、謝辞を書きましょう。

\rightline{広告鳥}

\begin{figure}
\begin{center}
\begin{minipage}<y>[htbp]{11cm}
\centering
\includegraphics[width=11cm]{./pic/cat004.jpg}
\caption{}
\end{minipage}
\end{center}
\end{figure}

%奥付け
\clearpage
\thispagestyle{empty}
\begin{minipage}<y>[htpb]{111mm}
\begin{center}
    \vspace{111mm} %奥付のページ上部からの位置

\begin{tabular}{l}
\multicolumn{1}{c}{\large{吾輩は猫である}}\\[3mm] %%タイトル
\hline
\\[-3mm]
\hspace{2mm}\normalsize{著\hspace{2mm}者}\hspace{5mm}夏目 漱石\\[0mm]  %%著者
\hspace{2mm}\small{発行日\hspace{5mm}\today}\\[0mm] %%発行日。「\today」のところに任意の日付を入れてもいい。
\hspace{2mm}\small{発行者}\hspace{5mm}{\small 広告鳥}\hspace{50mm}\scriptsize{※無断転載禁止}\\[-3mm]  %%発行者
\\\hline
\end{tabular}
\end{center}
\end{minipage}

\end{document}

%書き方メモ。コピペするときは頭のコメントアウト(%)を外して使う。
%
%「はじめに」とか「おわりに」など、章番号をつけたくないとき。
%\chapter*{はじめに}
%\addcontentsline{toc}{chapter}{はじめに}
%
%横向きの画像は以下をコピペ。
%\begin{figure}
%\begin{center}
%\begin{minipage}<y>[htbp]{11cm} 
%\centering
%\includegraphics[width=11cm]{画像001.jpg} %画像の幅と画像ファイルの指定
%\caption{キャプション} %
%\end{minipage}
%\end{center}
%\end{figure}
%
%縦向きの画像は以下をコピペ。
%\onecolumn
%\begin{figure}
%\begin{center}
%\begin{minipage}<y>[htbp]{11cm}
%\centering\includegraphics[width=11cm]{./pic/cat003.jpg}
%\caption{黒猫}
%\end{minipage}
%\end{center}
%\end{figure}
%\twocolumn

実行

Ubuntuならフォルダ内で右クリック > 端末で開く で端末を開いて、下記を実行。
目次作成のためには2回実行する必要がある。

$ lualatex 原稿

完成

原稿.pdfができているはず。

f:id:adbird:20181227152725p:plain f:id:adbird:20181227152836p:plain f:id:adbird:20181227162906p:plain f:id:adbird:20181227152848p:plain f:id:adbird:20181227152905p:plain f:id:adbird:20181227152920p:plain f:id:adbird:20181227152950p:plain f:id:adbird:20181227153006p:plain