Metapost 그래픽을 사용하여 멋진 페이지 번호 매기기 사용

Metapost 그래픽을 사용하여 멋진 페이지 번호 매기기 사용

ConTeXtMetapost특히 다음과 같은 페이지 번호 매기기 스타일을 생성하는 데 긴밀하게 통합되어 있기 때문에 훌륭한 TeX 형식입니다.

여기에 이미지 설명을 입력하세요.

쉽게 구현됩니다만약에아시다시피 Metapost(저는 그렇지 않다는 것을 인정하지만 배우고 있습니다). 다음은 문서에서 복사하여 붙여넣은 코드입니다.출처이 페이지 번호 매기기 스타일을 생성했습니다.

\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

나는 다른 모든 작업을 로 수행하는 것을 좋아하지만 ConTeXtLaTeX 경험에서 내가 일반적으로 수행하는 일부 조판, 특히 수학과 그래픽을 수행하는 기술에 미치지 못하는 것이 두렵습니다 tikz. 고맙게도 MetapostLaTeX 내부에서 다음을 사용하여 작업을 수행할 수 있습니다.gmp패키지. 멋진 제목을 egreg사용하기 위해 의 예제를 성공적으로 사용했지만 방법 과 작동 방식 gmp에 대한 이해가 부족하여 페이지 번호 매기기에 대한 세부 사항을 해결할 수 없습니다 . 효과를 얻기 위해 그래픽을 통합하는 데 사용할 생각입니다 . 여기 가지고 놀 수 있는 것이 있습니다.\sbox\mpdimfancyhdrMetapostMWE

\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}

출력은 다음과 같습니다.

여기에 이미지 설명을 입력하세요

관련 정보