
Nos documentos do parlamento alemão há números de quarto de página (por exemplo, página 9686 D para o quarto quarto da página 9686,(exemplo)). Como faço para criar tal numeração em LaTeX incluindo essas numeração no toc?
Responder1
Este é um problema muito interessante. Então tentei resolver isso no meu pacote de macros favorito, ou seja, TeX simples. Você pode se inspirar nisso e você (ou outra pessoa) pode tentar reimplementar essas ideias no LaTeX.
Precisamos definir a \output
rotina para fazer o design de página especificado. Eu não fiz isso (por uma questão de simplicidade e porque o TeX simples não é o pacote de macros desejado). Defino apenas uma página "manualmente" usando \dopage
macro definida para experimentos. Mas os princípios básicos são mostrados aqui.
\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
O resultado é:
Explicação: Precisamos dividir \vsplit
o conteúdo da página em quatro partes, as duas primeiras serão a primeira coluna e as duas segundas na segunda coluna. Então precisamos transferir \write
para o arquivo REF (ou arquivo AUX ou TOC se LaTeX for usado) as informações sobre a parte da página antes de cada parte. Isso é feito por \setpartpage
macro. Por exemplo, temos o seguinte conteúdo no arquivo 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}
Isso significa que \toclist
incluirá após a leitura do arquivo 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}
Agora, basta redefinir \tocline
para que imprima não só
#5
(o pageno), mas \partpage
também. Fiz isso redefinindo
\pglink
o que é usado no tocline para imprimir o número da página. Isso não é muito conceitual porque estão \hyperlinks
quebrados aqui, mas usamos isso apenas como um código experimental.