大きな文書の変更部分に非標準的なページ番号を設定する

大きな文書の変更部分に非標準的なページ番号を設定する

私の要件一連のレシピからなる料理本を印刷しています。ただし、レシピの更新や新しいレシピの挿入が頻繁に行われます。そのため、一部だけが変更された場合でも本全体を再印刷するのを防ぐソリューションが必要です。

私の解決策案法律書の出版社のように扱うことです。彼らは、開いてページを 1 つずつ削除または追加できる製本で本を提供します。この方法だと、変更されたページと索引のみを印刷すれば済みます。

私の問題はページ番号です。挿入された部分のページ番号を一定に保ち、そこにページ番号を後置するソリューションを探しています。たとえば、、21a21bそれを行う可能性はありますか? そのようなソリューションをどこから探し始めればよいのか、まったくわかりません。

(ちなみに、私は上記の解決策に固執しているわけではありません。印刷用に頻繁に変更される大きなドキュメントを処理するためのより良いアイデアをお持ちの方がいらっしゃいましたら、ぜひ教えてください。)

答え1

範囲内の数値を変更するには、次のようにします (これによって問題が発生しないことは保証できません)。

編集: 環境をネスト可能にしました。また、26 を超えるサブページを許可するために、\alphページ番号を から に変更しました。\roman

\documentclass[]{article}

\usepackage{blindtext}

\makeatletter
\newcount\@subpagescount%
\newenvironment{subpages}{%
    \edef\@subpagesprefix{\thepage}%
    \@subpagescount=\c@page%
    \clearpage%
    \edef\thepage{\@subpagesprefix.\noexpand\roman{page}}%
    \setcounter{page}{1}%
}{\clearpage\setcounter{page}{\numexpr\@subpagescount+1}}
\makeatother

\begin{document}
\setcounter{page}{21}
\blindtext

\begin{subpages}
    First page in not nested \texttt{subpages}
    \clearpage
    Second page in not nested \texttt{subpages}
    \begin{subpages}
        \setcounter{page}{26}
        First page in nested \texttt{subpages}
        \clearpage
        Second page in nested \texttt{subpages}
    \end{subpages}
    After the nested \texttt{subpages}
\end{subpages}

\blindtext
\end{document}

答え2

ページ番号を変更したくない場合は、ページ番号をレシピに応じて設定することをお勧めします。たとえば、レシピのページには、、などのCarrot cake番号を付けることができます。ただし、ほとんどのレシピは 1 ページに収まるのではないでしょうか。次のように、「ページ番号のプレフィックス」をレシピに応じて設定するか、代わりに何らかの適切な方法で割り当てることができます。CC1CC2

本のページは辞書順に表示されるため、新しいページを挿入したり、目的のページを見つけたりするのが簡単になります。

このアイデアを実装する方法の 1 つを次に示します。

\documentclass{book}
\usepackage{xparse}
\usepackage{blindtext}

\let\realchapter\chapter% save the definition of \chapter for later use
\def\pageprefix{}% prefix for page numbers
\renewcommand\thepage{\pageprefix\arabic{page}}

%\chapter<page prefix>[short title]{title}
\RenewDocumentCommand\chapter{ r<> o m }{%
    \IfNoValueTF{#2}{\realchapter{#3}}%   without short title
                  {\realchapter[#2]{#3}}% with    short title
    \def\pageprefix{#1}\setcounter{page}{1}% reset page counter
}

\begin{document}

    \chapter<Pan>{Pancakes}
    \Blindtext

    \chapter<Om>{Omelettes}
    \Blindtext

    \chapter<CC>{Carrot cake}
    \Blindtext

\end{document}

そのため、\chapterコマンドにはページ プレフィックスを設定する必須引数が追加されました。構文は次のとおりです。

\chapter<page prefix>[short title]{title}

コマンドの場合と同様に\chapter、短いタイトルはオプションであり、省略できます。

\thepageこのアイデアの別のバリエーションとしては、ページをaaa、aab、aac、...、bba、bbb、bbc、...とラベル付けすることです。これも、上記のコードを使用して、の再定義を置き換えることで簡単に実行できます。

\renewcommand\thepage{\pageprefix\alph{page}}

関連情報