為大型文件的變更部分設定非正統頁碼

為大型文件的變更部分設定非正統頁碼

我的要求正在列印一本包含一組食譜的食譜。然而,食譜會經常更新並插入新的食譜。因此,我需要一個解決方案來防止在僅更改部分內容時重新列印整本書。

我的解決方案草案就是像一些法律書籍出版商那樣處理它。他們為這本書提供了裝訂,可以打開該裝訂來刪除或添加單頁。這樣我只需要列印更改的頁面以及索引。

我的問題是頁碼。我尋找一種解決方案來保持插入部分的頁碼穩定並在其中添加後綴,例如21a, 21b。有可能這樣做嗎?我完全不知道從哪裡開始尋找這樣的解決方案。

(順便說一句:我並沒有固定在上面的解決方案上。如果有人有更好的主意來處理經常更改的大型文件以進行列印,我很高興聽到它。)

答案1

要更改範圍內的數字,您可以執行以下操作(我不保證這不會破壞事情):

編輯:我使環境可嵌套。我還將頁碼從 更改\alph\roman允許超過 26 個子頁面。

\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食譜的頁數可以編號為CC1CC2、等等——儘管大多數食譜可能會放在一頁上?您可以使“頁碼前綴”取決於配方,如下所示,或以某種合理的方式分配它。

書中的頁面將按字典順序顯示,從而可以輕鬆插入新頁面並找到所需的頁面。

這是實現這個想法的一種方法:

\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,短標題是可選的並且可以省略。

這個想法的另一個變體是將頁面標記為 aaa、aab、aac、...、bba、bbb、bbc...同樣,透過替換重新定義,使用上面的程式碼很容易做到這一點的\thepage

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

相關內容