TeX jreport 表紙の表示について

TeX jreport 表紙の表示について

- ジョルジュ サンド の投稿
返信数: 12
TeXstudioを利用しております. 
chapterを使用したい + articleのデフォルトのようにタイトル, chapterをページ分けしないような文書を作成したいと, jreport.clsの"\clearpage" を全て削除したclsファイルを作成したのですが, 上手くいきません. よろしくお願いします.
ジョルジュ サンド への返信

Re: TeX jreport 表紙の表示について

- aminophen の投稿
(1) タイトルページをなくす

jreport.cls には notitlepage オプションがあります。

(2) \chapter の改ページ抑制

jreport.cls の446-451 ページ \chapter の定義に

\newcommand{\chapter}{%
  \if@openright\cleardoublepage\else\clearpage\fi
  \thispagestyle{jpl@in}%
  \global\@topnum\z@
  \@afterindenttrue
  \secdef\@chapter\@schapter}

とあります。
この \clearpage をやめさせればいいわけですが、直接 jreport.cls を書き換えるのは良くないです。
(TeX をアップデートしたら上書きされる & TeX ソースを持ち運ぶと別環境で同じ作業が必要 etc.)

よって、お使いの LaTeX ソースのプリアンブルで再定義します。

----------
\documentclass[notitlepage]{jreport}

%%%%% ここから下を入れてください
\makeatletter
\renewcommand{\chapter}{%
  \if@openright\cleardoublepage\fi
  \thispagestyle{jpl@in}%
  \global\@topnum\z@
  \@afterindenttrue
  \secdef\@chapter\@schapter}
\makeatother
%%%%% ここまで

\usepackage{lipsum} % ダミーテキストのため
\title{タイトル}
\author{著者}
\begin{document}
\maketitle
\chapter{ここが第一章}
\lipsum*[1-5]
\chapter{ここが第二章}
\lipsum*[1-5]
\chapter{ここが第三章}
\lipsum*[1-5]
\end{document}
----------

これで \chapter の改ページを抑制、かつタイトルページをなくすことができます。
aminophen への返信

Re: TeX jreport 表紙の表示について

- aminophen の投稿
% 質問への回答に関係あるようなないような…

jreport.cls は JIS フォントメトリックでないので、似たことができるとウワサの
jsbook.cls の report オプションで同じハックをしようとしたのですが…

jsbook.cls の1147-1154行目

\newcommand{\chapter}{%
  \if@openright\cleardoublepage\else\clearpage\fi
  \plainifnotempty % 元: \thispagestyle{plain}
  \global\@topnum\z@
  \if@english \@afterindentfalse \else \@afterindenttrue \fi
  \secdef
    {\@omit@numberfalse\@chapter}%
    {\@omit@numbertrue\@schapter}}

を参考に書き換えると

----------
\documentclass[report]{jsbook}

%%%%% ここから下がハック
\makeatletter
\renewcommand{\chapter}{%
  \if@openright\cleardoublepage\fi
  \plainifnotempty % 元: \thispagestyle{plain}
  \global\@topnum\z@
  \if@english \@afterindentfalse \else \@afterindenttrue \fi
  \secdef
    {\@omit@numberfalse\@chapter}%
    {\@omit@numbertrue\@schapter}}
\makeatother
%%%%% ここまで

\usepackage{lipsum} % ダミーテキストのため
\title{タイトル}
\author{著者}
\begin{document}
\maketitle
\chapter{ここが第一章}
\lipsum*[1-4]
\chapter{ここが第二章}
\lipsum*[1-4]
\chapter{ここが第三章}
\lipsum*[1-4]
\end{document}
----------

このソースを処理すると、「第2章」「第3章」が直前のテキストから改行されず、しかも
最後の章にいたっては行間隔が変になります。一方、上のソースで本文を

----------
\begin{document}
\maketitle

\chapter{ここが第一章}
\lipsum*[1-4]

\chapter{ここが第二章}
\lipsum*[1-4]

\chapter{ここが第三章}
\lipsum*[1-4]

\end{document}
----------

と書くと解消します。原因がわかる方、いらっしゃいますでしょうか?
aminophen への返信

Re: TeX jreport 表紙の表示について

- 匿 名 の投稿
以下のようにするのは、ダメでしょうか。
\documentclass[report,openany]{jsbook}
\usepackage{lipsum} % ダミーテキストのため
\title{タイトル}
\author{著者}
\begin{document}
\maketitle
\chapter{ここが第一章}
\lipsum*[1-4]
\chapter{ここが第二章}
\lipsum*[1-4]
\chapter{ここが第三章}
\lipsum*[1-4]
\end{document}
匿 名 への返信

Re: TeX jreport 表紙の表示について

- aminophen の投稿
質問が分かりにくかったので、論点を整理します。
最初の ジョルジュ サンド さんの質問(jreport の場合)には、私の最初の回答でたぶん問題ないです。

私の二番目の投稿でやりたいのは「jsbook の report で章ごとの改ページを止める」です。
- openany で試しましたが、実現できませんでした。
- openany に先ほどのハックでもやはりダメ(行間隔が変)
です。
aminophen への返信

Re: TeX jreport 表紙の表示について

- 前田 一貴 の投稿
\@makechapterhead の冒頭が,jreport.cls は \vskip2\Cvs になっているのですが,
jsbook.cls では \vspace*{2\Cvs} になっているので,これを \vskip2\Cvs に変えてみると
うまくいきました.

\documentclass[report]{jsbook}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\chapter}{\else\clearpage}{}{}{}
\patchcmd{\@makechapterhead}{\vspace*{2\Cvs}}{\vskip2\Cvs}{}{}
\makeatother

\usepackage{lipsum} % ダミーテキストのため
\title{タイトル}
\author{著者}
\begin{document}
\maketitle
\chapter{ここが第一章}
\lipsum*[1-3]
\chapter{ここが第二章}
\lipsum*[1-3]
\chapter{ここが第三章}
\lipsum*[1-3]
\end{document}

\vspace と \vskip の違いは,私も把握できていなかったのですが,
http://tex.stackexchange.com/questions/30062/vspace-vs-vskip
あたりが参考になるのではないでしょうか.
前田 一貴 への返信

Re: TeX jreport 表紙の表示について

- aminophen の投稿
おぉぉ、ありがとうございます。
jsbook.cls の report オプションでも jreport.cls と同じような結果を得ることができました。
前田 一貴 への返信

Re: TeX jreport 表紙の表示について

- ジョルジュ サンド の投稿
ありがとうございます!

ただ、もしかして、includeを使うと、改ページされてしまいますよね…?

ジョルジュ サンド への返信

Re: TeX jreport 表紙の表示について

- 前田 一貴 の投稿
\include は読み込みの前後で \clearpage するように定義されているので,
jsarticle などでも改ページされます.
単に改ページさせたくないだけならば \input を使えばよいです.
\includeonly を使いたい場合は,newclude というパッケージを読み込んでおくと
改ページしない \include* が使えるようになるようです.
ジョルジュ サンド への返信

Re: TeX jreport 表紙の表示について

- TONE Kozaburo の投稿
これでは駄目ですか。

% pLaTeX
\documentclass{jsarticle}

\renewcommand{\presectionname}{第}
\renewcommand{\postsectionname}{章}
\begin{document}

\section{ほげ}

ほげほげ

\section{ふが}

ふがふが

\end{document}