I came across a new web site today that looks like it may help to resolve some of the difficulties in creating AblBeebl for TeX.
http://www.radamir.com/tex/ttf-tex.htm
January 2008 Archives
Group theory is the mathematics of symmetry and Mark Ronan's book "Symmetry and the Monster" has greatly helped me to learn and understand the fundamentals of group theory and especially simple finite groups.
A group is a collection or set of operations or mappings that can be applied to an ordered set of elements. For instance, the elements could be individually identifiable balls placed at the vertices of a regular pentagon drawn on the floor. The balls could be linked by rigid rods, corresponding to the sides of the pentagon and constituting a rigid structure. The rigid structure is an effective pattern template for the original configuration of five balls. A transformation, operation or mapping could consist of rotating the joined-up set of balls without lifting it off the floor to any position where the five balls are over five vertices of the pentagon on the floor. There are five possible positions, including the original position of the set of balls. The group of rotations therefore has a size of 5. This is the cyclic group Z5. The group of rotations is a finite group based on the prime number 5.
A simple finite group is a set of symmetry operations that cannot be reduced to any smaller set of symmetry operations. The group of rotations of the set of five linked balls is a simple finite group based on the prime number 5.
If the balls and frame can be lifted and flipped over while keeping any one ball (the pivot ball) on its spot on the floor and in such a way that the two pairs of balls adjacent to the pivot ball exchange places then this is another type of operation on the pattern or configuration of balls. Like a rotation, the flip maintains the adjacencies of each ball and the distances between them. There are five of these flip operations that are distinct from one another. Also, from combinations of the same five flips the null operation already described in the context of rotations can be produced. Therefore the group of flips is a simple finite group.
| _A_ B E C D |
_A_ E B D C |
With the rotations and the flips there are ten operations that maintain adjacencies and distances, including the identity operation. The group of rotations and flips is not a simple finite group, but it is the union of two simple finite groups.
| 1 _A_ B E C D |
2 _E_ A D B C |
3 _D_ E C A B |
4 _C_ D B E A |
5 _B_ C A D E |
||||
| 6 _A_ E B D C |
7 _E_ D A C B |
8 _D_ C E B A |
9 _C_ B D A E |
10 _B_ A C D E |
There are some caveats to be applied at this point.
Caveat 1: The rotations and flips are only significant if the set of balls is always viewed from above by an observer who does not rotate or flip around the other side with the balls.
Caveat 2: A clever illusionist could confuse matters somewhat. Suppose the balls are coloured red, orange, yellow, green and blue. The illusionist can demonstrate the five rotations to an observer looking down from above. However in secret he flips the set of balls about the red ball and paints the top visible half of the orange ball blue and the visible half of the blue ball orange. He also paints the top visible half of the yellow ball green and the visible half of the green ball yellow. The set of balls that has been flipped about the red now appears as though it has not been flipped. Moreover if the original sequence of colours (red, orange, yellow, green, blue) had a clockwise sense this will always be the case, no matter how the set of balls is flipped about one ball.
The illusionist has fundamentally changed the symmetry characteristics of the set of balls. If flips and rotations are permitted there are now five rotations (including the 'no change' operation) and there are no distinct flips:
Flip about R: no change
_R_
B O
G Y
Flip about O: equal to rotation of 2 clockwise
_G
Y B
O R
Flip about Y: equal to rotation of 4 clockwise
_O_
R Y
B G
Flip about G: equal to rotation of 1 clockwise
_B_
G R
Y O
Flip about B: equal to rotation of 3 clockwise
_Y_
O G
R B
I came across this great web site today after working through some notes I had found on-line by Blake Stacey about Group Theory. FGB stands for Finite Group Behaviour and is a Windows 98 program. I have downloaded the program and associated documentation to try it. It looks very promising indeed as a learning aid. After checking it out I will register, as requested by sending my contact details to Dr. Keppelmann.
http://wolfweb.unr.edu/homepage/keppelma/fgb.html
There is also the web site of Dr. Ed Keppelmann of the Mathematics Department of the University of Nevada, Reno.
http://wolfweb.unr.edu/homepage/keppelma/
The procedure followed for creating the Ablbeebl font for use in LaTeX (Ubunto distribution of Linux, TeX Live) is given below.
- Create .pfb files for each character set of AblBeebl using FontForge. Place these in a working folder (e.g. AblBeebl_r006) in the Home directory. There are two font faces AblBeebl Serif and AblBeel Sans. For each font face there are four character sets: Regular (the default face), Italic, Bold and Bold Italic. Adobe Standard Encoding is used. Only the upper and lower case letters are contained in each character set. The file names are ABLSR, ABLSRBD, ABLSRBI, ABLSRI, ABLSS, ABLSSBD, ABLSSBI, ABLSSI.
- Process the Type1 files using CrossFont under Windows to produce files that can be installed under Windows (pfb and pfm) and the afm files that will be used for generating the TeX fonts.
- Take the modified Type1 pfb and the new afm files back into the Linux system and rename the files according to the TeX convention. The new file names are: farr8a, farb8a, farbi8a, farri8a, fasr8a, fasb8a, fasbi8a, fasri8a.
- Create a file far-drv.tex to install the AblBeebl Serif fonts when run through TeX. The fonts are re-encoded from Adobe Standard (Font name code 8a) to Tex Base 1 encoding (8r). The fonts are generated by fontinst. The transformations that are made by running far-drv.tex are recorded to a file, far-rec.tex, for later use. All of these actions are implemented in the Bash terminal by the command: tex far-drv.tex . The content of the far-drv.tex file is given in full below.
- Create a file fas-drv.tex to install the AblBeebl Sans fonts when run through TeX. The fonts are re-encoded from Adobe Standard (Font name code 8a) to Tex Base 1 encoding (8r). The fonts are generated by fontinst. The transformations that are made by running fas-drv.tex are recorded to a file, fas-rec.tex, for later use. All of these actions are implemented in the Bash terminal by the command: tex fas-drv.tex . The content of the fas-drv.tex file is given in full below.
- Run the property list files (pl) created by fontinst through pltotf to generate Tex font metric files (tfm), according to the Lehman document. Likewise run the virtual property list files (vpl) files through vptovf to create virtual fonts (vf). This is easily done using the Bash shell using the commands provided:
- Prepare a local directory tree for TeX Live. This local tree is intended to contain all files that is not part of standard TeX Live distribution but should be available system-wide. This tree starts within /usr/local/share . Within Bash it is necessary to switch to root user in order to be able to create these directories or copy files into them. the first directory to be created is texmf.
- Create a file far-map.tex for AblBeebl Serif according to the Lehman document that will prepare a far.map file by using the recorded data stored in far-rec.tex. Run far-map.tex through TeX to produce the map file for dvips.
- Similarly create a file fas-map.tex (for AblBeebl Sans) according to the Lehman document that will prepare a far.map file by using the recorded data stored in fas-rec.tex. Run fas-map.tex through TeX to produce the map file for dvips.
- Copy far.map and fas.map files to the branch /usr/local/share/texmf/dvips/config/ in the local TeX tree.
- Copy the original file xdvi.cfg from /etc/texmf/xdvi/ to the local branch /usr/local/share/texmf/dvips/config/ and make the additions detailed in the Lehman document. This is the configuration file for the Type 1 rendering module of xdvi.
- Update file locations by running the command texhash in the Bash shell. Remember to switch to the root user by using su root before texhash.
\input fontinst.sty
\needsfontinstversion{1.926}
\substitutesilent{bx}{b}
\substitutesilent{m}{l}
\substitutesilent{bx}{db}
\setint{smallcapsscale}{800}
\setint{slant}{167}
\recordtransforms{far-rec.tex}
\transformfont{farr8r}{\reencodefont{8r}{\fromafm{farr8a}}}
\transformfont{farb8r}{\reencodefont{8r}{\fromafm{farb8a}}}
\transformfont{farbi8r}{\reencodefont{8r}{\fromafm{farbi8a}}}
\transformfont{farri8r}{\reencodefont{8r}{\fromafm{farri8a}}}
\installfonts
\installfamily{T1}{far}{}
\installfont{farr8t}{farr8r,newlatin}{t1}{T1}{far}{m}{n}{}
\installfont{farb8t}{farb8r,newlatin}{t1}{T1}{far}{b}{n}{}
\installfont{farbi8t}{farbi8r,newlatin}{t1}{T1}{far}{b}{it}{}
\installfont{farri8t}{farri8r,newlatin}{t1}{T1}{far}{m}{it}{}
\endinstallfonts
\endrecordtransforms
\bye
\input fontinst.sty
\needsfontinstversion{1.926}
\substitutesilent{bx}{b}
\substitutesilent{m}{l}
\substitutesilent{bx}{db}
\setint{smallcapsscale}{800}
\setint{slant}{167}
\recordtransforms{fas-rec.tex}
\transformfont{fasr8r}{\reencodefont{8r}{\fromafm{fasr8a}}}
\transformfont{fasb8r}{\reencodefont{8r}{\fromafm{fasb8a}}}
\transformfont{fasbi8r}{\reencodefont{8r}{\fromafm{fasbi8a}}}
\transformfont{fasri8r}{\reencodefont{8r}{\fromafm{fasri8a}}}
\installfonts
\installfamily{T1}{fas}{}
\installfont{fasr8t}{fasr8r,newlatin}{t1}{T1}{fas}{m}{n}{}
\installfont{fasb8t}{fasb8r,newlatin}{t1}{T1}{fas}{b}{n}{}
\installfont{fasbi8t}{fasbi8r,newlatin}{t1}{T1}{fas}{b}{it}{}
\installfont{fasri8t}{fasri8r,newlatin}{t1}{T1}{fas}{m}{it}{}
\endinstallfonts
\endrecordtransforms
\bye
for file in *.pl; do pltotf $file; done
for file in *.vpl; do vptovf $file; done
/usr/local/share/texmf/dvips/config/
/usr/local/share/texmf/tex/latex/public/ablbeebl/
/usr/local/share/texmf/fonts/afm/public/ablbeebl/
/usr/local/share/texmf/fonts/tfm/public/ablbeebl/
/usr/local/share/texmf/fonts/type1/public/ablbeebl/
/usr/local/share/texmf/fonts/vf/public/ablbeebl/
The various files are copied into their directories using the following Bash shell commands:
cp *.afm /usr/local/share/texmf/fonts/afm/public/ablbeebl/
cp *.tfm /usr/local/share/texmf/fonts/tfm/public/ablbeebl/
cp *.pfb /usr/local/share/texmf/fonts/type1/public/ablbeebl/
cp *.vf /usr/local/share/texmf/fonts/vf/public/ablbeebl/
cp *.fd /usr/local/share/texmf/tex/latex/public/ablbeebl/
\input finstmsc.sty
\resetstr{PSfontsuffix}{.pfb}
\adddriver{dvips}{far.map}
\input far-rec.tex
\donedrivers
\bye
\input finstmsc.sty
\resetstr{PSfontsuffix}{.pfb}
\adddriver{dvips}{fas.map}
\input fas-rec.tex
\donedrivers
\bye
These two lines are added at the end:
dvipsmap +far.map
dvipsmap +fas.map
I have made good progress with the AblBeebl project, but it has taken a huge amount of time. The image above shows the complete font set for AblBeebl. I produced the Type1 fonts in FontForge under Linux. I had found the files produced by FontForge not to be usable directly under Windows. I therefore used the shareware program CrossFont to convert the font files to usable files under Windows (.pfb and .pfm). I installed these under Windows and produced a sample document in Word under Windows. I produced the image by pasting the text into a picture in Corel Photo-Paint and saving it as a .png file.
My objective is to get the AblBeebl font set up within Latex either on a Windows or Linux machine and complete the preparation of an article entitled "AblBeebl: a Proposed Font Family Scheme for Some New Mathematical Symbols, Based on Symmetrically Transformed or Doubled Roman Characters". Ideally I would like to publish this with the American Mathematical Society. However, if this proves not to be possible I hope to publish it either with ArXiv or on the new DIT academic archive when it is has been set-up.
