pLaTeX2e 新ドキュメントクラス

Last modified:

これは何?

美文書シリーズなどで使用したドキュメントクラスです。jarticle に相当する jsarticle と,jbook に相当する jsbook からなります。オマケとして okumacro.sty,okuverb.sty,morisawa.sty などが付いています。

東京書籍印刷(現:リーブルテック)の小林 肇 様の開発されたJISフォントメトリック(JIS X 4051-1995「日本語文書の行組版方法」になるべく即したフォントメトリック)を標準で使用します。ただし

\documentclass[mingoth]{jsarticle}

とすれば従来の min や goth が使われます。

諸パラメータが和文組版の伝統に合わせてチューンされています。たとえば段落の始まりの始め括弧類( など)が全角下がりになります(従来は全角二分下がり)。段組のとき,左右の行が揃いやすくなっています。

サイズオプションが 9pt10pt11pt12pt14pt17pt21pt25pt30pt36pt43pt のように豊富です。大きいサイズはOHPシート作成に便利です。

『[改訂版]LaTeX2e 美文書作成入門』 では 20pt と書きましたが,等比数列にするほうが論理的というご意見をいただき,現在の版では 21pt にしています。20pt オプションも残しています。

そのほか,無数の改良が施されています。詳しくは美文書シリーズあるいはアーカイブに含まれる jsclasses.tx を pLaTeX で処理してお読みください。

ライセンスは,アスキー・メディアワークス(現在は株式会社KADOKAWAに併合)の pTeX が modified BSD License になったのでそれに合わせました。商業出版も含め,無断でご自由に修正・利用していただいてかまいません。

ダウンロードとインストール

現在配布されているTeXシステム(W32TeX,TeX Live,MacTeXなど)には含まれているはずですので,特にインストールは不要です。

使い方

従来 jarticle としていた部分を jsarticle に,jbook としていた部分を jsbook に直すだけです。つまり,

\documentclass{jsarticle}
\begin{document}

本文。

\end{document}

のようにして使います。

実際に使われる場合は,必要なクラスファイル(たとえば jsbook.cls)をそのプロジェクトのためのフォルダに別名でコピーし,それを必要に応じて書き換えながら使うことをお勧めします。でないと,仕様変更でページ数が変わってしまったりするかもしれません。

サポート

ご質問・ご提案等は TeX Forum または TeX Q & A に書き込んでいただければ幸いです。

FAQ

長さがずれます

たとえばオプションに [12pt] を指定した場合, \hspace{10cm} とすると 12cm のスペースが空いてしまいます。 これはすべて本文 10pt のサイズで組んでから最後に 1.2 倍に拡大しているためです。 \hspace{10truecm} のように,長さ指定に true を付けてください。 ptmm も同様に truepttruemm としてください。

同様な理由で,図の長さもずれます。 上述のように true.. で大きさを指定するか,あるいは原寸大に作った EPS なら 12pt オプションでは [scale=0.83333] のようにスケールしてください。

なぜこのような仕様にしたかというと,デフォルトの Computer Modern フォントは,本文 10pt を基準にデザインされており,小さいフォントは本文用よりやや平べったく,大きいフォントはやや細身にデザインされています。 ですから,たとえば OHP で本文を 17pt で組む場合,cmr17 を使うのではなく cmr10 を1.7倍するほうがプロポーションが良くなります。 このような理由で,すべて 10pt で組んでから全体を拡大・縮小する方針にしました。

ただ,latex2html ではこれがうまく機能しないようです。 竹野さんの jsartcile の 12pt 等で EPS が切れる問題 をご覧ください(→ [qa:25091])。

jsreport がないのは?

2004-11-03 以降のものであれば,次のようにしてください。

\documentclass[report]{jsbook}

jsbook の余白が広すぎます

書籍では1行の長さが全角40文字を超えないようにしています。 そのため,段組をしないときは,自動的にどちらかの余白が広くなります(美文書シリーズのようなデザインになります)。

これが困るときはプリアンブル(\begin{document} の前)に次のように書いてください。

\setlength{\textwidth}{\fullwidth}
\setlength{\evensidemargin}{\oddsidemargin}

目次や章の最初のページも他のページと同じデザインにするには

プリアンブルに次のように書いてください。

\makeatletter
\renewcommand{\chapter}{%
  \if@openright\cleardoublepage\else\clearpage\fi
  \global\@topnum\z@
  \secdef\@chapter\@schapter}
\makeatother

さらにページ番号をページ下中央に -- 123 -- の形式で振るには次のようにします。

\makeatletter
\def\ps@plainfoot{%
  \let\@mkboth\@gobbletwo
  \let\@oddhead\@empty
  \def\@oddfoot{\normalfont\hfil-- \thepage\ --\hfil}%
  \let\@evenhead\@empty
  \let\@evenfoot\@oddfoot}
\let\ps@plain\ps@plainfoot
\makeatother
\pagestyle{plain}

フッタまわりのスペースの設定例:

\setlength\footskip{2\baselineskip}
\addtolength{\textheight}{-2\baselineskip}

Abstractを段組にしない方法は?

abstract 環境の後に \maketitle を書いてください。

1行の文字数や1ページの行数を指定するには

TeX Q & A の 14833 を見てください。

あるいは geometry パッケージを併用すると便利でしょう。

セクション見出しの欧文部分がゴシックになります

これはSans Serif(サン・セリフ)というフォントです(標準ではComputer Modern Sans Serif,Times系フォントを使えばHelvetica)。和文のゴシック体に相当する欧文フォントで,見出しによく使われます。従来の和文ゴシック体(サン・セリフに相当)+欧文ボールド(セリフ体の太字)という組合せよりも無難だと思いますが,そうではないと思われる場合は次のように書くとボールド体になります。

\renewcommand{\headfont}{\bfseries}

\parindent をプリアンブルで設定できません

和文の \parindent はそのときの全角フォントの1文字分または 0 と相場が決まっているので,フォントサイズを指定するごとに,\parindent が 0 でなければそのフォントサイズの全角1文字分に変更されます。

特に \begin{document} で文字サイズが初期化されるので,0 か全角1文字分以外に設定したい場合は,\begin{document} より後で行ってください。

chapterbib 使用時におかしくなる

[qa:34747] をご覧ください。

更新記録

[2014-02-07] Word風 10ptj, 10.5ptj, 11ptj, 12ptj オプションを追加するzrbabblerさんのパッチを含めました。

[2014-01-02] english オプションについての tat tsan さんのパッチを含めました(QA: jsclasses の english オプション)。19:42 タイポを直しました。

[2013-05-14] すぐ下の修正箇所を plcore.ltx に倣った形に書き直しました(Thanks: 北川さん)。

[2013-04-24] 新しいpTeXで脚注番号の前後のスペースが空きすぎることを防ぐため,北川さんのパッチ [qa:57090] を取り込みました(昨日リリースしたものは手違いでした。すみません)。

[2010-03-17] 欧文クラスファイルで js* 同様のJISフォントを使うための minijs.sty を改訂しました(1行コメントアウトしただけです)。これでAsymptoteで図がずれることがなくなったと思います。詳しくは Asymptote - TeX Wiki をご覧ください。

[2010-03-14] otfパッケージ+disablejfam不具合の対処をとりあえず山本さんにしたがってこちらでもやっておきました。また,okumacroのrubyの直後で改行できないバグを(とうとう)直しました。

[2009-08-26] [qa:52569] から始まる議論について逡巡していましたが,結局,微調節してみることにしました。

[2009-08-23] newtheorem の見出しを \headfont にするなどの日本語化対応をしました。

[2009-02-22] ttk さんの upLaTeX 対応パッチを取り込みました。

[2009-01-23] QA: english指定時の listoffigures, listoftables の田辺さんのご指摘を受けて修正しました。

[2008-12-26] geometry.sty との相性を改善するために [qa:52439] のZRさんのご指摘のように修正しました。

[2008-2-18] [qa:50981] の本田さんのパッチを入れました。

[2006-11-06] [qa:45817] のymtさんのパッチに差し換えました。

[2006-11-01] [qa:45685] の成田さんのご指摘に対応したymtさんのパッチを取り入れました。

[2006-09-18] URW Garamondに最適化したTeX,LaTeXロゴ(自動選択)を追加しました。T1エンコーディングの80-ffのフォントの両側にも \xkanjiskip が自動挿入されるようにしました。

[2006-07-25] [qa:44017][qa:44029] でのご指摘に対応しました

[2006-07-23] [qa:44009] でご指摘いただいた応急処置をしました

[2006-06-04] txfontsと併用した場合の不具合?を修正しました

[2006-05-31] 2005-12-01版LaTeXに対応したpLaTeXに対応しました

[2005-09-21] reportオプションを付けた時点でjspfクラスがバグっていたのを修正しました。

[2005-03-19] jsarticle に slide オプションを付けると超シンプルな PowerPoint 風のデザインになります。\usepackage{color} の併用をお勧めします。
全般に,二段組の際のリストの深さを 3zw から 2zw にしてみました。

[2005-02-25] [qa:34678] のパッチを適用しました。

[2004-12-29] jsbook の english オプションで目次に Chapter が出ないようにしました。

[2004-11-03] jsbook に report オプションを付けました。これでほぼ jsreport 的な使い方ができるのではないかと思います。ついでに \HUGE というフォントサイズを付けました。\sffamily の後に \rmfamily しても明朝体に戻らないバグを直しました。

[2004-09-27] 私のミスで一部古いバージョンに戻っていました ([qa:31772], [qa:31774])。 あと,トップレベルのリスト環境の前後半行アキにグルーが入っていたのを思いきって外しました。

[2004-08-08] 最近のdvipdfmxで正しいページサイズにならない件と古いLaTeXでエラーになる件を修正しました

[2004-04-29] 渡辺さん [qa:28493] のパッチをマージしました

[2004-02-25] 渡辺さん [qa:26463] のパッチをマージしました

[2004-02-14] ↓目次に目次が出るのは不自然なので外しました

[2004-02-12] 渡辺さん [qa:24079] のパッチをマージしました

[2004-01-26] ちょんぼ ^^; (Thanks: IZUMI Yusuke さん [qa:25193])

[2004-01-17] myheadings のバグフィックス (Thanks: 渡辺徹さん)

[2003-11-24] okumacro の \ruby でゴシックのルビはゴシックで付くようにしました。

[2003-10-12] okumacro に \kenten{圏点} などを入れました。

[2003-09-28] 齋藤修三郎さんのutfパッケージと,UTF16用VF にある winjis.zip をインストールした場合,\documentclass[winjis]{...} で機種依存文字をそのままShift JISのソースファイルに書いて dvipdfm(x) でも処理できるようになります。

[2003-09-17] mathabx との競合がありましたので修正しました。

[2003-08-22] 脚注記号の位置,\pound を修正しました。

[2003-06-30] shintok さんのご指摘 [qa:19827] に対するしっぽ愛好家さんの修正 [qa:19834] を取り入れました。

[2003-06-24] [qa:19516] でご指摘がありました理由で,\headfont\bold にするのをやめました。 また,[qa:19652] でご指摘のあったバグを修正しました。 plainfootplainhead というページスタイルを新設しました。 なお,今回から NetBSD プロジェクトのご提案を受けて jsclasses-030624.zip のようにファイル名に日付を付けました。 jsclasses.zip はとりあえず最新版へのシンボリックリンクにしてあります。

[2003-05-29] 齋藤修三郎さんの OTFパッケージbold 指定しなくても見出しが太字になるようにしました。 また,OTF パッケージで expert 指定時に okumacro.sty の \ruby がルビ用フォントになるようにしました。

[2003-05-17] papersizeオプションでdvipdfm(x)のpagesizeスペシャルも出力するようにしました。 これでPDF作成時にもページサイズが自動で定まります。 また,プレビューで右側のトンボが見えないのを防ぐため,トンボ指定時のページサイズを2インチ増しにしました。

[2003-04-29] jsbook クラスの vartwoside というオプションでヘッダは twoside,本文は oneside 的に組むようにしました。 \marginpar が常に右に来ます (Thanks: トニイさん,しっぽ愛好家さん)。

[2003-04-18] 今まで Shift JIS 形式で配布していましたが,トラブルが多いので,ISO-2022-JP 形式に直しました。 これでどの OS でも文字コード変換なしで使えるはずです。 ついでにアーカイブを Zip 形式にしました(LZH 形式も置いてあります)。 また,12Q14Q オプションを作りました。

[2003-03-16] 今までイタリック体と斜体に対応する和文フォントとしてゴシック体を宛てていましたが,明朝体に変更しました。 数学で多量のイタリック体を使うことがあり,ゴシック体では黒々となってしまうためです。 これに伴って,下の [2001-04-26] の一時しのぎは不要になりましたので元に戻しました。 こちらは amsthm を使わない場合に newtheorem で本文がイタリック体にならないという利点があるので残すことにしました。

[2003-03-06] mentuke オプションが機能していなかったのを修正しました (Thanks: 谷川さん)

[2003-03-02] トニイさんのパッチ [qa:17212] を取り入れました。

\renewcommand{\presectionname}{第}
\renewcommand{\postsectionname}{節}

とすると,節の名前が「第○節」になります。

[2003-02-21] okuverb で \verbatimsize が本文サイズと違うときに前後の間隔が違って見える現象を修正しました。 数式処理システムの出力を \def\verbatimsize{\fontsize{7}{5pt}\selectfont} で無理矢理本文に詰め込んだときに気になりました。

[2003-02-17] jsbook の \part が typo のため使えなくなっていました (Thanks: 谷川さん)。

[2003-02-16] \belowdisplayskip などを微妙に調整しました。 別行数式の前後のスペースが微妙に違うことの対処法はまだよくわかっていませんが,とりあえず amsmath の後に okumacro を読んだ場合は \[ \] や equation(*)/align(*) 環境等でスペースが一致するようにしました。

[2003-02-02] \subsubsection の前後のスペースが間違っていたのを修正しました(再修正するかもしれません)。

[2003-02-01] \chapter*{...} の内容が柱に出なくなっていたのを修正しました。 何か副作用がありましたらお教えください。

[2003-01-24] okumacro の丸囲み数字 \MARU{...} を修正しました。 graphicx と併用すると少しましになります。

[2003-01-16] jsbook の headings で oneside のときの柱を修正しました。

[2003-01-05] 「CやC++では」と書くと「C++」と「では」の間だけ四分アキが入らず詰まってしまいました(これはjarticle等でも同じ)。 また,okumacroの {\mytt ...}(スペースだけ通常と同じ幅で他は等幅出力,記号の直後で改行可能)で \_ が本物の等幅フォントの _ より少し小さくなっていました(これは通常の \texttt でも同様)。 これらの修正を入れました。

[2002-12-26] jsarticleのtwocolumnで\maketitleをabstract環境のに書くとabstractが段組されないようにしました。

[2002-11-27] 古いLaTeXでjbookで \tableofcontents を使うと無限ループになるようなので,とりあえず該当個所(\def\@schapter の次の \chaptermark{#1}%)を削除しました。 この行をなぜ入れたのか思い出し中。

[2002-11-15] 36pt,43pt オプションを新設しました。 ディレクタさんによればTVで使うには横15〜20文字がいいそうです。 landscapeで標準通りの余白なら,36ptで19文字,43ptで16文字になります。 dvipdfm -l で PDF にして Ctrl-L で全画面モードでプレゼンができます。

[2002-11-01] okumacro の倍角ダッシュ \−− を修正しました。

[2002-06-29] [2002-05-30] の修正で不都合が生じることがあるようですので元に戻しました。 すみませんが本文中の行列の行送りを狭くしたい場合はプリアンブルに

\everymath=\expandafter{\the\everymath \narrowbaselines}

を入れておいてください (Thanks: matsuo さん [tex-qa:9067])。[2002-07-03追記] 本田さん [tex-qa:9205] が minipage 環境の下請けの \@iiiparbox を直す別解を出してくださいました。

[2002-05-31] 25pt,30pt オプションを追加しました。

[2002-05-30] [tex-qa:8429] のご指摘などがありましたので,本文中でも行列の行送りが狭くなるようにしました。

[2002-05-11] [tex-qa:8217] のご指摘と [tex-qa:8218] の回答に従って, \leftmargini を 3zw に増やしてみました。

[2002-04-09] [tex-qa:7822] のご指摘にしたがってちょっと変更してみました。

[2002-03-13] 20pt オプションを復活させました。 また,他のスタイルファイルとの組合せで問題が生じていた \@ptsize の定義を 0 が 10pt になるように直しました。

[2002-02-07] \chapter* で柱が正しく出るようにしました (Thanks: 篠本さん)

[2002-01-27] // より行頭禁則が強くなっていたのを直したつもりです (Thanks: keiさん)

[2002-01-18] jsarticle\section\subsection の番号の頭が揃わなかったのを直しました。

[2001-11-29] jsarticle でも手抜きして \thechapter を定義していたので互換性の点で問題があったようです。 急遽修正しました (Thanks: 狩野さん)

[2001-07-03] fleqn オプションに対応するため,森本さんのご教示にしたがって eqnarray を修正しました。

[2001-05-19] 段組で \subsection* などが使えないバグの応急処置をしました (Thanks: 永井さん)

[2001-04-26] newtheorem で作った環境中がイタリック/ゴシックになるのを防ぎました (Thanks: 清野さん)

[2001-04-21] いつの間にかエンバグし,jsbook\chapter の直後の \section の位置がずれていました(Thanks: 久保さん)。

[2001-02-26] 刀祢さんのご指摘により,9pt,10pt,11pt,12pt,14pt,17pt,21pt オプションを作り,実際のフォントサイズは等比数列にしました(9.13,10,10.95,12,14.4,17.28,20.74)。 このほうがビットマップフォントの生成が少なくてすみます。 今までと互換性がなくなりますのでご注意ください。 ちょっと大きな変更ですが,どうでしょうか。 ご意見をお聞かせください。

[2001-02-19] jsbooktwocolumn 指定に恥ずかしいバグがありました (Thanks: 刀祢さん)

[2001-02-16] ドキュメントクラスはパッケージと独立であるべきだという文章を読んで納得してしまったので, multicol パッケージを要求しないようにしました。 ただ,multicol パッケージを読み込ませると索引でそれを使おうとします(本文では使いません)。 ほかも多少手直ししたかもしれません。

[2000-12-26] \section{}\subsection{} の間に本文がないとき開きすぎてしまうバグを直しました(つもりです)。 テストをお願いします。

[2000-12-23] okumacro.sty\ruby に漢字の高さ・深さがそれぞれ 0.88zw,0.12zw であると仮定した支柱を入れました。これは 『[改訂版]LaTeX2e 美文書作成入門』 で和文フォントをヒラギノにしたところルビと親字がくっつきすぎてしまったことへの対応です (ここ に問題点を書いておきました)。 なお,このページの「ツー・イー」の表記(2e,2ε)を統一しました。

[2000-12-18] \paragraph{...} の直後で改行しないと本文の位置がずれてしまうバグの対症療法 (Thanks: 林さん)

[2000-11-28] jsarticle\appendix が変でした。 とりあえず対症療法。

[2000-11-26] \和暦 という命令で \today が「平成12年……」になるようにしました。 デフォルトは西暦のままです。 学会誌スタイルファイルサンプルにも若干手を加えました。

[2000-11-22] 数式前後の空白 \abovedisplayskip\belowdisplayskip を変えても元に戻ってしまうというご報告をいただきました。 とりあえず \everydisplay={} と書いておけば元に戻らなくなります (が数式中の改行幅が本文と同じ幅に広がってしまいます)。 両方の要求を満たす方法がないか考えてみます。

[2000-11-19] 下記の「もうちょっと考えさせてください」にとりあえず対処療法を施したつもりです。

[2000-11-17] 段落先頭部分が半角文字だけの場合, 最初の全角文字の直前に入るべきグルーが入らない現象が生じています。 一番わかりやすい例が

\begin{verbatim}
A(B)C
\end{verbatim}

です。これは段落先頭に入れている \inhibitglue が最初の全角文字までリセットされないという pTeX のバグ/仕様のためです。とりあえず

\let\everyparhook=\relax

と書いておけば直ります。もうちょっと考えさせてください。

これとは別に,一つエンバグしていましたのを直しました(目次が目次に入ってループになる……)。

[2000-11-07] 土村さんが Vine 2.0 用の rpm を用意してくださいました。Red Hat 系なら使えると思います。

[2000-11-03] 9ptのときの行送りを若干減らしました。

[2000-10-29] 行分割のパラメータを若干修正して overfull hbox が出にくくしたつもりです。 たぶんこの時点のものが 『[改訂版]LaTeX2e 美文書作成入門』 に収録された様子です。

[2000-10-28] twocolumn オプションを使うと warning が出るというご報告をいただきました。 特に支障はないのですが,何となく嫌ですね。良い解決策があったらお教えください。

[2000-10-27] \kanjiskip\marginpar を若干チューンしました。 txfonts パッケージ使用時の LaTeX ロゴをチューンしました。

[2000-10-26] 今まで私の独断と偏見に基づくドキュメントクラスを公開していましたが, 10月6日の 研究集会「非欧文言語におけるTeX」 をきっかけとして,たくさんのかたがたとドキュメントクラスの今後について話し合う機会がありました。 その結果,まずは名前を js...(Japanese Standard ...?)と変更して心機一転し, JISフォントメトリックを使う標準的なドキュメントクラスとして再出発させることにしました。

新ドキュメントクラスはとりあえず

の2本立てで公開することにいたします。

アーカイブ

全Zipファイルのアーカイブです:

030624 / 030630 / 030822 / 030917 / 030928 / 031012 / 031124 / 040117 / 040126 / 040128 / 040212 / 040214 / 040225 / 040429 / 040808 / 040823 / 040927 / 041103 / 041229 / 050225 / 050319 / 050430 / 050921 = 051026 / 060120 / 060121 / 060212 / 060531 / 060604 / 060723 / 060725 / 060919 / 061031 / 061101 / 061106 / 071023 / 071024 / 080218 / 081226 / 090123 / 090222 / 090823 / 090826 / 100314 / 110510 / 130423 (間違い) / 130424 / 130514