diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/dingbat |
Initial commit
Diffstat (limited to 'fonts/dingbat')
-rw-r--r-- | fonts/dingbat/README | 36 | ||||
-rw-r--r-- | fonts/dingbat/ark10.mf | 320 | ||||
-rw-r--r-- | fonts/dingbat/dingbat.dtx | 329 | ||||
-rw-r--r-- | fonts/dingbat/dingbat.ins | 58 | ||||
-rw-r--r-- | fonts/dingbat/dingbat.mf | 693 | ||||
-rw-r--r-- | fonts/dingbat/dingbat.pdf | bin | 0 -> 130376 bytes | |||
-rw-r--r-- | fonts/dingbat/dingbat.tex | 48 |
7 files changed, 1484 insertions, 0 deletions
diff --git a/fonts/dingbat/README b/fonts/dingbat/README new file mode 100644 index 0000000000..954410faa4 --- /dev/null +++ b/fonts/dingbat/README @@ -0,0 +1,36 @@ + +---------------------------------+ + | DINGBAT: | + |A LaTeX interface to the ark10.mf| + | and dingbat.mf symbol fonts | + | | + | By Scott Pakin, pakin@uiuc.edu | + +---------------------------------+ + +Installation +------------ + +There's nothing special about building dingbat: + + latex dingbat.ins <== Generate dingbat.sty + latex dingbat.dtx <== Produce the documentation (dingbat.dvi) + makeindex -s gind.ist dingbat <== Generate an index + latex dingbat.dtx <== Incorporate the index into the document + +If you're new to this, see +http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages for more +information on installing packages. + + +Copyright and license +--------------------- +Copyright (C) 2001 Scott Pakin, pakin@uiuc.edu + +This package may be distributed and/or modified under the conditions +of the LaTeX Project Public License, either version 1.2 of this +license or (at your option) any later version. The latest version of +this license is in: + + http://www.latex-project.org/lppl.txt + +and version 1.2 or later is part of all distributions of LaTeX version +1999/12/01 or later. diff --git a/fonts/dingbat/ark10.mf b/fonts/dingbat/ark10.mf new file mode 100644 index 0000000000..751a17cd8f --- /dev/null +++ b/fonts/dingbat/ark10.mf @@ -0,0 +1,320 @@ +% ark10.mf file +% Copyright (c) 1988 by Arthur M. Keller +% The ARK font was initially done in MF79 +% by Scott Kim. It was converted to (new) MF by N.N. Billawala +% of Metamarks. +% It contains 10 characters. + + +rulepen:=pensquare scaled 1; % makes one pixel proofing lines +mode_setup; +designsize:=10pt#; +width#:=10pt#; +height#:=7.5pt#; +depth#:=2.5pt#; + define_pixels(width,height,depth); +extra_beginchar:=extra_beginchar&"save p;path p[];"; + +% ***** general macros ***** +extra_beginchar:=extra_beginchar&"w#:=charwd;"; % for adjust def +extra_endchar:=extra_endchar&"wsaved:=w; w:=r-l;"; % for adjust def + +letter_fit#:=letter_fit:=0; +def adjust(expr left_adjustment,right_adjustment) = + l:=-round(left_adjustment*hppp)-letter_fit; + interim xoffset:=-l; + charwd:=charwd+2letter_fit#+left_adjustment+right_adjustment; + r:=l+round(charwd*hppp); + w:=r-round(right_adjustment*hppp)-letter_fit; + enddef; + +def makebox(text rule)= % makes a reference box for screen and proof characters + for y=0,h.o_,-d.o_: rule((l,y),(r,y)); endfor % horizontals + for x=l,r: rule((x,-d.o_),(x,h.o_)); endfor % outer verticals + if charic<>0: rule((wsaved+charic*hppp,h.o_),(wsaved+charic*hppp,.5h.o_));fi +enddef; + +% ***** pencils ***** + +line_thickness:=max(1,.3pt); % thickness of character lines +pencil_thickness#:=.6width#; % pencil thickness +tip_length#:=.5width#; % length of pencil tips +lead_length#:=.3tip_length#; % amount of pencil tip lead showing +tip_curve:=.2; % curvature of the pencil tip +lead_curve:=.1; % curvature of the pencil tip lead part +bottom_showing:=.7; % proportion of bottom height/width in pencil + +def pencil_pen=pencircle scaled line_thickness; enddef; +define_pixels(pencil_thickness,tip_length,lead_length); + + +% The pencil keeps a general vertical size no matter what the rotation angle is. +% The width is determined after the character is drawn. +% Adjustments can be made to the height of the pencil(size) +% angle of pencil from upright or 90 degrees(rotation) +% thickness or width of the pencil(pencil_thickness) +% length of the tip of the pencil(pencil_tip) +% size of the lead showing in the tip(lead_length) +% the curvature of the pencil tip(tip_curve) as a percentage of the tip_length +% the curvature of the lead tip(lead_curve) as a percentage of the lead_length +% the size of the bottom part of the pencil(bottom_showing) + +vardef pencil(expr tip,size,rotation)= + save x,y,p,t; path p[]; transform t; pickup pencil_pen; + z1=tip+(0,size/(sind abs(90+rotation))); % bottom + z2=z1-(0,.5pencil_thickness); + for n:=0 upto 5:z[10+n]=z2+(.5pencil_thickness,0) rotated (n*60); endfor + for n:=0 upto 5:z[10+n]a=.45[z2,z[10+n]]; endfor % bottom lead + z2 transformed t=z1-(0,.5*bottom_showing*pencil_thickness); + z11 transformed t=z11; z12 transformed t=z12; + z113=z13 transformed t; z114=z14 transformed t; + z115=z15 transformed t; z110=z10 transformed t; + z3=tip+(0,tip_length); penpos3(pencil_thickness,0); % tip + z4=tip_curve[z3,tip]; + p1=z3r...z4{left}...z3l; + z20=(x114,ypart tip); z21=(x115,ypart tip); + z22=p1 intersectionpoint (z114--z20); + z23=p1 intersectionpoint (z115--z21); + z5=tip+(0,lead_length); % lead + y30=y31=y5; z30=whatever[tip,z3l]; z31=whatever[tip,z3r]; + z6=lead_curve[z5,tip]; + p2=(z10--z11--z12--z13--z14--z15--cycle) transformed t; % pencil bottom + p3=z113--z3l--tip--z3r--z110; % pencil + p4=z114--z22; + p5=z115--z23; + p6=(z10a..z11a..z12a..z13a..z14a..z15a..cycle) transformed t; % bottom lead + p7=tip--z31...z6{left}...z30--cycle; % lead tip + for n:=1 upto 5: draw p[n] rotatedaround (tip,rotation); endfor + for n:=6,7: fill p[n]rotatedaround (tip,rotation); endfor +enddef; + +% An amount for placing the tip of the pencil +def tip_adjust= + if abs(tip_length*cosd (90+rotation))>abs(.5*pencil_thickness):0 + else:abs(.5*pencil_thickness-abs(tip_length*cosd (90+rotation)))fi enddef; + +"small pencil"; + rotation:=55; % angle of pencil + pencil_width#:= + pencil_thickness#+ % base or minimum width + (height#+depth#) % vertical pencil dimension + *abs(cosd(90+rotation)/sind(90+rotation)) % * rotation + -pencil_thickness#*abs(cosd(90+rotation)); % - adjustment to thickness + + beginchar(oct"120",pencil_width#,height#,depth#); + z0=(if rotation>0:w- else:0+ fi tip_adjust,0); + pencil(z0,h+d,rotation); + adjust(.2width#,.2width#); + endchar; + +"large pencil"; + rotation:=20; % angle of pencil + pencil_width#:= + pencil_thickness#+ % base or minimum width + (height#+depth#) % vertical pencil dimension + *abs(cosd(90+rotation)/sind(90+rotation)) % * rotation + -pencil_thickness#*abs(cosd(90+rotation)); % - adjustment to thickness + + beginchar(oct"127",pencil_width#,2.8height#,2.8depth#); + z0=(if rotation>0:w- else:0+ fi tip_adjust,0); + pencil(z0,h+d,rotation); + adjust(.2width#,.2width#); + endchar; + + +% ***** return ***** +def return_pen=pencircle scaled line_thickness; enddef; + + +"return"; + beginchar(oct"103",.4width#,.6height#,.6depth#); + save curvature,arrowhead,base_length; + curvature1=angle((h+d),-.25(h+d)); + curvature2=angle(-(h+d),-.25(h+d)); + arrowhead=.2h; % length of arrowhead + pickup return_pen; % the pen used in this char + top lft z1=(0,h); bot lft z3=(0,-d); rt z2=(w,.5[y1,y3]); + p1=z1{dir curvature1}...z2{down}...z3{dir curvature2}; + z4=z3+(arrowhead,0) rotated curvature2; + z5=z3+(arrowhead,0) rotated (curvature2+120); + z6=z3+(arrowhead,0) rotated (curvature2-120); + draw p1; filldraw z4--z5--z6--cycle; + adjust(.3width#,.2width#); + endchar; + + + +% ***** eye ***** +"eye"; + beginchar(oct"105",1.2width#,.75height#,depth#); + save limit; pair limit; % keeps curve bounded + randomseed:=.71; % iris shape + pickup pencil_pen; % the pen used in this char + lft x1=0; x0=x2=x4=.5w; rt x3=w; + bot y2=0; y0=y1=y3=.5h; top y4=h; + limit=if abs(y2-y1)>abs(x2-x1):down else:(0,0) fi; + draw z1{limit}...z2{right}...z3{-limit}-- + z3+(0,eps){-limit}...z4{left}...z1+(0,eps){limit}--cycle; % outer shape + draw z2..(.5[z0,z3])..z4..(.5[z0,z1])..cycle; % "retina" + pickup pencircle; % number and shape of pupil lines can be altered here + for n:=0 step 25 until 360: + draw z0--(z0+(.9abs(y4-y0),0)rotated n); + endfor + for n:=60 step 60 until 360: + draw z0--(z0+(.9abs(y4-y0),0)rotated (n*(uniformdeviate 5))); + endfor + pickup pencircle scaled .10h; + for n:=12 step 30 until 375: + draw z0--(z0+((((uniformdeviate 2)+2)*.15abs(y4-y0)),0)rotated n); + endfor + adjust(.2width#,.2width#); + endchar; + + +% ***** hands ***** +handheight#:=6.5pt#; +handdepth#:=3pt#; + define_pixels(handheight,handdepth); +cuff_width:=.15width; % thickness of the cuff +shirt_width:=.75cuff_width; % thickness of the sleeve +digit:=round(.2handheight); % thickness of the fingers +indent:=.05width; % finger indent increment +knuckles:=2indent; % length of knuckles +finger_tips:=3indent; % length of finger tips + +def handpen=pickup pencircle scaled .2pt; enddef; + +% Makes an open horizontal oval shape; path moves clockwise +vardef finger(expr tip,alength)suffix $= + save x,y,tips; boolean tips; tips=if str$="tips":true else:false fi; + z2=tip; x1=x3=x2 if tips:+finger_tips else:-knuckles fi; x4=x3-alength; + y1=y2+.5digit; y1-y3=digit; y4=y3; + if tips:z4..z3{left}...z2...z1{right} else:z1{right}...z2...z3{left}...z4 fi +enddef; + +% Points used in the hand characters +def hand_points= + y1=y2=h; top y3=top y4=y2-(.05h+1); x1=x5=0; x2=x3=x6=x7=x1+cuff_width;% cuff + y5=y6=0; bot y7=bot y8=y5+(.05h+1); x4=x8=x1a=x3a=x2+shirt_width; + y1a=y3-(.1h); y2a=y3; x2a=.3[x1a,w-3indent]; % wrist + y3a=y1a-.5h; y4a=y7+(.05h+1); y5a=.2[y4a,y2a]; x4a=x5a=.45[x3a,x5d]; + y1b=y3-.5digit; y2b+digit=y3b+2digit=y4b+3digit=y1b; y5b=y4b; % knuckles + x1b+2indent=x2b+indent=x3b=x4b+indent=w; x5b=x3b+2knuckles; + for n:=1 upto 4:y[n]c=y[n]b; endfor % tips + x1c=x2c=x3c=x4c-indent=0[x3d,x3b]; + z3d=(.5[x3a,x3b],-d); z2d=z3d+(.5digit,.3d); z4d=z2d-(digit,0); % up thumb + z1d=(x2d-indent,.5[y2d,y4b-.5digit]); z5d=z1d-(1.5digit,0); + z1e=z5d+(0,.5digit); z2e=(.2[x1e,x3b],y1e); % down thumb + z5e=(.55[x3c,x3b],y3b-.5digit); + z3e=.4[z2e,z5e]+(.55digit,0)rotated(angle(z5e-z2e)-90); + z4e-z3e=whatever*(z5e-z2e); y4e=y4b; + z6e=z3e+(1.1digit,0)rotated(angle(z5e-z2e)+90); z7e=z6e-(.5knuckles,0); + z8e=(1[x3a,x5d],y3b); + enddef; + +def cuff(expr trans)= + p10=z1--z2--z6--z5--cycle; fill p10 transformed trans; % cuff + p11=z3--z4--z8--z7; draw p11 transformed trans; % sleeve + enddef; + +"left thumbs down"; + beginchar(oct"104",1.2*width#,handheight#,handdepth#); + transform t[]; t1=identity shifted (0,-.1h); + handpen hand_points; + cuff(t1); % cuff + p1=z1a{right}...z2a{right}...finger(z1b,2.5indent); % finger + p2=finger(z2b,2.5indent); % finger + p3=finger(z3b,4.5indent); % finger + p4=finger(z4b,2.5indent)... % finger + z1d{down}...z2d{down}...z3d...z4d{up}...z5d{z4a-z3d}...z3a{left};% thumb + for n:=1 upto 4: draw p[n] transformed t1; endfor + adjust(.2width#,.2width#); + endchar; + +"right thumbs down"; + beginchar(oct"144",1.2*width#,handheight#,handdepth#); + transform t[]; + t1=identity reflectedabout ((.5w,0),(.5w,h)) shifted (0,-.1h); + handpen hand_points; + cuff(t1); % cuff + p1=z1a{right}...z2a{right}...finger(z1b,2.5indent); % finger + p2=finger(z2b,2.5indent); % finger + p3=finger(z3b,4.5indent); % finger + p4=finger(z4b,2.5indent)... % finger + z1d{down}...z2d{down}...z3d...z4d{up}...z5d{z4a-z3d}...z3a{left};% thumb + for n:=1 upto 4: draw p[n] transformed t1; endfor + adjust(.2width#,.2width#); + endchar; + +"left thumbs up"; + beginchar(oct"125",1.2*width#,handheight#,handdepth#); + transform t[]; + t1=identity reflectedabout ((0,.5h),(w,.5h)) shifted (0,-.1h); + handpen hand_points; + cuff(t1); % cuff + p1=z1a{right}...z2a{right}...finger(z1b,0)--finger(z1c,0)tips; % finger + p2=finger(z2b,0)--finger(z2c,0)tips; % finger + p3=finger(z3b,0)--finger(z3c,0)tips; % finger + p4=finger(z4c,0)tips--finger(z4b,0){left}... % finger + z1d{down}...z2d{down}...z3d...z4d{up}...z5d{z4a-z3d}...z4a...z5a{up}; + p5=z3a--z4a; % wrist + for n:=1 upto 5: draw p[n] shifted (0,-.07h) transformed t1; endfor + adjust(.2width#,.2width#); + endchar; + +"right thumbs up"; + beginchar(oct"165",1.2*width#,handheight#,handdepth#); + transform t[]; + t1=identity rotatedaround ((.5w,.5h),180) shifted (0,-.1h); + handpen hand_points; + cuff(t1); % cuff + p1=z1a{right}...z2a{right}...finger(z1b,0)--finger(z1c,0)tips; % finger + p2=finger(z2b,0)--finger(z2c,0)tips; % finger + p3=finger(z3b,0)--finger(z3c,0)tips; % finger + p4=finger(z4c,0)tips--finger(z4b,0){left}... % finger + z1d{down}...z2d{down}...z3d...z4d{up}...z5d{z4a-z3d}...z4a...z5a{up}; + p5=z3a--z4a; % wrist + for n:=1 upto 5: draw p[n] shifted (0,-.07h) transformed t1; endfor + adjust(.2width#,.2width#); + endchar; + +"left hand pointing right"; + beginchar(oct"122",1.2*width#,handheight#,handdepth#); + transform t[]; + t1=identity reflectedabout ((0,.5h),(w,.5h)) shifted (0,-.1h); + handpen hand_points; + cuff(t1); % cuff + z1f=(z2e{right}...z3e{z5e-z2e}...z5e{left}...z6e{z2e-z5e}) + intersectionpoint ((0,y4b-.5digit)--(w,y4b-.5digit)); + p1=z1a{right}...z2a{right}...finger(z1b,0)--finger(z1c,0)tips; % finger + p2=finger(z2b,0)--finger(z2c,0)tips; % finger + p3=finger(z3b,0)--finger(z3c,0)tips; % finger + p4=z5e--finger(z5b,0)--z1f; % finger + p5=z3a{right}...z1e{right}...z2e{right}...z3e{z5e-z2e}... + z4e{z5e-z2e}...z5e{left}...z6e{z2e-z5e} & z6e--z7e{dir 120}..z8e; + w:=w+2knuckles; + for n:=1 upto 5: draw p[n] shifted (0,-.07h) transformed t1; endfor + adjust(.2width#,.35width#); + endchar; + +"right hand pointing left"; + beginchar(oct"114",1.2*width#,handheight#,handdepth#); + transform t[]; + t1=identity rotatedaround ((.5w,.5h),180) shifted (0,-.1h); + handpen hand_points; + cuff(t1); % cuff + z1f=(z2e{right}...z3e{z5e-z2e}...z5e{left}...z6e{z2e-z5e}) + intersectionpoint ((0,y4b-.5digit)--(w,y4b-.5digit)); + p1=z1a{right}...z2a{right}...finger(z1b,0)--finger(z1c,0)tips; % finger + p2=finger(z2b,0)--finger(z2c,0)tips; % finger + p3=finger(z3b,0)--finger(z3c,0)tips; % finger + p4=z5e--finger(z5b,0)--z1f; % finger + p5=z3a{right}...z1e{right}...z2e{right}...z3e{z5e-z2e}... + z4e{z5e-z2e}...z5e{left}...z6e{z2e-z5e} & z6e--z7e{dir 120}..z8e; + w:=w+2knuckles; + for n:=1 upto 5: draw p[n] shifted (0,-.07h) transformed t1; endfor + adjust(.35width#,.2width#); + endchar; + +end + diff --git a/fonts/dingbat/dingbat.dtx b/fonts/dingbat/dingbat.dtx new file mode 100644 index 0000000000..a30fb90400 --- /dev/null +++ b/fonts/dingbat/dingbat.dtx @@ -0,0 +1,329 @@ +% \iffalse meta-comment +% +% Copyright (C) 2001 Scott Pakin <pakin@uiuc.edu> +% ------------------------------------------------------- +% +% This package may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.2 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.2 or later is part of all distributions of LaTeX +% version 1999/12/01 or later. +% +% \fi +% \iffalse +%% File: dingbat.dtx Copyright (C) 2001 Scott Pakin <pakin@uiuc.edu> +% +%<package>\NeedsTeXFormat{LaTeX2e} +%<package>\ProvidesPackage{dingbat} +%<package> [2001/04/27 v1.00 Hands and other dingbats] +%<uarkfd>\ProvidesFile{uark.fd} +%<uarkfd> [2001/04/27 v1.00 Font definitions for the ark10 font] +%<udingbatfd>\ProvidesFile{udingbat.fd} +%<udingbatfd> [2001/04/27 v1.00 Font definitions for the dingbat font] +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{dingbat} +\usepackage{tabularx} +\EnableCrossrefs +\CodelineIndex + +% Uncomment the following line if you don't want to include a +% source-code listing. +%\OnlyDescription + +\begin{document} +\DocInput{dingbat.dtx} +\end{document} +%</driver> +% \fi +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \CheckSum{76} +% \GetFileInfo{dingbat.sty} +% +% \title{The \textsf{dingbat} package\thanks{This file +% has version number \fileversion, last +% revised \filedate.}} +% \author{Scott Pakin\\pakin@uiuc.edu} +% \date{\filedate} +% \maketitle +% +% \changes{v1.00}{2001/04/27}{Initial version} +% +% \DoNotIndex{\newcommand,\selectfont} +% +% \StopEventually{^^A +% \section{Credits} +% +% Just so it's clear who did what, here are the various components of +% the \textsf{dingbat} package and the associated copyright information: +% +% \begin{center} +% \begin{tabularx}{0.9\textwidth}{lX} +% \texttt{ark10.mf} & Copyright (c) 1988 by Arthur M. Keller \\ +% & The ARK font was initially done in MF79 +% by Scott Kim. It was converted to (new) MF by N.N. Billawala +% of Metamarks. \\ +% \texttt{dingbat.dtx} & Copyright (C) 2001 Scott Pakin \\ +% \texttt{dingbat.ins} & Copyright (C) 2001 Scott Pakin \\ +% \texttt{dingbat.mf} & Created 3-3-89 by Doug Henderson \\ +% \texttt{uark.fd} & Copyright (C) 2001 Scott Pakin +% \end{tabularx} +% \end{center} +% +% \PrintIndex +% } +% +% \begin{abstract} +% The \textsf{dingbat} package provides a \LaTeXe\ interface to the +% |ark10.mf| and |dingbat.mf| fonts. +% \end{abstract} +% +% +% \section{Usage} +% +% ^^A Typeset a symbol in one column and its name in the next. +% \def\tblsym#1{#1 & \texttt{\string#1}} +% +% \DescribeMacro{\rightpointright} +% \DescribeMacro{\leftpointright} +% \DescribeMacro{\leftthumbsdown} +% \DescribeMacro{\leftthumbsup} +% \DescribeMacro{\rightpointleft} +% \DescribeMacro{\rightthumbsdown} +% \DescribeMacro{\rightthumbsup} +% The \textsf{dingbat} package defines the following hand gestures: +% +% \begin{center} +% \renewcommand{\arraystretch}{1.2} +% \begin{tabular}{lll} +% \tblsym{\rightpointright} & Right hand pointing to the right \\ +% \tblsym{\leftpointright} & Left hand pointing to the right \\ +% \tblsym{\leftthumbsdown} & Left hand, thumbs down \\ +% \tblsym{\leftthumbsup} & Left hand, thumbs up \\ +% \tblsym{\rightpointleft} & Right hand pointing to the left \\ +% \tblsym{\rightthumbsdown} & Right hand, thumbs down \\ +% \tblsym{\rightthumbsup} & Right hand, thumbs up \\ +% \end{tabular} +% \end{center} +% +% \noindent +% (|\rightpointright| comes from |dingbat.mf|, while the rest come from +% |ark10.mf|, hence, the discrepency in style.) +% +% \DescribeMacro{\squarewithdots} +% \DescribeMacro{\filledsquarewithdots} +% \DescribeMacro{\Sborder} +% \DescribeMacro{\Zborder} +% The following symbols are intended to be used to create fancy borders +% around a box or the entire page. +% +% \begin{center} +% \renewcommand{\arraystretch}{1.2} +% \begin{tabular}{lll} +% \tblsym{\squarewithdots} & Unfilled square with dots \\ +% \tblsym{\filledsquarewithdots} & Filled square with dots \\ +% \tblsym{\Sborder} & \textit{S}-like border design \\ +% \tblsym{\Zborder} & \textit{Z}-like border design \\ +% \end{tabular} +% \end{center} +% +% \noindent +% Note that if you \emph{are} going to create fancy borders, I recommend +% using the \textsf{niceframe} package. \textsf{niceframe} is geared +% to drawing fancy borders and knows specifically about the border +% characters in |dingbat.mf|. The symbols defined by the +% \textsf{dingbat} package, |\squarewithdots|, |\filledsquarewithdots|, +% |\Sborder|, and |\Zborder|, are the only border characters that might +% be useful outside of a border (e.g., in a straight line or as a bullet +% in a fancy itemized list); the other, unnamed, characters defined in +% |dingbat.mf| represent a frame's corners and sides. +% +% \DescribeMacro{\largepencil} +% \DescribeMacro{\anchor} +% \DescribeMacro{\carriagereturn} +% \DescribeMacro{\checkmark} +% \DescribeMacro{\eye} +% \DescribeMacro{\satellitedish} +% \DescribeMacro{\smallpencil} +% The following \textsf{dingbat} symbols don't fit into either of the +% previous categories: +% +% \begin{center} +% \renewcommand{\arraystretch}{1.2} +% \begin{tabular}{lll} +% \tblsym{\largepencil} & Large pencil \\ +% \tblsym{\anchor} & Anchor \\ +% \tblsym{\carriagereturn} & Carriage return \\ +% \tblsym{\checkmark} & Check mark \\ +% \tblsym{\eye} & Eye \\ +% \tblsym{\satellitedish} & DLA satellite dish \\ +% \tblsym{\smallpencil} & Small pencil \\ +% \end{tabular} +% \end{center} +% +% For some of these symbols, most notably |\largepencil|, the font +% metrics seem to be a bit off. As a result, the symbols tend to jut +% into previous or subsequent lines. +% +% +% \section{Implementation} +% +% There's nothing particularly interesting about the implementation. +% Section~\ref{sec:symbol-commands} defines the symbol commands that +% make up |dingbat.sty|, and Section~\ref{sec:font-definitions} creates +% the |uark.fd| and |udingbat.fd| font definition files, which \LaTeX\ +% loads when |dingbat.sty| selects font encoding~|U| and font family +% |ark| or |dingbat|. +% +% \subsection{Symbol commands} +% \label{sec:symbol-commands} +% +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% \begin{macro}{\arkfamily} +% \begin{macro}{\ark@sym} +% Define a macro, |\arkfamily|, which switches the font to |ark| and +% another macro, |\ark@sym| which typesets a symbol in the |ark| font. +% \begin{macrocode} +\newcommand{\arkfamily}{\fontencoding{U}\fontfamily{ark}\selectfont} +\newcommand{\ark@sym}[1]{{\arkfamily\symbol{#1}}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\carriagereturn} +% \begin{macro}{\leftthumbsdown} +% \begin{macro}{\eye} +% \begin{macro}{\rightpointleft} +% \begin{macro}{\smallpencil} +% \begin{macro}{\leftpointright} +% \begin{macro}{\leftthumbsup} +% \begin{macro}{\largepencil} +% \begin{macro}{\rightthumbsdown} +% \begin{macro}{\rightthumbsup} +% There are only ten symbols in the |ark| font. We define names +% individually for each of them. Note that |\largepencil|'s bounding box +% is a little too short, so |\largepencil| may jut into the previous line +% of text. I think some of the other bounding boxes may be the wrong +% size, as well, but I haven't yet tested that carefully. +% \begin{macrocode} +\newcommand{\carriagereturn}{\ark@sym{'103}} +\newcommand{\leftthumbsdown}{\ark@sym{'104}} +\newcommand{\eye}{\ark@sym{'105}} +\newcommand{\rightpointleft}{\ark@sym{'114}} +\newcommand{\smallpencil}{\ark@sym{'120}} +\newcommand{\leftpointright}{\ark@sym{'122}} +\newcommand{\leftthumbsup}{\ark@sym{'125}} +\newcommand{\largepencil}{\ark@sym{'127}} +\newcommand{\rightthumbsdown}{\ark@sym{'144}} +\newcommand{\rightthumbsup}{\ark@sym{'165}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\dingbatfamily} +% \begin{macro}{\dingbat@sym} +% Define a macro, |\dingbatfamily|, which switches the font to |dingbat| +% and another macro, |\dingbat@sym| which typesets a symbol in the +% |dingbat| font. +% \begin{macrocode} +\newcommand{\dingbatfamily}{\fontencoding{U}\fontfamily{dingbat}\selectfont} +\newcommand{\dingbat@sym}[1]{{\dingbatfamily\symbol{#1}}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\checkmark} +% \begin{macro}{\satellitedish} +% \begin{macro}{\rightpointright} +% \begin{macro}{\anchor} +% The following are definitions for all the non-border characters in +% |dingbat.mf|. +% \begin{macrocode} +\newcommand{\checkmark}{\dingbat@sym{'104}} +\newcommand{\satellitedish}{\dingbat@sym{'111}} +\newcommand{\rightpointright}{\dingbat@sym{'116}} +\newcommand{\anchor}{\dingbat@sym{'117}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\squarewithdots} +% \begin{macro}{\filledsquarewithdots} +% \begin{macro}{\Sborder} +% \begin{macro}{\Zborder} +% The following are the border characters. There are many more, but I +% haven't yet made up \LaTeX\ names for them. +% \begin{macrocode} +\newcommand{\squarewithdots}{\dingbat@sym{'102}} +\newcommand{\filledsquarewithdots}{\dingbat@sym{'103}} +\newcommand{\Sborder}{\dingbat@sym{'123}} +\newcommand{\Zborder}{\dingbat@sym{'132}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +%</package> +% \end{macrocode} +% +% \subsection{Font definition files} +% \label{sec:font-definitions} +% +% \subsubsection{\ttfamily uark.fd} +% +% All we do here is define |ark| as a symbol font (|U|~encoding) and tell +% \LaTeX\ to scale |ark10.mf| to whatever font size is requested. +% +% \begin{macrocode} +%<*uarkfd> +% \end{macrocode} +% +% \begin{macrocode} +\DeclareFontFamily{U}{ark}{} +\DeclareFontShape{U}{ark}{m}{n}{<-> ark10}{} +% \end{macrocode} +% +% \begin{macrocode} +%</uarkfd> +% \end{macrocode} +% +% \subsubsection{\ttfamily udingbat.fd} +% +% Similarly, we define |dingbat| as another, |U|-encoded symbol font and +% instruct \LaTeX\ to scale |dingbat.mf| to whatever font size is requested. +% +% \begin{macrocode} +%<*udingbatfd> +% \end{macrocode} +% +% \begin{macrocode} +\DeclareFontFamily{U}{dingbat}{} +\DeclareFontShape{U}{dingbat}{m}{n}{<-> dingbat}{} +% \end{macrocode} +% +% \begin{macrocode} +%</udingbatfd> +% \end{macrocode} +% +% \Finale +% diff --git a/fonts/dingbat/dingbat.ins b/fonts/dingbat/dingbat.ins new file mode 100644 index 0000000000..c181a57421 --- /dev/null +++ b/fonts/dingbat/dingbat.ins @@ -0,0 +1,58 @@ +%% +%% This file will generate fast loadable files and documentation +%% driver files from the doc files in this package when run through +%% LaTeX or TeX. +%% +%% Copyright (C) 2001 Scott Pakin <pakin@uiuc.edu> +%% ------------------------------------------------------- +%% +%% This package may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.2 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% --------------- start of docstrip commands ------------------ +%% +\input docstrip + +\keepsilent + +\usedir{tex/latex/dingbat} + +\preamble + +This is a generated file. + +Copyright (C) 2001 Scott Pakin <pakin@uiuc.edu> +------------------------------------------------------- + +This package may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.2 +of this license or (at your option) any later version. +The latest version of this license is in + http://www.latex-project.org/lppl.txt +and version 1.2 or later is part of all distributions of LaTeX +version 1999/12/01 or later. + +\endpreamble + +\generate{\file{dingbat.sty}{\from{dingbat.dtx}{package}}} +\generate{\file{uark.fd}{\from{dingbat.dtx}{uarkfd}}} +\generate{\file{udingbat.fd}{\from{dingbat.dtx}{udingbatfd}}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation, you have to move} +\Msg{* dingbat.sty, uark.fd, ark10.mf, and dingbat.mf into} +\Msg{* directories searched by TeX.} +\Msg{*} +\Msg{* To produce the documentation, run dingbat.dtx} +\Msg{* through LaTeX.} +\Msg{*} +\Msg{* Happy TeXing!} +\Msg{***********************************************************} + +\endbatchfile diff --git a/fonts/dingbat/dingbat.mf b/fonts/dingbat/dingbat.mf new file mode 100644 index 0000000000..cc4c96c6a0 --- /dev/null +++ b/fonts/dingbat/dingbat.mf @@ -0,0 +1,693 @@ +% Dingbat characters as of 3-3-89 by Doug Henderson +% To be run with plain.bas. +% Last modified on 3-27-89 + +font_size=10pt#; % make the pxl or pk files be in ...\pixel\pxl1500 + +def clear_all = + clearit; clearxy; +enddef; + +%%% +% turn pt,in,cm etc. into pixel values +%%% + +mode_setup; + +%%% +% define your variables here +%%% +string s[]; +picture p[]; +numeric anchor_scale; +anchor_scale=10; +path the_anchor,ring_of_anchor,tilted_anchor,tilted_ring; +% how much to tilt the anchor +numeric akilter; +akilter:=20; +picture holdit,holdem,flower_x,flower_y; +path collar, thumb, index_finger, the_bird, ring_finger, pinky_finger ; +a#:=12pt#; +b#:=12pt#; +glyph_width#:=10pt#; +glyph_height#:=7pt#; +uniform_square#:=20pt#; +triangle_size#:=12pt#; +check_width#:=10pt#; +check_height#:=10pt#; +check_depth#:=0pt#; +dash#:=2pt#; +%flu_width#:=31pt#; +%flu_height#:=15pt#; +flu_width#:=62pt#; +flu_height#:=30pt#; +anchor_height#:=150pt#/anchor_scale; +anchor_width#:=130pt#/anchor_scale; +anchor_depth#:=0pt#; + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Very thin weight stroke for flouron (not advised for < 600dpi) +%thinish#:=.25pt#; +%thinthick#:=.45pt#; +%thickish#:=.75pt#; + +% Normal weight stroke for flouron +thinish#:=.5pt#; +thinthick#:=1pt#; +thickish#:=1.5pt#; + +% Heavy weight stroke for flouron +%thinish#:=1pt#; +%thinthick#:=2pt#; +%thickish#:=2.5pt#; + +% Strokes widths for the flower from 1-12 (= 1 pixel - 4.5pt) +flower_one#:=.25; +flower_two#:=.5; +flower_three#:=.5pt#/1.5; +flower_four#:=.5pt#/1.5; +flower_five#:=1pt#/1.5; +flower_six#:=1.5pt#/1.5; +flower_seven#:=2pt#/1.5; +flower_eight#:=2.5pt#/1.5; +flower_nine#:=3pt#/1.5; +flower_ten#:=3.5pt#/1.5; +flower_eleven#:=4pt#/1.5; +flower_twelve#:=4.5pt#/1.5; +hand_scale=6; +hand_width#:=110pt#/hand_scale; +hand_height#:=80pt#/hand_scale; +hand_depth#:=0pt#; + +%%% +% define your pixels here, do this for each variable defined above +%%% + +define_pixels(glyph_width,glyph_height,uniform_square,triangle_size); +define_pixels(check_width,check_height,check_depth,dash,thinish,thickish); +define_pixels(thinthick,flu_width,flu_height,a,b); +define_pixels(flower_one,flower_two,flower_three,flower_four,flower_five); +define_pixels(flower_six,flower_seven,flower_eight,flower_nine,flower_ten); +define_pixels(flower_eleven,flower_twelve); +define_pixels(hand_width,hand_height,hand_depth,dash); +define_pixels(anchor_height,anchor_weight,anchor_depth); + +%%% +% define a macro which pauses until the user hits the return key +%%% + +def + whoa= s0:= readstring; +enddef; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Define all the pens we use +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +pickup pensquare scaled .2pt; +smallpen:=savepen; +pickup pensquare scaled .4pt; +bigpen:=savepen; +pickup pensquare scaled .8pt; +bigger:=savepen; +pickup pencircle scaled .1pt; +razorpen:=savepen; +pickup pencircle scaled 2pt; +bigdotpen:=savepen; +pickup pencircle scaled 1.1pt; +lildotpen:=savepen; +pickup pensquare scaled 1.6pt; +chunkypen:=savepen; +pickup pencircle scaled .35pt; +ringpen:=savepen; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Let the dingbat characters begin +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Anchor for TUG dingbat contest"; +beginchar("O",anchor_width#,anchor_height#,anchor_depth#); + %%% + % x variables + %%% + x1=8/130w; % x1 + x2=6/130w; % x2 + x3=13/130w; % x3 + x4=x25=x26=x31=30/130w; % x4 x25 x26 x31 + x5=x22=60/130w; % x5 + x6=x14=x18=x19=90/130w; % x6 x14 x18 x19 + x27=x28=x45=54/130w; % x27 x28 x45 + x17=x35=x56=66/130w; % x17 x35 x56 + + x7=107/130w; % x7 + x8=114/130w; % x8 + x10=112/130w; % x10 + x12=94/130w; % x12 + x13=99/130w; % x13 + x15=72/130w; % x15 + x16=67/130w; % x16 + x20=70/130w; % x20 + x21=65/130w; % x21 + x23=55/130w; % x23 + x24=50/130w; % x24 + + x29=53/130w; % x29 + x30=48/130w; % x30 + x32=21/130w; % x32 + x33=26/130w; % x33 + + %%% + % y variables + %%% + y1=y10=65/150h; % y1 y10 + y2=y8=43/150h; % y2 y8 + y3=y7=45/150h; % y3 y7 + + y4=y6=25/150h; % y4 y6 + y5=13/150h; % y5 + y21=y23=130/150h; % y21 y23 + y22=136/150h; % y22 + y45=y56=20/150h; % y45 y56 + + y18=y26=y27=y35=118/150h; % y18 y26 y27 y35 + y19=y20=y24=y25=124/150h; % y19 y20 y24 y25 + y17=y28=40/150h; % y17 y28 + y16=y29=36/150h; % y16 y29 + y15=y30=35/150h; % y15 y30 + y14=y31=38/150h; % y14 y31 + y13=y32=50/150h; % y13 y32 + y12=y33=54/150h; % y12 y33 + + %%% + % path assignments + %%% + the_anchor = z25--z26--z27--z28 & z28..z29..z31..z32 & + z32--z33--z1--z2--z3 & z3..z4..z45 & z45--z5--z56 & z56..z6..z7 & + z7--z8--z10--z12--z13 & z13..z14..z16..z17 & + z17--z35--z18--z19--cycle; + ring_of_anchor = z20..z22..z24; + + tilted_anchor = the_anchor rotated akilter; + tilted_ring = ring_of_anchor rotated akilter; + %%% + % draw the character, show how ring meets anchor + %%% + pickup razorpen; + fill the_anchor; + pickup ringpen; + draw ring_of_anchor; + + %%% + % after clearing previous path (upright anchor) fill the tilted path + %%% + %clearit; + %fill tilted_anchor; + %draw tilted_ring; + %showit; + %message"When thru viewing, press Enter to continue"; + %whoa; + + labels(range 1 thru 4,45,5,56,range 6 thru 19); + labels(range 20 thru 33,35); + +endchar; + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +"Hand pointer to the left"; +beginchar("N",hand_width#,hand_height#,hand_depth#); + %%% + % x variables + %%% + x1=9.5/110w; % x1 + x2=15/110w; % x2 + x3=x6=20/110w; % x3 x6 + x4=19/110w; % x4 + x5=x8=16/110w; % x5 x8 + x7=21/110w; % x7 + x9=10.5/110w; % x8 + x10=5/110w; % x10 + x11=42.5/110w; % x11 + x1112=61/110w; % x1112 (a point between 11 and 12) + x12=67/110w; % x12 + x13=x24=70/110w; % x13 x24 + x14=57.5/110w; % x14 + x15=76/110w; % x15 + x16=77/110w; % x16 + x17=58/110w; % x17 + x18=82.5/110w; % x18 + x19=83/110w; % x19 + x20=57/110w; % x20 + x21=94/110w; % x21 + x22=102/110w; % x22 + x23=90/110w; % x23 + x25=43.5/110w; % x25 + x26=62.5/110w; % x26 + x27=75/110w; % x27 + x28=74/110w; % x28 + + %%% + % y variables + %%% + y1=y24=63/80h; % y1 y24 + y2=y25=64/80h; % y2 y25 + y3=63.5/80h; % y3 + y4=59/80h; % y4 + y5=y17=40/80h; % y5 y17 + y6=18/80h; % y6 + y7=13/80h; % y7 + y8=12.5/80h; % y8 + y9=13.5/80h; % y9 + y10=39.5/80h; % y10 + y11=15/80h; % y11 + y1112=17.5/80h; % y1112 (a point between 11 and 12) + y12=20/80h; % y12 + y13=27.5/80h; % y13 + y14=28/80h; % y14 + y15=32/80h; % y15 + y16=39/80h; % y16 + y18=44/80h; % y18 + y19=y21=50/80h; % y19 + y20=51/80h; % y20 + y22=55/80h; % y22 + y23=62/80h; % y23 + y26=71/80h; % y26 + y27=72/80h; % y27 + y28=67/80h; % y28 + + collar=z1..z2..z3 & z3..z4..z5..z6..z7 & z7..z8..z9 & z9..z10..z1; + thumb=z25..z26..z27..z28..z24; + index_finger=z4..z25..z24..z23..z22..z21..z19..z20; + the_bird=z17--z16..z18..z19; + ring_finger=z14--z13..z15..z16; + pinky_finger=z6..z11..z1112 & z1112..z12..z13; + + pickup razorpen; + + draw collar; draw thumb; draw index_finger; + draw the_bird; draw ring_finger; draw pinky_finger; + labels(range 1 thru 11,1112,range 12 thru 28); +endchar; + +"Flowery flouron"; +beginchar("J",flu_width#,flu_height#,0); + % first stroke = x1 thru x8 + x1=.02w; x2=.10w; x3=.23w; x4=.38w; x5=.51w; + x6=.73w; x7=.85w; x8=x14=x19=.98w; + % second stroke = x9 thru x14 + x9=.22w; x10=.17w; x11=.165w; x12=.20w; + x13=.58w; % x14=x8=x19 + % third stroke = x15 thru x19 + x15=.32w; x16=.46w; x17=.65w; x18=.82w; % x19=x8=x14 + % first stroke = y1 thru y8 + y1=.05h; y2=.19h; y3=.26h; y4=.24h; y5=.18h; + y6=.13h; y7=.14h; y8=y14=y19=.19h; + % second stroke = y9 thru y14 + y9=.99h; y10=.92h; y11=.85h; + y12=.71h; y13=.32h; % y14=y8 + % third stroke = y15 thru y19 + y15=.67h; y16=.74h; y17=.71h; y18=.48h; + % pen positions for stroke 1 + penpos1(flower_one,135); penpos2(flower_five,135); penpos3(flower_nine,90); + penpos4(flower_twelve,90); penpos5(flower_ten,67); penpos6(flower_five,85); + penpos7(flower_four,90); penpos8(flower_three,135); + % pen positions for stroke 2 + penpos9(flower_one,135); penpos10(flower_seven,180); + penpos11(flower_eight,180); penpos12(flower_seven,210); + penpos13(flower_six,210); penpos14(flower_three,270); + % pen positions for stroke 3 + penpos15(flower_one,115); penpos16(flower_seven,100); + penpos17(flower_nine,70); penpos18(flower_five,45); + penpos19(flower_three,45); + % now draw our three strokes + penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e; + penstroke z9e...z10e...z11e...z12e{dir 315}...z13e...z14e; + penstroke z15e..z16e..z17e..z18e{dir 315}..z19e; + penlabels(range 1 thru 19); + flower_x:=currentpicture; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Right flower"; +beginchar("K",flu_width#,flu_height#,0); + currentpicture:=currentpicture+flower_x; + currentpicture:=currentpicture reflectedabout((.5[0,0],1),(.5[0,0],0)); + currentpicture:=currentpicture shifted (w,0); + flower_y:=currentpicture; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +"Flipped left flower--matches J"; +beginchar("L",flu_width#,flu_height#,0); + currentpicture:=currentpicture+flower_y; + currentpicture:=currentpicture reflectedabout((0,.5[0,h]),(1,.5[0,h])); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Flipped right flower--matches K"; +beginchar("M",flu_width#,flu_height#,0); + currentpicture:=currentpicture+flower_x; + currentpicture:=currentpicture reflectedabout((0,.5[0,h]),(1,.5[0,h])); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"DLA satelite dish"; +beginchar("I",a#,b#,0); + numeric zero; zero=0; + % define the coordinates we will work with here + z1=origin; z2=(a,zero); z3=(a,b/5); z4=(zero,b/5); + x5=3/10(x2-x1); y5=y4=y6; x6=7/10(x2-x1); + x7=4/10(x2-x1); y7=y8=y9=3/10(b); x8=6/10(x2-x1); + x9=x10=1/2(x2-x1); + x11=1/10(x2-x1); y11=9/10(b); x12=3/10(x2-x1); + y12=.53(b); x13=9/10(x2-x1); y13=5/10(b); + y10=4.5/10(b); + + % draw the bottom platform of the dish + pickup pensquare xscaled .5pt yscaled .5pt + filldraw z1--z2--z3--z4--cycle; + % draw the base of the dish, which sits on top of the bottom platform + pickup penrazor; + filldraw z5--z7--z8--z6--cycle; + % draw the arm holding the dish, which sits on the base of the dish + pickup penrazor xscaled .5pt; + draw z9--z10; + % draw the dish now + pickup pencircle xscaled .5pt yscaled .5pt; + draw z11..z12..z13; + % dish mod, complete the dish top +% draw z11--z13; + labels(range 1 thru 13); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Left flouron"; +beginchar("E",flu_width#,flu_height#,0); + pickup pencircle; + x1=.23w; x2=.10w; x3=.05w; x4=.10w; x5=.19w; + x6=.25w; x7=.26w; x8=.20w; x9=.22w; x10=.26w; + x11=.48w; x12=.62w; x13=.71w; x14=.84w; x15=.90w; + x16=.97w; x17=.93w; x18=.84w; + y1=.07h; y2=.07h; y3=.33h; y4=.57h; y5=.65h; + y6=.61h; y7=.53h; y8=.55h; y9=.75h; y10=.80h; + y11=.67h; y12=.56h; y13=.53h; y14=.55h; y15=.60h; + y16=.80h; y17=.92h; y18=.87h; + penpos1(thinish,270); penpos2(thinish,225); + penpos3(thickish,180); penpos4(thinish,135); + penpos5(thinish,90); penpos6(thinish,45); + penpos7(thinish,0); penpos8(thinish,225); + penpos9(thinish,135); penpos10(thinish,90); + penpos11(thinish,45); penpos12(thinish,45); + penpos13(thinish,90); penpos14(thinthick,135); + penpos15(thinthick,135); penpos16(thinthick,180); + penpos17(thinish,225); penpos18(thinish,270); + penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..z9e..z10e..z11e..z12e.. + z13e..z14e..z15e..z16e..z17e..z18e; + penlabels(range 1 thru 18); +holdit:=currentpicture; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Right flouron"; +beginchar("F",flu_width#,flu_height#,0); + currentpicture:=currentpicture+holdit; +% currentpicture:=currentpicture reflectedabout((.5[l,r],1),(.5[l,r],0)); + currentpicture:=currentpicture reflectedabout((.5[0,0],1),(.5[0,0],0)); + currentpicture:=currentpicture shifted (w,0); + holdem:=currentpicture; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Flipped left flouron--matches F"; +beginchar("G",flu_width#,flu_height#,0); + currentpicture:=currentpicture+holdem; + currentpicture:=currentpicture reflectedabout((0,.5[0,h]),(1,.5[0,h])); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Flipped right flouron--matches E"; +beginchar("H",flu_width#,flu_height#,0); + currentpicture:=currentpicture+holdit; + currentpicture:=currentpicture reflectedabout((0,.5[0,h]),(1,.5[0,h])); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Check mark"; +beginchar("D",check_width#,check_height#,check_depth#); + pickup pencircle; + y1=.4h; y2=.15h; y3=.85h; + x1l=0+eps; x2=1/3w; x3=.85w; + penpos1(dash,45); penpos2(dash,90); penpos3(dash,170); + penstroke z1e--z2e--z3e; + penlabels(1,2,3); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Square (filled) with dots border design"; +beginchar("C",triangle_size#,triangle_size#,0); +x1=x3=good.x(1/2triangle_size); +x2=good.x(1/10triangle_size); +x4=good.x(9/10triangle_size); +x5=x6=good.x(3/10triangle_size); +x7=x8=good.x(7/10triangle_size); +x9=x10=good.x(2/10triangle_size); +x12=x11=good.x(8/10triangle_size); + +y1=good.y(1/10triangle_size); +y9=y12=good.y(2/10triangle_size); +y5=y8=good.y(3/10triangle_size); +y2=y4=good.y(1/2triangle_size); +y6=y7=good.y(7/10triangle_size); +y10=y11=good.y(8/10triangle_size); +y3=good.y(9/10triangle_size); + +pickup razorpen; +fill z1..z5..z2 & z2..z6..z3 & z3..z7..z4 & z4..z8..z1..cycle; +pickup bigdotpen; +drawdot z9; drawdot z12; drawdot z10; drawdot z11; + +labels(range 1 thru 12); + +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Square (unfilled) with dots border design"; +beginchar("B",triangle_size#,triangle_size#,0); + x1=x3=good.x(1/2triangle_size); + x2=good.x(1/10triangle_size); + x4=good.x(9/10triangle_size); + x5=x6=good.x(3/10triangle_size); + x7=x8=good.x(7/10triangle_size); + x9=x10=good.x(2/10triangle_size); + x12=x11=good.x(8/10triangle_size); + + y1=good.y(1/10triangle_size); + y9=y12=good.y(2/10triangle_size); + y5=y8=good.y(3/10triangle_size); + y2=y4=good.y(1/2triangle_size); + y6=y7=good.y(7/10triangle_size); + y10=y11=good.y(8/10triangle_size); + y3=good.y(9/10triangle_size); + + pickup bigpen; + draw z1..z5..z2; + draw z2..z6..z3; + draw z3..z7..z4; + draw z4..z8..z1; + + pickup bigdotpen; + drawdot z9; drawdot z12; drawdot z10; drawdot z11; + pickup lildotpen; + erase drawdot z9; erase drawdot z12; erase drawdot z10;erase drawdot z11; + + labels(range 1 thru 12); + +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Z border design"; +beginchar("Z",glyph_width#,glyph_height#,0); +pickup bigger; +% define our x values for the border design +x1=x6=x7=good.x(glyph_width); +x4=6/8good.x(glyph_width); +x8=2/8good.x(glyph_width); +x2=x3=x5=0; +% design our y values for the border design +y1=y2=0; +y7=y8=1/3good.y(glyph_height); +y3=y4=2/3good.y(glyph_height); +y5=y6=good.y(glyph_height); + +draw z5--z6--z7--z8; +draw z1--z2--z3--z4; +%draw bot z5--z3; +%draw top z1--z7; + +labels(range 1 thru 8); + +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"S border design"; +beginchar("S",glyph_width#,glyph_height#,0); +pickup bigger; +% define our x values for the border design +x1=x6=x7=0; +x2=x3=x8=good.x(glyph_width); +x4=good.x(2/8glyph_width); +x5=good.x(6/8glyph_width); + +y1=y2=0; +y5=y6=good.y(1/3glyph_height); +y3=y4=good.y(2/3glyph_height); +y7=y8=good.y(glyph_height); + +draw z1--z2--z3--z4; +draw z5--z6--z7--z8; +%draw top z1--z6; +%draw bot z8--z3; +cullit; + +labels(range 1 thru 8); + +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Overlapping thick\thin line border design--- character 1 (top-left)"; +beginchar("a",uniform_square#,uniform_square#,0); + +x1=x2=good.x(1/10uniform_square); +x3=x4=good.x(4/10uniform_square); +x5=x8=good.x(uniform_square); +x6=x7=good.x(2/10uniform_square); + +y1=y6=good.y(0); +y2=y3=good.y(6/10uniform_square); +y7=y8=good.y(8/10uniform_square); +y4=y5=good.y(9/10uniform_square); + +pickup chunkypen; +draw z1--z2--z3--z4--z5; +pickup bigpen; +draw z6--z7--z8; +p1:=currentpicture; + +labels(range 1 thru 8); + +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Overlapping thick\thin line border design--- character 2 (top-middle)"; +beginchar("b",uniform_square#,uniform_square#,0); + +x1=x3=good.x(0); +x2=x4=good.x(uniform_square); + +y1=y2=good.y(9/10uniform_square); +y3=y4=good.y(8/10uniform_square); + +pickup chunkypen; +draw z1--z2; +pickup bigpen; +draw z3--z4; +p2:=currentpicture; + +labels(1,2,3,4); + +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Overlapping thick\thin line border design--- character 3 (top-right)"; +beginchar("c",uniform_square#,uniform_square#,0); + +x1=x6=good.x(0); +x2=x3=good.x(6/10uniform_square); +x7=x8=good.x(8/10uniform_square); +x4=x5=good.x(9/10uniform_square); + +y1=y2=good.y(9/10uniform_square); +y6=y7=good.y(8/10uniform_square); +y3=y4=good.y(6/10uniform_square); +y5=y8=good.y(0); + +pickup chunkypen; +draw z1--z2--z3--z4--z5; +pickup bigpen; +draw z6--z7--z8; +p3:=currentpicture; + +labels(range 1 thru 8); + +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Overlapping thick\thin line border design--- character 4 (middle-left)"; +beginchar("d",uniform_square#,uniform_square#,0); + +x1=x2=good.x(1/10uniform_square); +x3=x4=good.x(2/10uniform_square); +y1=y3=good.y(0); +y2=y4=good.y(uniform_square); + +pickup chunkypen; +draw z1--z2; +pickup bigpen; +draw z3--z4; +p4:=currentpicture; + +labels(1,2,3,4); + +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Overlapping thick\thin line border design--- character 5 (middle-right)"; +beginchar("e",uniform_square#,uniform_square#,0); +currentpicture:=currentpicture + p4; +currentpicture:=currentpicture reflectedabout((.5[0,0],0),(.5[0,0],1)); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Overlapping thick\thin line border design--- character 6 (bottom-left)"; +beginchar("f",uniform_square#,uniform_square#,0); +currentpicture:=currentpicture + p1; +currentpicture:=currentpicture +reflectedabout((0,.5[0,uniform_square]),(1,.5[0,uniform_square])); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Overlapping thick\thin line border design--- character 7 (bottom-middle)"; +beginchar("g",uniform_square#,uniform_square#,0); +currentpicture:=currentpicture + p2; +currentpicture:=currentpicture +reflectedabout((0,.5[0,uniform_square]),(1,.5[0,uniform_square])); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +"Overlapping thick\thin line border design--- character 8 (bottom-right)"; +beginchar("h",uniform_square#,uniform_square#,0); +currentpicture:=currentpicture + p3; +currentpicture:=currentpicture +reflectedabout((0,.5[0,uniform_square]),(1,.5[0,uniform_square])); +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +bye diff --git a/fonts/dingbat/dingbat.pdf b/fonts/dingbat/dingbat.pdf Binary files differnew file mode 100644 index 0000000000..947521c77f --- /dev/null +++ b/fonts/dingbat/dingbat.pdf diff --git a/fonts/dingbat/dingbat.tex b/fonts/dingbat/dingbat.tex new file mode 100644 index 0000000000..e260c9701e --- /dev/null +++ b/fonts/dingbat/dingbat.tex @@ -0,0 +1,48 @@ +\nopagenumbers + + +\font\ding dingbat scaled 1200 + +\setbox0=\hbox{\ding\char'141} +\newdimen\charwidth \charwidth\wd0 +\def\updoublerulefill{\xleaders\hbox to 10pt + {\hss\ding\char'142 \hss}\hfill} +\def\downdoublerulefill{\xleaders\hbox to 10pt + {\hss\ding\char'147 \hss}\hfill} +\def\leftdoublerulefill{\xleaders\vbox to 10pt + {\vss\hbox{\ding\char'144}\vss}\vfill} +\def\rightdoublerulefill{\xleaders\vbox to 10pt + {\vss\hbox{\ding\char'145}\vss}\vfill} + +\newdimen\Width \newdimen\Height +\Width\hsize \Height\vsize +\def\rramec{\vbox to\Height + {\hbox to\Width{\ding\char'141\updoublerulefill{\char'143}} + \xleaders\vbox to 10pt + {\vss\hbox to\Width{\ding\char'144\hfill\char'145}\vss} + \vfill + \hbox to\Width{\ding\char'146\downdoublerulefill{\char'150}}}} + +\def\RRamec #1{\setbox0=\vbox{#1}\Height\ht0\advance\Height\dp0 + \Width\wd0 \advance\Width 2\charwidth + \vbox + {\hbox to\Width{\ding\char'141\updoublerulefill{\char'143}} + \hbox to\Width{\vbox to\Height{\leftdoublerulefill}\hss + \box0\hss\vbox to\Height{\rightdoublerulefill}} + \hbox to\Width{\ding\char'146\downdoublerulefill{\char'150}}}} + +\rramec +\tolerance 800 +\RRamec{\hsize 5cm Hip hip hurrahhh Hip hip hurrahhh Hip hip +hurrahhh Hip hip hurrahhh Hip hip hurrahhh Hip hip hurrahhh Hip +hip hurrahhh Hip hip hurrahhh Hip hip hurrahhh Hip hip hurrahhh +Hip hip hurrahhh Hip hip hurrahhh Hip hip hurrahhh Hip hip +hurrahhh Hip hip hurrahhh Hip hip hurrahhh Hip hip hurrahhh Hip +hip hurrahhh Hip hip hurrahhh Hip hip hurrahhh Hip hip hurrahhh +Hip hip hurrahhh Hip hip hurrahhh Hip hip hurrahhh Hip hip +hurrahhh Hip hip hurrahhh Hip hip hurrahhh Hip hip hurrahhh Hip +hip hurrahhh Hip hip hurrahhh Hip hip hurrahhh Hip hip hurrahhh} + + + +\bye |