ConTeXt
ist ein großartiges TeX-Format, insbesondere da Metapost
es eng in das Format integriert ist, das die Erstellung von Seitennummerierungsstilen wie
.
Es ist leicht umzusetzenWennSie wissen Metapost
(was ich zugegebenermaßen nicht tue, aber lerne). Der folgende Code wurde aus der Dokumentation kopiert und eingefügtQuellenwodurch dieser Seitennummerierungsstil entstand.
\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
So gerne ich auch mit anderen Programmen arbeite ConTeXt
, ich fürchte, meine Fähigkeiten reichen nicht aus, um einige der Satzarbeiten, die ich normalerweise mache, auszuführen, insbesondere mit Mathematik und tikz
Grafiken. Glücklicherweise kann man das Metapost
in LaTeX mit demgmp
Paket. Ich habe egreg
das Beispiel von erfolgreich gmp
für die schicke Überschrift verwendet, aber ich kann die Details für die Seitennummerierung nicht herausfinden, da ich, glaube ich, nicht verstehe, wie \sbox
und \mpdim
funktioniert. Ich denke daran, fancyhdr
die Grafik zu integrieren Metapost
, um den Effekt zu erzielen. Hier ist ein Beispiel MWE
zum Ausprobieren.
\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}
was zu folgender Ausgabe führt: