ConTeXt
es un excelente formato TeX, especialmente porque Metapost
está estrechamente integrado en él, lo que produce un estilo de numeración de páginas como
.
Se implementa fácilmentesiya sabes Metapost
(lo cual admito que no, pero estoy aprendiendo). El siguiente es el código, copiado y pegado de la documentación.fuentesque produjo este estilo de numeración de páginas.
\setuppapersize[A4][A4]
\setuplayout[topspace=0.5in, backspace=1in, header=24pt, footer=36pt,
height=middle, width=middle]
\def\MPclipFive#1#2#3#4%
{\startreusableMPgraphic{clip:five:#1#2#3#4}{}
%
delta := #4;
width := #1-delta;
height := #2-delta;
lines := #3;
%
z1 = (0,0);
z2 = (lines,0);
z3 = (.5width,height);
z4 = (width-lines,0);
z5 = (width,0);
%
pickup pencircle
xscaled delta
yscaled .5delta
rotated 30;
%
draw z1--z2{dir 135}...z3...{dir -135}z4--z5 withcolor (.5,.5,.5);
%
pickup pencircle
scaled delta;
%
draw z1 withcolor red;
draw z2 withcolor red;
draw z3 withcolor red;
draw z4 withcolor red;
draw z5 withcolor red;
%
\stopreusableMPgraphic
\reuseMPgraphic{clip:five:#1#2#3#4}{}}
\defineoverlay
[NummerAchtergrond]
[\MPclipFive{\overlaywidth}{\overlayheight}{30pt}{5pt}]
\setuppagenumbering
[\c!location={\v!footer,\v!middle},
\c!command=\NummerCommando]
\unexpanded\def\NummerCommando#1%
{\framed
[\c!background=NummerAchtergrond,
\c!frame=\v!off,
\c!offset=6pt]
{\lower.5\dp\strutbox\hbox spread 60pt{\hss#1\hss}}}
%\setuppagenumbering[location={footer,center}]
\setupbodyfont[11pt,palatino]
\setupindenting[medium,yes]
\starttext
\phantom{Text.}
\vfill
\midaligned{Text.}
\stoptext
Por mucho que me guste trabajar con todo lo demás ConTeXt
, me temo que mis habilidades no están a la altura de mi experiencia con LaTeX para realizar algunas de las composiciones tipográficas que suelo hacer, especialmente con matemáticas y tikz
gráficos. Afortunadamente, uno puede hacerlo Metapost
dentro de LaTeX con elgmp
paquete. He utilizado con éxito egreg
el ejemplo de gmp
para el encabezado elegante, pero no puedo descifrar los detalles de la numeración de páginas debido a mi falta de comprensión, creo, de cómo \sbox
funciona \mpdim
. Estoy pensando en utilizarlo fancyhdr
para integrar el Metapost
gráfico para lograr el efecto. Aquí hay un MWE
para jugar.
\documentclass[10pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[shellescape,tex]{gmp}
\usepackage{xcolor}
\usepackage{titlesec}
\def\MPclipOne#1#2#3#4#5{\begin{mpost}
w := #1; width := 100; wfactor := w/width;
h := #2; height := 100; hfactor := h/height;
color lightred; lightred := (.90,.50,.50);
color lightgray; lightgray := (.95,.95,.95);
color gray; gray := (.50,.50,.50);
def random_delta (expr d) =
d-(uniformdeviate 2d)
enddef;
z1 = (0,height);
z2 = (0,0);
z3 = (width,0);
z4 = (width,height);
z5 = (width+random_delta(.2width),height+random_delta(.2height));
z6 = (.5width+random_delta(.1width),height+random_delta(.1height));
pickup pencircle
xscaled (#3/wfactor)
yscaled (#3/(2*hfactor))
rotated 30;
draw z5..z1..z2..z3..z4..z6 withcolor #4;
pickup pencircle
xscaled (#3/wfactor)
yscaled (#3/hfactor);
draw z1 withcolor #5;
draw z2 withcolor #5;
draw z3 withcolor #5;
draw z4 withcolor #5;
draw z5 withcolor #5;
draw z6 withcolor #5;
newwidth := (xpart (urcorner currentpicture)) -
(xpart (llcorner currentpicture));
newheight := (ypart (urcorner currentpicture)) -
(ypart (llcorner currentpicture));
currentpicture := currentpicture
xscaled (w/newwidth) yscaled (h/newheight);
\end{mpost}}
\def\MPclipFive#1#2#3#4%
{\begin{mpost}
%
delta := #4;
width := #1-delta;
height := #2-delta;
lines := #3;
%
z1 = (0,0);
z2 = (lines,0);
z3 = (.5width,height);
z4 = (width-lines,0);
z5 = (width,0);
%
pickup pencircle
xscaled delta
yscaled .5delta
rotated 30;
%
draw z1--z2{dir 135}...z3...{dir -135}z4--z5 withcolor (.5,.5,.5);
%
pickup pencircle
scaled delta;
%
draw z1 withcolor red;
draw z2 withcolor red;
draw z3 withcolor red;
draw z4 withcolor red;
draw z5 withcolor red;
%
\end{mpost}}
% I want to combine this with fancyhdr, perhaps, to get the desired result.
\newsavebox{\tacopage}
\newcommand{\tacopagenumber}[1]{%
\sbox\tacopage{#1}%
{\ooalign{%
\MPclipFive{\mpdim{\wd\tacopage}} % width
{\mpdim{\ht\tacopage}} % height
{12}
% thickness of the curve
{(.7,.7,.7)}
% color of the curve
{red}
% color of the spots
\cr\hfill
%\raisebox{\dimexpr.15\ht\tacopage+1.5pc\relax}
{\box\tacopage}\hfill
}}}
% For the section formatting
\newsavebox{\tacochapterbox}
\newcommand{\tacochapterhead}[1]{%
\sbox\tacochapterbox{\Large\bfseries #1}%
{\ooalign{%
\MPclipOne{\mpdim{\wd\tacochapterbox+6pc}} % width
{\mpdim{\ht\tacochapterbox+3pc}} % height
{8}
% thickness of the curve
{(.7,.7,.7)}
% color of the curve
{red}
% color of the spots
\cr\hfill\raisebox{\dimexpr.5\ht\tacochapterbox+1.5pc\relax}
{\box\tacochapterbox}\hfill}}}
\newcommand{\secformat}[1]{\tacochapterhead{\thesection\ \raisebox{-4pt}{\textcolor{green}{\rule{1pt}{\baselineskip}}}\ #1}}
\titleformat{name=\section}[block]
{\large\bfseries\filcenter}{}{0pt}{\secformat}
\titleformat{name=\section,numberless}[block]
{\large\bfseries\filcenter}{}{0pt}{\tacochapterhead}
\begin{document}
%\maketitle
\section{A section}
\tacopagenumber{a try}
\end{document}
que produce la salida: