Original in fr André Pascual
fr to en Scott Rutherford
Originally an draughtsman, and now a teacher for manufacturing
technology, specifically CAD.
Design and desktop publishing, principally in 3D, is one of his
passions.
The tutorials "Pseudo 3D" and "Effects of fire" caused me to receive many emails, for the large part because of the difficulty of the proposed exercises. In fact, it was only a matter of difficulty for beginners. The experienced Linux user is not stopped by a missing font or pattern: he would soon install the fonts, or find a suitable path for saving, that wasn't the case with my correspondents. Everybody has been a beginner, and who still isn't in some area of Linux? So this article is aimed at the beginner, although even the purists won't be offended by the methods described.
Mandrake 8.0 and The Gimp 1.2.1 served as the reference packages
for this article. If using different versions, directory structure,
indexes or drop down menus may be different from those stated in
this text. Should this be the case, adaptation to the specific
configuration will be required.
When discussing printed characters, I shall use the terms fonts and
styles completely interchangeably. Fill patterns shall be referred
to as either patterns or motifs. Instead of referring to XFree86,
the official name, I shall say simply X.
Similarly when referring to the Midnight Commander, which allows
the management of files without in depth knowledge of the base
functions of Linux and their plethora of options, I shall say MC.
Users of Norton Commander and Xtree Gold under DOS, or WinCommander
under Windows will find themselves on familiar territory. Right up
to the function buttons which have the same allocations in MC as in
WinCommander! Remember to be pragmatic. It is without doubt better
to do something functional and clumsy than something sophisticated
and non-functional.
The script-fu's from Gimp use by default fonts that the different distributions may not install automatically. These fonts come in two packages: Freefont and Sharefont. The former is free, and the later is distributed under the shareware licence, but both are very interesting. Without a doubt they make a great difference to the presentation abilities of X.
These two packages are available in .tgz archives thanks to Christoph Lameter at the
following address:
Several sites on the internet (e.g http://ibiblio.org/pub/Linux/X11/fonts/,
ibiblio was formerly known as metalab or sunsite), and you can
sometimes get them on the CD's found on the covers on magazines.
Linux Magazine France number 9 provides them in a directory of it's
accompanying CD, called /Gimp/fonts.
Taking this as an example, the fonts can be installed as
follows:
If this option is not on the menu, exit MC (F10), the cursor
still pointing at the window containing the copied files. If you
then take the trouble to add the following line to .bashrc:
mc () MC=`/usr/bin/mc -P "$@"`; [ -n "$MC" ] && cd
"$MC"; unset MC ;
you will find yourself in the selected directory. If not, go there
using
cd /usr/X11R6/lib/X11/fonts
and then decompress directly using:
tar xvfz *.tgz
This leaves you with two new directories, one called: freefont
and the other called: sharefont. The .tgz archives can now be
deleted.
Freefont contains 79 fonts, nearly all usable, and Sharefont
contains 22.
Each directory also includes a special file called fonts.dir,
which describes the characteristics of each font to X. This means
that you don't need to run mkfontdir to generate this file.
The fonts will be loaded by X the next time it is launched, but
only if you first tell it that it needs to use them. In older
distributions you had to add the following lines to
/etc/X11/XF86Config, in the section labelled "Files":
FontPath "/usr/X11R6/lib/X11/fonts/freefont"
However in Mandrake 8.0 a font server is used. To add the
fonts to the font server path using the chkfontpath utility:
FontPath "/usr/X11R6/lib/X11/fonts/sharefont"
chkfontpath --add /usr/X11R6/lib/X11/fonts/freefont/
chkfontpath --add /usr/X11R6/lib/X11/fonts/sharefont/
Restart the font server:
/etc/rc.d/init.d/xfs restart
If you are in graphical mode, and not in console mode, the
instructions above are still valid if entered into a terminal
(rxvt, kvt, wmterm...). However the fonts will not be available
immediately; they will not be loaded without restarting X, or
entering the following commands into the still open terminal:
xset fp+ /usr/X11R6/lib/X11/fonts/freefont
xset fp rehash
xset fp+ /usr/X11R6/lib/X11/fonts/sharefont
Xset fp rehash
In order to check that the fonts have been loaded run
xlsfonts | egrep 'sharefont|freefont'
or launch xfontsel, or simply the KDE font manager.
The fonts are now usable by all (well not really) X
applications.
The fonts can be gathered into a table, like in this article, by
using Gimp with the following commands:
xtns> Script-Fu> Utils> Font Map.
Important: it's a merciless tool. One error when entering the name
of a font and you will be sent back to start again. The best way
round this is to work with the KDE font manager open at the same
time as the Gimp. That way you can see the name of the font in the
manager at the same time as seeing it in the sample field. Figure 3
shows several of these fonts, which are useful for creating
whimsical logos or reference letters.
These newly installed fonts are interesting, but maybe you have
a Windows partition on the hard drive, with it's legions of
beautifully crafted True Type fonts? If you don't have windows then
you can as well download True Type fonts from various sites on the
net such as http://hugemcgriffin.com/fonts/a/,
http://www.fontguy.com/, http://www.freepcfonts.com/index.html,
... It's possible to use them.
The latest Linux distributions, and those still to come, naturally
envisage their use. It is not the same in older distributions, like
Mandrake 5.3
That said, a least a solution exists. It comes in the form of a
server called Xfstt (a simple executable file of a round 130 Kb
after compilation) available at the following address (among
others): ftp://sunsite.unc.edu/pub/Linux/X11/fonts/.
The archive you want is called Xfstt-0.9.10.tgz (or the latest
version) and is around 80Kb. The version numbers show that the
program is still under development, but it functions without any
major problems.
Before compiling, it is necessary to prepare the terrain by
creating a directory to receive the True Type fonts, such as
/usr/share/fonts/truetype/ (mkdir /usr/share/fonts/truetype/ or F7
in MC). Then, copy the required fonts into this directory, or
create a symbolic link (F9 in MC, followed by File then Symlink)
pointing towards the Fonts directory under Windows. In my setup,
/usr/share/fonts/truetype/ contains the link winfonts which points
towards /mnt/Win98/windows/fonts, where /mnt/Win98 is the mount
point of my windows partition.
The compilation of the program can now begin; to do this change to
the directory created by decompressing the archive (/tmp/xfstt0910)
and execute the following commands: make xfstt &&
make install
When the compilation has finished, the executable binary
xfstt
will be installed in /usr/X11R6/bin. It remains
now to tell the server xfstt which fonts it will be using. Execute
the command:
xfstt --sync --dir /usr/share/fonts/truetype
This will have the effect of creating two description files in
/usr/share/fonts/truetype
called
ttinfo.dir
and ttname.dir.
The server is launched by using the command: xfstt --dir
/usr/share/fonts/truetype &
.
However on execution, it will appear that nothing has happened:
these fonts are only available to X, not in text mode, and if you
are in X then it will be necessary to tell X to load them. This can
be achieved by entering the following command:
xset +fp unix/:7100
Afterwards verify with "xlsfonts | grep ttf-" or xfontsel or the
KDE font manager that the TrueType fonts are available; they should
be usable by all (well nearly) applications that run under X.
StarOffice5 allows their use in StarDraw, StarImpress, StarCalc,
but strangely not in StarWriter, perhaps there is an option to
activate it, but if so I couldn't find it. In any case, they are
usable in the Gimp as you can see in figure 4. There is as well a
freefont plugin for Gimp. If you have this plugin installed then
you have yet another method to use TrueType fonts in Gimp. Unlinke
the xfstt server the freefont plugin makes of course the fonts not
generally available to all applications.
#!/bin/sh xfstt --sync --dir /usr/share/fonts/truetype xfstt & xfstt +fp unix/:7100
And the second contains simply:
#!/bin/sh xset -fp unix/:7100
This is the solution I use: it works.
The patterns (images) are nothing more than image bitmap files in the .pat format specific (but not actually copyrighted) to the Gimp, which are used to fill a surface with the aid of the "paint pot" tool. They are saved in the directory /usr/share/gimp/1.2/patterns/. Any further patterns created can be saved in this place, which will give all other users access, or in your home directory at ~/.gimp/patterns, in which case only you will be able to use these fonts.
Suppose that we wanted to use the image in figure 5 to "paper" the background of an image.
We could do it manually be coping and pasting but that is a bit
longwinded and not very precise: the patterns will be moved to the
nearest pixel! It is better to let the Gimp do it, and it will if
the file to be repeated is of the right format, i.e. a .pat
file.
If this is not the case, you can remidy it as follows:
Quit the Gimp, since the new pattern will be available on
restarting, and re-launch it.
In the tool box, click on File>Dialogs>Patterns. The Patterns
Selection box appears and shows samples of all the available
patterns; if you click on a sample, that one will be enlarged
temporarily. Also, clicking on a sample selects the current
pattern.
Find the pattern Tuxdor, near the end of the list, as the patterns
are listed alphabetically and select it for use.
Create a new workspace with File>New>Width 288 Height 286
(space for 4 patterns)
double click on Fill with a colour or pattern (the paint pot) and
select Pattern Fill.
Click anywhere on the empty image and it will be filled by the
golden Tuxdor:
However the filling is not very aesthetically pleasing: the
"seams" between the patterns are visible. This comes from the
pattern itself, which wasn't created to enable tiling like this.
Lets change that. Reopen the original figure 5. Right click on the
image then
>Filters> Map> Make Seamless, we get a new image.
Save this in the same place as Tux2.pat, with the identifier TuxTile. Quit the Gimp, re-launch, and make a new image of 432x392 pixels. Fill this new image with the TuxTile pattern. Now we have a new image without seams, but looking a little military (of course that has it's place depending on the destination of the pattern). However the quality of the image is much better than the previous one.
All the same one could want a softer image, more melded. In order to make an adequate pattern:
The final image shows what you can do with these charcter fonts, and the patterns other than those that come with the Gimp. The text was created using the Script-Fu logo; for sure it took some work to get it to look like that, but the same thing could be achieved by anybody. It is sufficient to explore the numerous possibilities the software offers, and to amuse yourself with them.