Verwenden Sie eine ausgefallene Seitennummerierung mit Metapost-Grafiken

Verwenden Sie eine ausgefallene Seitennummerierung mit Metapost-Grafiken

ConTeXtist ein großartiges TeX-Format, insbesondere da Metapostes eng in das Format integriert ist, das die Erstellung von Seitennummerierungsstilen wie

Bildbeschreibung hier eingeben.

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 tikzGrafiken. Glücklicherweise kann man das Metapostin LaTeX mit demgmpPaket. Ich habe egregdas Beispiel von erfolgreich gmpfür die schicke Überschrift verwendet, aber ich kann die Details für die Seitennummerierung nicht herausfinden, da ich, glaube ich, nicht verstehe, wie \sboxund \mpdimfunktioniert. Ich denke daran, fancyhdrdie Grafik zu integrieren Metapost, um den Effekt zu erzielen. Hier ist ein Beispiel MWEzum 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:

Bildbeschreibung hier eingeben

verwandte Informationen