Установка нестандартных номеров страниц для измененных частей больших документов

Установка нестандартных номеров страниц для измененных частей больших документов

Мое требованиепечатает кулинарную книгу, состоящую из набора рецептов. Однако будут частые обновления рецептов и вставки новых. Поэтому мне нужно решение, которое предотвратит повторную печать всей книги, когда изменены только ее части.

Мой проект решенияэто сделать так, как это делают некоторые издатели юридических книг. Они снабжают книгу переплетом, который можно открыть, чтобы удалить или добавить отдельные страницы. Таким образом, мне нужно распечатать только измененные страницы, а также индекс.

Моя проблемаявляются номерами страниц. Я ищу решение, чтобы номера страниц оставались неизменными для вставленной части и постфиксировались там, например, 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}}

Связанный контент