Мое требованиепечатает кулинарную книгу, состоящую из набора рецептов. Однако будут частые обновления рецептов и вставки новых. Поэтому мне нужно решение, которое предотвратит повторную печать всей книги, когда изменены только ее части.
Мой проект решенияэто сделать так, как это делают некоторые издатели юридических книг. Они снабжают книгу переплетом, который можно открыть, чтобы удалить или добавить отдельные страницы. Таким образом, мне нужно распечатать только измененные страницы, а также индекс.
Моя проблемаявляются номерами страниц. Я ищу решение, чтобы номера страниц оставались неизменными для вставленной части и постфиксировались там, например, 21a
, 21b
. Есть ли возможность это сделать? У меня совершенно нет идей, с чего даже начать искать такое решение.
(Кстати: я не зациклен на своем решении, приведенном выше. Если у кого-то есть идея получше, как справиться с часто меняющимися большими документами для печати, буду рад ее услышать.)
решение1
Чтобы изменить числа в диапазоне, вы можете сделать следующее (я не гарантирую, что это ничего не сломает):
EDIT: Я сделал среду вложенной. Также я изменил номера страниц с на, \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}}