はじめに
LaTeXにおける日本語の話は,
ここが詳しいです.ここ数年でさらに変わっているところもあるとは思いますが…
jlreqドキュメントクラスは上記記事でも紹介されていますが,私がjlreqをなんとなく使っていた時に躓いたところについて紹介します.
jlreqドキュメントクラスとは?
阿部紀行さんが作られたドキュメントクラスです.日本語組版処理の要件(参照サイト)に従っているので,簡単に日本語として体裁の整った文章を作成することができます.
このドキュメントクラスの特徴として,「日本語組版処理の要件」が複数の選択肢を用意しているのに合わせ,クラスオプションや\jlreqsetupコマンドで指定できるようになっていることが挙げられます.つまり,カスタマイズ性の高いクラスとなっており,これが「手軽に好きなスタイルにできる」という利点となっています.(参考文献1のp.116より)
今後,指定されたフォーマットのない日本語文章を書くときはぜひjlreqを利用してみてください!
興味を持っていただけた方は,さっそく.texファイルの冒頭をこれまでのクラスから変えて
\documentclass{jlreq}
としてみましょう.
jlreqクラスで見出しスタイルの新規作成・再定義をしよう
この話がこの記事で一番書きたかった項です.
結論を先に言うと,\ModifyHeadingコマンドを使っていじるのが便利(というかそれが公式ルート)です.
よく見る手段
ネット上で\sectionなどの見出しコマンドをカスタマイズしようと思った場合,titlesecパッケージを利用することをお勧めする記事が良く見つかると思います.例えば,私はLuaLaTeXを利用しているので,jlreqでなければltjsarticleクラスを用いることが多いですが,
\documentclass{ltjsarticle}
\begin{document}
\section{羅生門}
ある日の暮方の事である。一人の下人が、羅生門の下で雨やみを待っていた。
広い門の下には、この男のほかに誰もいない。
ただ、所々丹塗の剥げた、大きな円柱に、蟋蟀が一匹とまっている。
羅生門が、朱雀大路にある以上は、この男のほかにも、雨やみをする市女笠や揉烏帽子が、
もう二三人はありそうなものである。
それが、この男のほかには誰もいない。
\end{document}
という.texファイルから文章を生成すれば,

このような具合になるところ,プリアンブルに以下のような記述を追加すれば,
\usepackage{titlesec}
\titleformat{\section}{\LARGE}{\thesection.\ \ }{0pt}{}

となって確かに\sectionコマンドの動作を上書きできていることが分かります.
しかしこれをjlreqクラスで行うと,何もプリアンブルに書かない場合はほぼ同じですが,titlesecパッケージを取り込むと,このようになります.

一段落目の字下げが行われなくなっていることが見て取れるでしょうか.
これは,jlreqクラスにおいてセクション見出しが拡張されている関係で,titlesecパッケージにおいて\sectionコマンド類がリセットされているためです(ltjsarticleでも字下げを行うように設定を上書きしているはずですが,こちらはtitlesecにリセットされないので問題なかったということ).実際,
Package titlesec: Non standard sectioning command \section
(titlesec) detected. Using default spacing and no format.
というwarningが出ていると思います.
一応,indentfirstパッケージを使うという対処療法的な解決法もありますが,,これではjlreqの機能を全く生かせていません.
jlreqの機能を使う
先に記述したように,\ModifyHeadingコマンドを利用すると簡単に(「日本語組版の要件」から外れないまま)見出しを調節できます.
\ModifyHeading{section}{
format={%
{\Huge\jlreqHeadingLabel{#1}}%
\jlreqHeadingText{「#2」}%
{\large\jlreqHeadingSubtitle{#3}}%
},
subtitle_break=false
}
例えばプリアンブルこのように記述して,
本文の見出しを
\section{羅生門}[芥川龍之介]
とすれば,

きちんと字下げも維持されたままフォーマットが変えられていることが分かります!(ちなみにいきなり最後にオプション引数を追加しましたが,これがjlreqの見出しにおいて拡張されている部分で,副題を入れることができます.)
あとは,このformat=hogeの部分を自由に変更しましょう.tikzで枠線を作るなど,なんでもどうぞ.
紙面とフォントのサイズ・余白等の設定
ページ全体の余白等の設定を行います.日本語組版においては,まず基本版面1の大きさを決めて,その配置を定めるという形で余白が決まります.
典型的な方法
フォントサイズは大抵クラスオプションで指定できるので飛ばします.余白に関しては,geometryパッケージを用いて設定することが多いと思います.
例えばプリアンブルに
\usepackage[margin=25truemm]{geometry}
と記述すれば,上下左右の余白が25 mmになります.
シンプルで良い…のですが,jlreqクラスを利用する場合は,下で説明する方法を利用することが推奨されます.
jlreqクラスの場合
日本語組版処理の文脈においては,ここで言う「余白」は基本版面の配置を決定することを意味します.つまり,余白の幅を決めるには,まず基本版面のサイズを決定する必要があります.これは次のように決めることになっています(参考文献3より).
- 1段組の場合は,文字サイズ,1行の行長(字詰め数),1ページの行数及び行間を決める.
- 多段組の場合は,文字サイズ,1行の行長(字詰め数),1段の行数,行間,段数及び段間を決める.
これらはクラスオプションとしてkey = valueの形式で指定することができます.
| 要素 | オプション名 | デフォルト値 | 備考 |
|---|---|---|---|
| 紙面サイズ | paper | a4paper | 色々指定できる.{300mm, 500mm}のように直接指定しても良い |
| フォントサイズ(欧文) | fontsize | 10 pt | |
| フォントサイズ(和文) | jafontsize | ||
| 和文/欧文のフォントサイズ比 | jafontscale | 1 | 上二つを共に指定すると無視される |
| 行長 | line_length | 紙幅の0.75倍相当 | 全角文字換算で40文字を超えないことが良いとされる(横書きの場合) |
| 行数 | number_of_lines | 紙の高さの0.75倍相当 | |
| 行送り2 | baselineskip | 1.7zw | zwは全角幅を表す |
| 行間 | linegap | 行送りとどちらかのみ設定する |
これで紙面と基本版面の形が定まるので,基本版面の位置を定めることで余白を設定できます.具体的には天地位置と左右位置の二つを決定する必要があり,下のように中央に揃えるか,一方の余白を定めるかで2×2通りの方法があります.
| 天地位置 | 左右位置 |
|---|---|
| 中央 | 中央 |
| 中央 | のど3の空き量を指定 |
| 天4の空き量を指定 | 中央 |
| 天の空き量を指定 | のどの空き量を指定 |
※縦組みの場合は天ではなく地の空き量を指定する.
これらもまたクラスオプションで指定でき,対応するオプションは以下の通りです.また,上の表から分かる通り,天と地,のどと小口を同時に設定することはできません.なお,見開きにするクラスオプション(twoside)を指定していない場合は,常に奇数ページ扱いで余白が設定されます.
| 要素 | オプション名 | 備考 |
|---|---|---|
| 天4の空き量 | head_space | 天と地のどちらも指定しないと中央寄せになる |
| 地の空き量 | foot_space | |
| のど3の空き量 | gutter | のどと小口のどちらも指定しないと中央寄せになる |
| 小口の空き量 | fore-edge | 組版処理の要件に従うならば設定する場面はない,がオプションとしては用意されている |
サンプル
\documentclass[
paper=b5paper,
twoside, % 見開きを指定するオプション
titlepage, % 最初のページをタイトルのみにするオプション
jafontsize = 10pt,
line_length = 35zw,
number_of_lines = 20,
baselineskip = 2.7zw,
gutter = 9zw,
head_space = 7zw
]{jlreq}
\ModifyHeading{section}{
format={%
{\Huge\jlreqHeadingLabel{#1}}%
\jlreqHeadingText{「#2」}%
{\large\jlreqHeadingSubtitle{#3}}%
},
subtitle_break=false
}
\title{タイトル}
\author{}
\date{2026/XX/XX}
\begin{document}
\maketitle
\section{羅生門}
ある日の暮方の事である。一人の下人が、羅生門の下で雨やみを待っていた。
広い門の下には、この男のほかに誰もいない。
ただ、所々丹塗の剥げた、大きな円柱に、蟋蟀が一匹とまっている。
羅生門が、朱雀大路にある以上は、この男のほかにも、
雨やみをする市女笠や揉烏帽子が、もう二三人はありそうなものである。
それが、この男のほかには誰もいない。
何故かと云うと、この二三年、京都には、地震とか辻風とか火事とか饑饉とか云う災がつづいて起った。
そこで洛中のさびれ方は一通りではない。
旧記によると、仏像や仏具を打砕いて、その丹がついたり、金銀の箔がついたりした木を、路ばたにつみ重ねて、薪の料に売っていたと云う事である。
洛中がその始末であるから、羅生門の修理などは、元より誰も捨てて顧る者がなかった。
するとその荒れ果てたのをよい事にして、狐狸が棲む。
盗人が棲む。
とうとうしまいには、引取り手のない死人を、この門へ持って来て、棄てて行くと云う習慣さえ出来た。
そこで、日の目が見えなくなると、誰でも気味を悪るがって、この門の近所へは足ぶみをしない事になってしまったのである。
その代りまた鴉がどこからか、たくさん集って来た。
昼間見ると、その鴉が何羽となく輪を描いて、高い鴟尾のまわりを啼きながら、飛びまわっている。
ことに門の上の空が、夕焼けであかくなる時には、それが胡麻をまいたようにはっきり見えた。
鴉は、勿論、門の上にある死人の肉を、啄みに来るのである。
――もっとも今日は、刻限が遅いせいか、一羽も見えない。
ただ、所々、崩れかかった、そうしてその崩れ目に長い草のはえた石段の上に、鴉の糞が、点々と白くこびりついているのが見える。
下人は七段ある石段の一番上の段に、洗いざらした紺の襖の尻を据えて、右の頬に出来た、大きな面皰を気にしながら、ぼんやり、雨のふるのを眺めていた。
作者はさっき、「下人が雨やみを待っていた」と書いた。
しかし、下人は雨がやんでも、格別どうしようと云う当てはない。
ふだんなら、勿論、主人の家へ帰る可き筈である。
所がその主人からは、四五日前に暇を出された。
前にも書いたように、当時京都の町は一通りならず衰微していた。
今この下人が、永年、使われていた主人から、暇を出されたのも、実はこの衰微の小さな余波にほかならない。
だから「下人が雨やみを待っていた」と云うよりも「雨にふりこめられた下人が、行き所がなくて、途方にくれていた」と云う方が、適当である。
その上、今日の空模様も少からず、この平安朝の下人の Sentimentalisme に影響した。
申の刻下りからふり出した雨は、いまだに上るけしきがない。
そこで、下人は、何をおいても差当り明日の暮しをどうにかしようとして
――云わばどうにもならない事を、どうにかしようとして、とりとめもない考えをたどりながら、さっきから朱雀大路にふる雨の音を、聞くともなく聞いていたのである。
\end{document}
おわりに
詳細は公式ドキュメントを見てください.他にもいろいろ設定できる項目はあります.
参考文献
- 奥村晴彦・黒木裕介. [改訂第9版]LaTeX美文書作成. 技術評論社, 2023.
- jlreqクラスファイルのドキュメント: https://www.tug.org/texlive//Contents/live/texmf-dist/doc/latex/jlreq/jlreq-ja.html
- 日本語組版処理の要件: https://www.w3.org/TR/jlreq/
