我的要求正在列印一本包含一組食譜的食譜。然而,食譜會經常更新並插入新的食譜。因此,我需要一個解決方案來防止在僅更改部分內容時重新列印整本書。
我的解決方案草案就是像一些法律書籍出版商那樣處理它。他們為這本書提供了裝訂,可以打開該裝訂來刪除或添加單頁。這樣我只需要列印更改的頁面以及索引。
我的問題是頁碼。我尋找一種解決方案來保持插入部分的頁碼穩定並在其中添加後綴,例如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
食譜的頁數可以編號為CC1
、CC2
、等等——儘管大多數食譜可能會放在一頁上?您可以使“頁碼前綴”取決於配方,如下所示,或以某種合理的方式分配它。
書中的頁面將按字典順序顯示,從而可以輕鬆插入新頁面並找到所需的頁面。
這是實現這個想法的一種方法:
\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}}