
En los documentos del parlamento alemán hay números de cuarto de página (p. ej. página 9686 D para el cuarto cuarto de la página 9686,(ejemplo)). ¿Cómo creo dicha numeración en LaTeX, incluida esta numeración en el toc?
Respuesta1
Este es un problema muy interesante. Así que intenté resolver esto en mi paquete de macros favorito, es decir, TeX simple. Puede inspirarse en esto y usted (u otra persona) puede intentar volver a implementar estas ideas en LaTeX.
Necesitamos establecer la \output
rutina para poder realizar el diseño de página especificado. No hago esto (por simplicidad y porque TeX simple no es el paquete de macros deseado). Sólo configuro una página "manualmente" usando \dopage
una macro definida para experimentos. Pero los principios fundamentales se muestran aquí.
\input opmac
\def\lorem{Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Ut purus elit, vestibulum ut, placerat ac,
adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu
libero, nonummy eget, consectetuer id, vulputate a, magna. Donec
vehicula augue eu neque. Pellentesque habitant morbi tristique
senectus et netus et malesuada fames ac turpis egestas. Mauris ut
leo.}
\splittopskip=12pt
\long\def\dopage#1{%
\setbox0=\vbox{\hsize=7cm \emergencystretch=2em \penalty0
#1\par\nobreak\vfil\penalty0}
\setbox1=\vsplit0 to0pt
\hbox{\vbox to240pt{\hbox{(A)}\vfil\hbox{(B)}\vfil}\kern5pt
\vbox{\setpartpage{A}%
\setbox1=\vsplit0 to 120pt
\edef\tmp{\the\dp1}\box1 \kern-\tmp
\setpartpage{B}%
\vsplit0 to120pt}%
\kern5pt\vrule\kern5pt
\vbox{\setpartpage{C}%
\setbox1=\vsplit0 to 120pt
\edef\tmp{\the\dp1}\box1 \kern-\tmp
\setpartpage{D}%
\vsplit0 to120pt}%
\kern5pt\vbox to240pt{\hbox{(C)}\vfil\hbox{(D)}\vfil}}
}
\def\setpartpage#1{\wref\addto{\noexpand\toclist{\def\noexpand\partpage{#1}}}}
\def\pglink#1{#1 \partpage}
\maketoc
\vskip1cm
\dopage{
\sec First item
\lorem
\sec Second item
\lorem \par \lorem
\sec Third item
\lorem
}
\bye
El resultado es:
Explicación: Necesitamos que \vsplit
el contenido de la página esté dividido en cuatro partes, las dos primeras serán la primera columna y las dos segundas serán la segunda columna. Luego necesitamos \write
guardar en el archivo REF (o archivo AUX o TOC si se usa LaTeX) la información sobre la parte de la página antes de cada parte. Esto se hace mediante \setpartpage
macro. Por ejemplo, tenemos el siguiente contenido en el archivo REF usando OPmac:
%% OPmac - REF file
\Xpage{1}
\addto\toclist {\def \partpage {A}}
\Xtoc{1}{\rm }{1}{First item }{1}
\addto\toclist {\def \partpage {B}}
\Xtoc{1}{\rm }{2}{Second item }{1}
\addto\toclist {\def \partpage {C}}
\addto\toclist {\def \partpage {D}}
\Xtoc{1}{\rm }{3}{Third item }{1}
Esto significa que \toclist
se incluirá después de leer el archivo REF:
\def\partpage {A}
\tocline{1}{\rm}{1}{First item }{1} % {level}{font}{sec number}{text}{page}
\def\partpage {B}
\tocline{1}{\rm}{2}{Second item }{1}
\def\partpage {C}
\def\partpage {D}
\tocline{1}{\rm}{3}{Third item }{1}
Ahora, solo necesitamos redefinir \tocline
para que imprima no solo
#5
(el número de página) sino \partpage
también. Hice esto redefiniendo
\pglink
el cual se usa en tocline para imprimir el número de página. Esto no es muy conceptual porque \hyperlinks
aquí no funcionan, pero lo usamos sólo como código experimental.