次のサンプルに示すような処理をお考えですか?
\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}
\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}
先のサンプルの
\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 の際に
# 改ページを行うのはやむをえません.
\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 の際に
# 改ページを行うのはやむをえません.