summaryrefslogtreecommitdiff
path: root/fonts/shuffle
diff options
context:
space:
mode:
Diffstat (limited to 'fonts/shuffle')
-rw-r--r--fonts/shuffle/README10
-rw-r--r--fonts/shuffle/shuffle.dtx205
-rw-r--r--fonts/shuffle/shuffle.ins19
-rw-r--r--fonts/shuffle/shuffle.mf42
-rw-r--r--fonts/shuffle/shuffle.pdfbin0 -> 295904 bytes
-rw-r--r--fonts/shuffle/shuffle10.mf99
-rw-r--r--fonts/shuffle/shuffle7.mf100
7 files changed, 475 insertions, 0 deletions
diff --git a/fonts/shuffle/README b/fonts/shuffle/README
new file mode 100644
index 0000000000..895c673490
--- /dev/null
+++ b/fonts/shuffle/README
@@ -0,0 +1,10 @@
+A symbol for the shuffle product, which is used
+in some part of mathematics and physics.
+
+These files provides both a Metafont source for
+the symbol (designed by J. Gilbey) and a
+style file for an easy access.
+
+This work is released in the public domain.
+
+October 27, 2008
diff --git a/fonts/shuffle/shuffle.dtx b/fonts/shuffle/shuffle.dtx
new file mode 100644
index 0000000000..5b80bc6897
--- /dev/null
+++ b/fonts/shuffle/shuffle.dtx
@@ -0,0 +1,205 @@
+% \iffalse meta-comment
+%
+% The Metafont source of the shuffle product has
+% been produced by Julian Gilbey and have been
+% released in the public domain.
+%
+% The documentation has been provided by Antoine Lejay
+% and has been released in the public domain.
+%
+% The current maintainer of this work is Antoine Lejay.
+%
+% This work consists of the source file shuffle.dtx
+% and the derived files shuffle.ins,
+% shuffle.sty,
+% shuffle.pdf,
+% \fi
+% \iffalse
+%<*driver>
+\documentclass[a4paper]{ltxdoc}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+%\OnlyDescription
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[english]{babel}
+\usepackage{fancyvrb}
+%\usepackage[dvipdfm]{hyperref}
+\usepackage{hyperref}
+\usepackage{shuffle}
+\usepackage{amssymb,amsmath}
+\usepackage{mflogo}
+\hypersetup{
+ pdftitle={The shuffle product symbol},
+ pdfauthor={Julian Gilbey (Font) and Antoine Lejay (Documentation)}
+}
+
+\begin{document}
+ \DocInput{\jobname.dtx}
+\PrintIndex
+\PrintChanges
+\end{document}
+%</driver>
+%
+% \fi
+%
+% \CheckSum{0}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%\changes{1.0}{2008/10/28}{First released}
+%
+%\GetFileInfo{\jobname.sty}
+%\DoNotIndex{\@auxout,\@@end,\@empty,\@latex@warning,\@latex@warning@no@line}
+%\DoNotIndex{\@mainaux,\@namedef,\@nameuse,\AtEndDocument,\begingroup,\endgroup}
+%\DoNotIndex{\csname,\endcsname,\expandafter,\elseif,\def,\closeout,\if,\fi}
+%\DoNotIndex{\gdef,\global,\if@filesw,\if@tempswa,\ifx,\immediate,\input}
+%\DoNotIndex{\makeatletter,\NeedsTeXFormat,\newcommand,\newcounter,\jobname}
+%\DoNotIndex{\setcounter,\nfss@text,\null,\RequirePackage,\reset@font}
+%\DoNotIndex{\textbf,\textrm,\textsuperscript,\thepage,\z@,\stepcounter}
+%\DoNotIndex{\space,\string,\relax,\clearpage,\deadcycles,\else,\long,\let}
+%\DoNotIndex{\PackageError,\PackageInfo,\protect,\protected@edef,\protected@write}
+%\DoNotIndex{\ProvidesPackage,\@bsphack,\@esphack,\@gobbletwo,\@ifundefined}
+%\DoNotIndex{\@tempswfalse,\@testdef,\bfseries}
+%\MakeShortVerb{\|}
+%
+% \title{\texttt{\filename},\\ a shuffle product symbol%
+% \thanks{This file describes version \fileversion, last revised
+% \filedate.}}
+% \author{Julian Gilbey (font) and Antoine Lejay (documentation)}
+% \date{Released \filedate}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This package provides an interface to the symbol of shuffle product
+% which is used in some area of mathematics such as algebra.
+% \end{abstract}
+%
+% \section{The shuffle product symbol}
+%
+% \begin{quote}
+% \textbf{Dependencies: } this package uses the \MF\ files |shuffle.mf|,
+% |shuffle7.mf| and |shuffle10.mf|. These files should be put
+% into the |font/source/| directory of your |texmf| tree (do not
+% forget to perform |texhash| or an equivalent command).
+% \end{quote}
+%
+% This package provides the following two symbols
+% \begin{center}
+% \begin{tabular}{l l l}
+% Shuffle product & $\shuffle$ & \verb+\shuffle+ \\
+% Complete shuffle product & $\cshuffle$ & \verb+\cshuffle+ \\
+% \end{tabular}
+% \end{center}
+%
+% In a space of formal non-commutative polynomials whose indeterminates
+% are identified with letters (and then the product of indeterminates
+% are identified with words), the shuffle product
+% $u\shuffle v$ of two words
+% $u=u_1\dotsb u_n$ and $v=v_1\dotsb v_n$
+% is defined as the sum of the all words it is possible to
+% construct from $u$ and $v$ by preserving
+% the order of all the letters in each of the words.
+% For example
+% \[
+% \alpha\beta \shuffle \gamma= \gamma\alpha\beta+\alpha \gamma \beta+\alpha \beta\gamma.
+% \]
+%
+% The shuffle product is used in combinatorics and algebra
+% (notably for free Lie algebra \cite{reutenauer} and Hopf algebra) and
+% has applications for example in the formal resolution
+% of controlled differential equations.
+%
+% The symbol $\shuffle$ is a standard notation
+% but is does not seem to have already been provided for \LaTeX{}.
+% The \MF{} source of this symbol has
+% been designed by J. Gilbey for his own usage \cite{gilbey},
+% where the notion of complete shuffle product~$\cshuffle$
+% is also defined.
+%
+% The symbol $\shuffle$ is also defined as a Unicode
+% symbol at position |29E2| \cite{unicode} under
+% the name |SHUFFLE PRODUCT|.
+%
+% \begin{thebibliography}{0}
+%
+% \bibitem{gilbey}
+% J. Gilbey.
+% \newblock Permutation Groups, a Related Algebra and a Conjecture of Cameron,
+% \newblock \emph{Journal of Algebraic Combinatorics}, 19 (2004) 25--45.
+%
+% \bibitem{reutenauer}
+% C. Reutenauer.
+% \newblock \emph{Free Lie algebras}, Oxford University Press, 1993.
+%
+% \bibitem{unicode}
+% The Unicode Consortium.
+% \newblock \emph{The Unicode Standard 5.1}, 2007.
+% \end{thebibliography}
+%
+%
+% \StopEventually{}
+%
+% \section{The font definition files}
+%
+% The content of this file is standard.
+%
+% \iffalse
+%<*Ushuffle>
+% \fi
+% \begin{macrocode}
+\ProvidesFile{Ushuffle.fd}%
+\DeclareFontFamily{U}{shuffle}{}
+\DeclareFontShape{U}{shuffle}{m}{n}{%
+<5-8>shuffle7%
+<8->shuffle10%
+}{}
+% \end{macrocode}
+% \iffalse
+%</Ushuffle>
+% \fi
+%
+% \iffalse
+%<*package>
+% \fi
+% \section{The code}
+%
+% The content of this file is standard. It starts by declaring
+% the font as a symbol font.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{shuffle}[2008/10/27 Shuffle product symbol]
+\DeclareSymbolFont{Shuffle}{U}{shuffle}{m}{n}
+% \end{macrocode}
+%
+% \begin{macro}{\shuffle}
+% \begin{macro}{\cshuffle}
+% Two commands are defined access to the symbols defined as binary symbols.
+% \begin{macrocode}
+\DeclareMathSymbol\shuffle{\mathbin}{Shuffle}{"001}
+\DeclareMathSymbol\cshuffle{\mathbin}{Shuffle}{"002}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \iffalse
+%</package>
+% \fi
+% \Finale
+\endinput
diff --git a/fonts/shuffle/shuffle.ins b/fonts/shuffle/shuffle.ins
new file mode 100644
index 0000000000..840fc1f60f
--- /dev/null
+++ b/fonts/shuffle/shuffle.ins
@@ -0,0 +1,19 @@
+\input docstrip.tex
+\preamble
+ ----------------------------------------------------------------
+ A symbol for the shuffle product
+ Metafont symbol by Julian Gilbey (in public domain)
+ Documentation by Antoine Lejay
+ Released in the public domain
+ ----------------------------------------------------------------
+\endpreamble
+\Msg{Generating the LaTeX package ...}
+\generate{\file{shuffle.sty}{\from{shuffle.dtx}{package}}}
+\Msg{Generating the .fd files ..}
+\generate{\file{Ushuffle.fd}{\from{shuffle.dtx}{Ushuffle}}}
+\endbatchfile
+\endinput
+%%
+%% End of file `shuffle.ins'.
+
+
diff --git a/fonts/shuffle/shuffle.mf b/fonts/shuffle/shuffle.mf
new file mode 100644
index 0000000000..ab2010b804
--- /dev/null
+++ b/fonts/shuffle/shuffle.mf
@@ -0,0 +1,42 @@
+% This is shuffle.mf for creating a shuffle product symbol in the
+% same format as the CM symbols. It is based on the cmsy font.
+% Written by Julian Gilbey <J.D.Gilbey@qmul.ac.uk>
+% This file is in the public domain
+
+font_coding_scheme:="TeX math symbols";
+mode_setup; font_setup;
+
+font_slant slant; font_x_height x_height#;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+% (The spacing is zero so that \TeX\ will always add the italic correction.)
+% (The calling file should give the other math symbol font parameters.)
+
+slant:=mono_charic#:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+
+cmchar "Shuffle product sign";
+beginchar(oct"001",16u#,.7asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.1u; x2=x1; x4=x5=w-x1;
+x3=good.x 0.5[x2,x4]; x6=x3;
+y1=good.y h+o; bot y2=0; y4=y2; y5=y1;
+y3=y2; y6=y1;
+draw z1---z2---z4---z5; % stems and bar
+draw z3--z6; % middle bar
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Complete shuffle product sign";
+beginchar(oct"002",16u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.1u; x2=x1; x4=x5=w-x1;
+x3=good.x 0.5[x2,x4]; x6=x3;
+y1=good.y 7/10h+o; bot y2=0; y4=y2; y5=y1;
+y3=y2; y6=y1;
+x7=good.x 0.05[x2,x4]; x8=w-x7;
+y7=good.y h; y8=y7;
+draw z1---z2---z4---z5; % stems and bar
+draw z3--z6; % middle bar
+draw z7--z8; % overline
+labels(1,2,3,4,5,6,7,8); endchar;
+
+bye.
diff --git a/fonts/shuffle/shuffle.pdf b/fonts/shuffle/shuffle.pdf
new file mode 100644
index 0000000000..c07a0cd16b
--- /dev/null
+++ b/fonts/shuffle/shuffle.pdf
Binary files differ
diff --git a/fonts/shuffle/shuffle10.mf b/fonts/shuffle/shuffle10.mf
new file mode 100644
index 0000000000..268d9162d8
--- /dev/null
+++ b/fonts/shuffle/shuffle10.mf
@@ -0,0 +1,99 @@
+% This is a driver file to create a 10 point shuffle symbol.
+% It is just a barely modified cmsy10.mf file.
+% Written by Julian Gilbey <J.D.Gilbey@qmul.ac.uk>
+% This file is in the public domain
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSHUF"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=29/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=30/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=33/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=7/10; % subscripts to 10pt will normally be in 7pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+54/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+48/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-124/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.99pt#-subs*asc_height#, % sup1
+ 8.49pt#-subs*asc_height#, % sup2
+ 104/36pt#, % sup3
+ 54/36pt#, % sub1
+ -(8.49pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 10.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate shuffle % switch to the driver file
diff --git a/fonts/shuffle/shuffle7.mf b/fonts/shuffle/shuffle7.mf
new file mode 100644
index 0000000000..2e1d3a0472
--- /dev/null
+++ b/fonts/shuffle/shuffle7.mf
@@ -0,0 +1,100 @@
+% This is a driver file to create a 7 point shuffle symbol.
+% It is just a barely modified cmsy7.mf file.
+% Written by Julian Gilbey <J.D.Gilbey@qmul.ac.uk>
+% This file is in the public domain
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSHUF"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=7/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=19.5/36pt#; % lowercase stem breadth
+curve#:=22.5/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=23.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=23.5/36pt#; % uppercase stem breadth
+cap_curve#:=26.5/36pt#; % uppercase curve breadth
+cap_ess#:=22.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/7; % subscripts to 7pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+12/36pt#, % num2
+ math_axis#+1.51rth#+34/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-86/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-12/36pt#), % denom2
+ 6.99pt#-subs*asc_height#, % sup1
+ 6.49pt#-subs*asc_height#, % sup2
+ 72/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate shuffle % switch to the driver file
+