summaryrefslogtreecommitdiff
path: root/Build/source/libs/t1lib/t1lib-5.1.2/doc/intro.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/t1lib/t1lib-5.1.2/doc/intro.tex')
-rw-r--r--Build/source/libs/t1lib/t1lib-5.1.2/doc/intro.tex217
1 files changed, 217 insertions, 0 deletions
diff --git a/Build/source/libs/t1lib/t1lib-5.1.2/doc/intro.tex b/Build/source/libs/t1lib/t1lib-5.1.2/doc/intro.tex
new file mode 100644
index 00000000000..6d290fd89c4
--- /dev/null
+++ b/Build/source/libs/t1lib/t1lib-5.1.2/doc/intro.tex
@@ -0,0 +1,217 @@
+%----------------------------------------------------------------------------
+% ----- File: intro.tex
+% ----- Author: Rainer Menzner (Rainer.Menzner@web.de)
+% ----- Date: 2001-06-03
+% ----- Description: This file is part of the t1lib-documentation.
+% ----- Copyright: t1lib is copyrighted (c) Rainer Menzner, 1996-2001.
+% As of version 0.5, t1lib is distributed under the
+% GNU General Public Library License. The
+% conditions can be found in the files LICENSE and
+% LGPL, which should reside in the toplevel
+% directory of the distribution. Please note that
+% there are parts of t1lib that are subject to
+% other licenses:
+% The parseAFM-package is copyrighted by Adobe Systems
+% Inc.
+% The type1 rasterizer is copyrighted by IBM and the
+% X11-consortium.
+% ----- Warranties: Of course, there's NO WARRANTY OF ANY KIND :-)
+% ----- Credits: I want to thank IBM and the X11-consortium for making
+% their rasterizer freely available.
+% Also thanks to Piet Tutelaers for his ps2pk, from
+% which I took the rasterizer sources in a format
+% independent from X11.
+% Thanks to all people who make free software living!
+%----------------------------------------------------------------------------
+
+\newpage
+\section{Introduction}
+\subsection{What Does \tonelib\ Do?}
+\tonelib\ is a library written in the C programming language
+allowing a programmer to generate bitmaps from Adobe (TM) Type 1 fonts
+quite easily. These bitmaps are returned in a data structure
+with type {\ttfamily GLYPH}. This special
+{\ttfamily GLYPH}-type is also used in the X11 window system to
+describe character bitmaps. It contains the bitmap data as well as
+some metric information. But \tonelib\ is in itself entirely independent
+of the X11-system or any other graphical user interface.
+
+Given that the X11-system is probably the most frequently used
+window system in the UNIX-world, and furthermore assuming that most
+graphical applications run under window systems, it appears that
+\tonelib\ implements functionality already provided by the
+graphical user interface,
+the X11-system. Thus the question arises: Why not use X11 directly for
+rastering characters? Well, the answer is quite simple; the X11 Font
+machinery appears to be too {\em static} in order to use it for
+certain purposes. Moreover X11-calculations and positioning of
+characters are based on bitmap
+dimensions and are thus subject to error accumulation.
+
+Here is a list of features which are supported in the current release
+of \tonelib.
+\begin{itemize}
+\item Rasterizing is done as characters get requested. The X11-server,
+ in contrast,
+ rasters a font completely at a given size
+ when it is loaded. {\em Rastering on demand} saves time when the
+ font is loaded the first time and saves memory since often only the
+ alphabetic letters and a few other characters are needed.
+\item The encoding mechanism of PostScript is fully supported. The
+ user may use the fonts' internal or some other encoding.
+ Additional encoding files can be loaded at runtime and fonts can be
+ reencoded at runtime. The syntax of encoding files is
+ straight-forward and simple.
+\item The library makes use of Adobe Font Metric data in the form of
+ AFM files. This may seem a disadvantage, but in order
+ to make decent typesetting possible, some more information than that
+ contained in Type 1 font files is needed. Besides, Adobe makes
+ these AFM files freely available on their ftp-server for all
+ registered Type 1 fonts.
+\item In case AFM files are missing, \tonelib\ is able to generate
+ metrics information in charspace accuracy by rastering each
+ character at 1000~bp.
+\item In addition to generation of character bitmaps, there is a way
+ to directly raster strings of any length in a given font.
+ The space-width may explicitly be corrected by the user. This
+ may be needed by word processing applications.
+\item Strings may be rastered
+ optionally using pairwise kerning information from
+ the AFM file. Kerning is an important feature of good
+ quality typesetting.
+ Kerning information can also be requested by the user without
+ rasterization.
+\item Ligature information is made available to the user in an
+ efficient way. Use of Ligatures is another characteristic of good
+ typesetting. As to my
+ knowledge, only \TeX\ and all related macro-packages are able to
+ handle ligatures in a natural and efficient way.
+\item Rotation and arbitrary transformation on the fly is supported.
+\item \tonelib\ supports antialiasing. In this case, a pixel is
+ represented as a byte, word or double word. Antialiasing is
+ implemented by subsampling with factor 2 or 4 alternatively.
+ If you use the X11-interface introduced in \tonelib\ V.\ 0.3-beta,
+ even colored antialiasing between any pair of colors is provided in a
+ completely transparent way.
+\item In addition to transformation on the fly, two transformation
+ types---{\em slanting} and {\em extending}---are possible on the fontlevel
+ including bitmap caching. Horizontal expansion of fonts is fully supported
+ and since version 0.3-beta also {\em slanting} of fonts is nearly fully
+ supported. For restrictions and drawbacks of slanting fonts see
+ \ref{transformations} on page \pageref{transformations}.
+\item Paths, the library searches for the different needed file types
+ are specified at runtime by means of a
+ configuration file. They may thus be changed without needing to
+ recompile the application. For example, the directories of the
+ X11-system's Type 1 font files may be specified there in order to use
+ these fonts with the library. A user may have his own configuration file and
+ as a fallback/default there is a system wide configuration file. This should
+ be setup when the library is installed.
+\item Since of version 0.3-beta a special set of functions is provided which
+ implements a more comfortable X11-interface. This is due to the fact that
+ X11 is the only standard window system in the UNIX world. However, as before
+ \tonelib\ may be compiled and used without even having X11 installed.
+\item Some decorations like {\em underlining} are supported by simply setting
+ a flag for the rastering functions.
+\item {\em Right To Left} typesetting is supported.
+\item Font subsetting is easily achieved using a high level function. This
+ makes it easier for application to efficiently export Postscript files.
+\item Composite character information can be retrieved. Moreover, \tonelib\
+ transparently handles and realizes composite character definitions from AFM
+ files.
+\end{itemize}
+There are also some problems and features not yet
+implemented, but likely to be implemented in the future.
+The main problem up to now is:
+\begin{itemize}
+\item The font cache isn't a font cache really. At this time all
+ bitmaps are saved by always allocating more memory from the
+ system. No automatic removal of bitmaps no longer needed is
+ done. However, the user has the possibility of explicitly
+ removing data, if he thinks it is not needed anymore.
+\end{itemize}
+
+\subsection{Copyrights and Credits}
+There are some copyrights on parts of the library and there are some
+programmers (or corporations) which I want to give credit.
+The library uses:
+\begin{itemize}
+\item[--] all internal parts of the X11-rasterizer donated to
+ the X11-project by IBM. This rasterizer does the {\em real} hard
+ work of scan-conversion.
+\item[--] the modifications to the rasterizer done by Piet
+ Tutelaers in his ps2pk-package. The main purpose was decoupling the
+ sources from the X11-system sources.
+\item[--] the \verb+parse_AFM+ software which was made freely available
+ by Adobe. This is used to parse the AFM files (what
+ a surprise) and to generate the data structures the information is
+ saved in.
+\end{itemize}
+
+Raph Levien (\verb+raph@acm.org+) contributed an algorithm for
+sampling down non-antialiased bitmaps to antialiased bitmaps in a very
+efficient manor. This makes antialiasing a lot faster.
+
+Fred L.\ Drake, Jr. (\verb+fdrake@acm.org+) wrote a Python interface to
+\tonelib, which is distributed with \tonelib. This wrapper is called
+\verb+t1python+ and allows Python-programmers to use Type 1 fonts. I
+can not tell anything more on this topic since I do not know the
+Python language. All questions concerning the Python interface should
+thus be addressed to Fred L.\ Drake, Jr.
+
+Evgeny Stambulchik (\verb+fnevgeny@plasma-gate.weizmann.ac.il+), maintainer of
+the \verb+grace+-project---a descendent of \verb+xmgr+, never gets tired of
+finding and reporting (and fixing) bugs in \tonelib. Other members of this
+project spent time in porting \tonelib\ to further systems:
+\begin{itemize}
+\item Ed Vigmond (\verb+vigmonde@IGB.UMontreal.CA+): IRIX-port,
+\item John Hasstedt (\verb+John.Hasstedt@sunysb.edu+): VMS-port,
+\item Alexander Mai (\verb+st002279@hrzpub.tu-darmstadt.de+): OS/2-port.
+\end{itemize}
+
+Hirotsugo Kakugawa (\verb+h.kakugawa@computer.org+) added support for GNU
+\verb+libtool+ to \tonelib.
+
+David Huggins-Daines (\verb+bn711@freenet.carleton.ca+) spent effort in
+finding memory leaks and maintains a Debian-package of \tonelib.
+
+
+\begin{center}
+ \Large Thanks to all these people \\
+ and to all those contributors not mentioned here!
+\end{center}
+
+\subsection{Motivation}
+The idea of writing this library was due to the SciTeXt-project which
+was founded in 1996. They needed a font raster system with some more
+functionality than X11 provided. You may find that some things (for
+example the format of the font database file) is really closely
+related to SciTeXt. In February '{}97 the SciTeXt developers decided to
+migrate from C to Java and did not need a font rasterizer any more. Since I
+thought there could be other applications for this library I continued the
+work on it and voila.
+
+I have removed the history description which followed at this place in some
+previous versions. The history can be roughly viewed in the file \verb+Changes+
+which is located in the toplevel directory of the distribution.
+
+
+\subsection{How to Reach the Author/How to Get \tonelib}
+If you have questions, comments or bug reports, you can reach me by
+eMail. The address is
+\begin{center}
+\verb+Rainer.Menzner@web.de+
+\end{center}
+If you have bug-reports, it would be best if you could reproduce the error
+using the test program \verb+xglyph+ (see \ref{xglyph}).
+
+\tonelib\ is available by anonymous ftp as\\[5mm]
+\verb+ftp://sunsite.unc.edu/pub/Linux/libs/graphics/t1lib-+$x.y[.z]$\verb+.tar.gz+
+\\[5mm]
+Here, $x.y.z$ is the version identifier and the brackets around $z$ indicate
+that this entry is optional.
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "t1lib_doc"
+%%% End: