空白ページ(メモページ)の挿入方法

空白ページ(メモページ)の挿入方法

- 伊藤 太一 の投稿
返信数: 9

はじめまして。TeXの利用歴はそこそこあるのですが,今までは参照ばかりしておりました。

さて,jsbookスタイルで原稿を作成しているのですが,見開きの右ページをメモ用の空白ページにしたいと思います。

そこで,右ページには空白ページを自動挿入するマクロを作りたいのですが,何かよい方法はないでしょうか?

もしできましたら,空白ページもページ数カウントの中に入れるか否かを選択できると助かります。

よろしくお願いいたします。
伊藤 太一 への返信

Re: 空白ページ(メモページ)の挿入方法

- 匿 名 の投稿
次のサンプルに示すような処理をお考えですか?

\documentclass{jbook}%%% js シリーズであるか否かは本質的ではない.
\makeatletter
\newif\ifCountBlankPage
\newif\if@first@output
\global\@first@outputtrue
\newbox\@outputpage@tempbox

\let\@LaTeX@outputpage\@outputpage
\def\@outputpage{%
  \ifCountBlankPage
      \if@first@output
        \ifodd\c@page
            \setbox\@outputpage@tempbox\box\@outputbox
            \@makeblankpage\@styleforblankpage
            \setbox\@outputbox\box\@outputpage@tempbox
        \fi
        \global\@first@outputfalse
      \fi
      \@LaTeX@outputpage
      \@makeblankpage\@styleforblankpage
  \else
      \@save@pagestyle
      \if@specialpage
        \csname ps@\@specialstyle\endcsname
        \global\@specialpagefalse
      \fi
      \if@twoside
        \let\@oddhead\@evenhead
        \let\@oddfoot\@evenfoot
      \fi
      \@LaTeX@outputpage
      \@restore@pagestyle
      \@makeblankpage{@absoluteempty}%
      \@restore@pagestyle
      \addtocounter{page}{-1}%
  \fi}
\def\@makeblankpage#1{%
  \edef\@tempa{#1}%
  \ifx\@tempa\@empty\else
      \global\@specialpagetrue
      \edef\@specialstyle{#1}%
  \fi
  \ifCountBlankPage\else
      \if@twoside
        \let\@evenhead\@oddhead
        \let\@evenfoot\@oddfoot
      \fi
  \fi
  \setbox\@outputbox\vbox to\@colht{}%
  \@LaTeX@outputpage}
\def\styleforblankpage#1{%
  \@ifundefined{ps@#1}%
      {\global\let\@styleforblankpage\@empty}%
      {\xdef\@styleforblankpage{#1}}}
\global\let\@styleforblankpage\@empty
\def\@save@pagestyle{%
  \let\@@oddhead\@oddhead \let\@@evenhead\@evenhead
  \let\@@oddfoot\@oddfoot \let\@@evenfoot\@evenfoot}
\def\@restore@pagestyle{%
  \let\@oddhead\@@oddhead \let\@evenhead\@@evenhead
  \let\@oddfoot\@@oddfoot \let\@evenfoot\@@evenfoot}
\def\ps@@absoluteempty{%
  \let\@oddhead\@empty \let\@evenhead\@empty
  \let\@oddfoot\@empty \let\@evenfoot\@empty}
\AtBeginDocument{\ifCountBlankPage\else \oddsidemargin\evensidemargin \fi}
\makeatother

\CountBlankPagetrue%%% 空白ページもページ数にカウントする場合
%%% \CountBlankPagefalse%%% 空白ページはページ数にカウントしない場合

\styleforblankpage{empty}
%%% 空白ページをページ数にカウントする場合の,空白ページのページスタイル.
%%% ただし,空文字列にした場合,テキスト部分(左側ページ)のページスタイルと
%%% 同じページスタイルを適用.
%%% また,空白ページをページ数にはカウントしない場合には,
%%% 空白ページのヘッダ・フッタを強制的に消去.

\begin{document}

\chapter{サンプル}
\section{サンプル}
サンプル\newpage
サンプル\newpage
サンプル
\end{document}
匿 名 への返信

Re: 空白ページ(メモページ)の挿入方法

- 伊藤 太一 の投稿
お返事ありがとうございます。
またお礼が遅くなりまして申し訳ありません。

仰せの通りです。
ただ,ここで書かれたマクロですと,空白ページの挿入を手動(\newpage記載)で行わなければならないようですが,私の希望するマクロは,左ページの終了を自動的に判別し,右ページは自動的に空白にしてくれるマクロです。

イメージとしては,セミナーのレジュメなどで右ページをメモ用にあけるものがありますが,あのような原稿を自動で作れないか,という疑問です。

質問ばかりで申し訳ありませんがよろしければ宜しくお願いいたします。
伊藤 太一 への返信

Re: 空白ページ(メモページ)の挿入方法

- 匿 名 の投稿
質問する前にテストしてみましたか?
あのサンプルでは「単にテキストの分量が少ないので」
手動で \newpage を入れているだけなのですが?
匿 名 への返信

Re: 空白ページ(メモページ)の挿入方法

- 伊藤 太一 の投稿
大変失礼を致しました。記載されたマクロを何も考えずにコピペして動作確認を取ったのみでした。

ご厚意に対して大変失礼なことをしてしまいまして,重ね重ねお詫び申し上げます。

仰せの通り,実際に目的のファイルで動作を確認してみたところ,無事に望み通りのファイルが完成いたしました。

お腹立ちのところに大変厚かましい質問とは存じますが,もう一点質問をさせていただいてよろしいでしょうか?

この動作を文書全体ではなく任意のページから任意のページまでで行う場合はどのようにすればよろしいでしょうか?

質問ばかりで申し訳ありませんがご助力いただければ幸です。


伊藤 太一 への返信

Re: 空白ページ(メモページ)の挿入方法

- 匿 名 の投稿
先のサンプルの

\let\@LaTeX@outputpage\@outputpage
\def\@outputpage{%
%%% (中略)
      \addtocounter{page}{-1}%
  \fi}

のところを

\let\@LaTeX@outputpage\@outputpage
\def\@outputpage@with@blankpage{%
%%% (中略)
      \addtocounter{page}{-1}%
  \fi}
\def\makeblankpage{\clearpage \let\@outputpage\@outputpage@with@blankpage}
\def\noblankpage{\clearpage \let\@outputpage\@LaTeX@outputpage}

とでもすれば,

・\makeblankpage コマンドで,
改ページののち,「右ページを空白にする」状態に切り替え,
・\noblankpage コマンドで,
改ページののち,「右ページにもテキストを入れる」状態に切り替える

ようになります(初期状態は右ページにもテキストを入れる状態です).
# 出力ルーチンの切り替えを伴うので,\makeblankpage/\noblankpage の際に
# 改ページを行うのはやむをえません.

匿 名 への返信

Re: 空白ページ(メモページ)の挿入方法

- 伊藤 太一 の投稿
ありがとうございます。
正に望み通りの原稿ができあがりました。

心より感謝いたします。

伊藤 太一 への返信

Re: 空白ページ(メモページ)の挿入方法

- 伊藤 太一 の投稿
新年明けましておめでとうございます。

再度の質問で申し訳ありません。
TeXの諸書式を勉強せよとのお叱りを受けそうですが,今回のご教授から,TeXでここまで出来るのか,と関心しており,今後勉強をして参るつもりです。

さて,教えていただいたマクロですが空白頁の左右を逆転させたい場合はどこをいじくれば宜しいのでしょうか?

ご教授いただければ幸です。
お手数おかけして申し訳ありません。
伊藤 太一 への返信

Re: 空白ページ(メモページ)の挿入方法

- 匿 名 の投稿
\ifodd\c@page

\ifodd\c@page\else
としたらどうなりますか?