Dos contadores de páginas diferentes en ediciones críticas

Dos contadores de páginas diferentes en ediciones críticas

Estoy editando una colección de artículos de un académico. Para ello encuentro extremadamente útil, si no necesario, indicar saltos de página en la primera edición de los artículos para que las citas de ciertos pasajes de estos artículos en otros textos, especialmente los más antiguos, sigan siendo válidas y viables. Aquí está mi ejemplo de MWE para esto:

\documentclass{scrbook}

\usepackage{lipsum}
\usepackage{scrlayer-scrpage}
\ohead{\textbf{\pagemark}}
\ihead{\textit{\theoldpage}}
\ofoot{}
\pagestyle{scrheadings}

\newcounter{oldpage}
\setcounter{oldpage}{1}

\newcommand{\markoldpage}{
[mark]
\marginpar{\begin{center}\footnotesize\theoldpage\end{center}}
\stepcounter{oldpage}
}

\begin{document}

\chapter{Chapter}

\markoldpage{} This is the first oldpage. \markoldpage{} Now the second oldpage has begun.

\newpage

\lipsum \markoldpage{} \lipsum \markoldpage{}

\end{document}

Lo que he conseguido es definir un nuevo contador oldpage. Cada capítulo comienza un nuevo artículo. Por lo tanto, configuro manualmente el oldpagecontador cada vez que comienza un nuevo capítulo. Algún tipo de símbolo ›[marca]‹ indica un salto de página en el texto antiguo. La página antigua también se indica en los márgenes. Luego, el oldpagecontador se coloca en el encabezado, exactamente en el lado opuesto de los contadores de páginas normales (por ejemplo, si el contador de páginas de un libro está en la parte superior exterior, el contador de páginas antiguas está en la parte superior interior). Logré esto usando scrlayer-scrpage.

Lo que me gustaría es que el contador de páginas antiguas sea sensible al contexto, lo que significa que debería comportarse de la siguiente manera:

  • Si hay una página antigua a la que se hace referencia en la página nueva, el contador de páginas antiguas debería simplemente mostrar el número (por ejemplo, ›1 ‹)
  • Si hay dos páginas antiguas a las que se hace referencia en la página nueva, el contador de páginas antiguas debe mostrar los números separados por un espacio y una coma (por ejemplo, ›1, 2‹)
  • Si hay tres o más páginas antiguas mencionadas en la página nueva, el contador de páginas antiguas debe mostrar el primer y el último número conectados con un doble guión (por ejemplo, ›1--3‹).

Para programar el comportamiento deseado, supongo que es necesario trabajar con condicionales, y estos condicionales probablemente necesiten información sobre cuántos saltos de página antigua habrá al final en la página de salida. Mis preguntas son así:

  • ¿Dónde se puede obtener la información y cómo consultarla? No tengo ni idea y no sabría por dónde empezar a buscar.

Estaría muy agradecido si alguien pudiera ayudarme a dar el primer paso y ayudarme a escribir algo de código sobre esto.

Respuesta1

El sistema de marcas de TeX proporciona una manera de rastrear los valores que deben registrarse en el encabezado de la página.

ingrese la descripción de la imagen aquí

\documentclass{scrbook}

\usepackage{lipsum}
\usepackage{scrlayer-scrpage}
\ohead{\textbf{\pagemark}}
\def\lastoldpagemark{\topmarks\oldpagemark}
\ihead{\textit{\lastoldpagemark\ifnum\lastoldpagemark<\botmarks\oldpagemark--\botmarks\oldpagemark\fi
               \xdef\lastoldpagemark{\botmarks\oldpagemark}}}
\ofoot{}
\pagestyle{scrheadings}
\newmarks\oldpagemark % etex marks not completely reliable in latex, but probably OK here
\newcounter{oldpage}
\setcounter{oldpage}{1}

\newcommand{\markoldpage}{%%%
[mark]%%%
\marks\oldpagemark{\theoldpage}\marginpar{\centering\footnotesize\theoldpage}%%%
\stepcounter{oldpage}%%%
}

\begin{document}

\chapter{Chapter}

\markoldpage{} This is the first oldpage. \markoldpage{} Now the second oldpage has begun.

\newpage

\lipsum \markoldpage{} \lipsum \markoldpage{}

\end{document}

información relacionada