ConTeXt
Metapost
は、次のようなページ番号スタイルを生成するために緊密に統合されているので、特に優れた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
私は他のすべての作業を で行いたいのですがConTeXt
、私が普段行っているようなタイプセッティング、特に数学やグラフィックスに関しては、LaTeXの経験から私のスキルがそれに追いついていないのではないかと心配していますtikz
。ありがたいことに、Metapost
LaTeX内でgmp
egreg
パッケージ。の例では、派手な見出しに を使用することに成功しましたが、 との動作gmp
の理解が不足しているため、ページ番号付けの詳細を理解できません。 の効果を実現するために、 を使ってグラフィックを統合することを考えています。を試してみるといいでしょう。\sbox
\mpdim
fancyhdr
Metapost
MWE
\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}
出力は次のようになります: