summaryrefslogtreecommitdiff
path: root/Build/source/libs/t1lib/t1lib-5.1.2/doc/xglyph.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/t1lib/t1lib-5.1.2/doc/xglyph.tex')
-rw-r--r--Build/source/libs/t1lib/t1lib-5.1.2/doc/xglyph.tex490
1 files changed, 0 insertions, 490 deletions
diff --git a/Build/source/libs/t1lib/t1lib-5.1.2/doc/xglyph.tex b/Build/source/libs/t1lib/t1lib-5.1.2/doc/xglyph.tex
deleted file mode 100644
index 08a214484ff..00000000000
--- a/Build/source/libs/t1lib/t1lib-5.1.2/doc/xglyph.tex
+++ /dev/null
@@ -1,490 +0,0 @@
-%----------------------------------------------------------------------------
-% ----- File: xglyph.tex
-% ----- Author: Rainer Menzner (Rainer.Menzner@web.de)
-% ----- Date: 2003-01-04
-% ----- Description: This file is part of the t1lib-documentation.
-% ----- Copyright: t1lib is copyrighted (c) Rainer Menzner, 1996-2002.
-% 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{The Program {\ttfamily xglyph}}
-\label{xglyph}%
-\verb+xglyph+ is a tool which makes most of the functionality of
-\tonelib\ visible to the user without the need of having to write an
-own program and without the need of having to understand most of the
-library
-before. This program---as the name indicates---needs X11. It is thus only
-build if X11 is installed on the target system and if X11 support has not
-explicitly been disabled. All
-necessary resources are set internally to default values so that the
-program can be run out of the box without any installation.
-
-In case the user did not already create a custom configuration file and an
-associated font database file, the program should be started from the
-subdirectory \verb+xglyph+ of the distribution. When starting, \verb+xglyph+
-checks for the environment entry \verb+T1LIB_CONFIG+ and if it does not exist
-it adds the association \verb+T1LIB_CONFIG=./t1lib.config+ to the
-environment. In other words it expects a valid configuration file in the
-current directory.
-
-There are several widgets which may be categorized into 5 types.
-
-\subsection{Common Parameter Dialogs and Toggle Buttons}
-These buttons modify the internal state of the program by setting some global
-variables. These variables affect the execution of all rastering functions in
-contrast to the buttons described in the next subsection which only take
-influence on the X11 rastering functions. When changing
-one of the following parameters nothing seems to happen at first. All
-actions are deferred to the time when an action button is
-clicked. Here is a list of the dialogs and toggles:
-\begin{itemize}
-\item \fbox{{\bfseries FontID}}\\
- This dialog allows to specify the font ID that will be used when
- the next action takes place. The allowed IDs range from 0 to $n-1$,
- where $n$ is the number of fonts declared in the font database
- file. If using the default configuration file together with the
- default font database file, 8 fonts are declared. If an invalid ID
- is specified, the next action generates an error message.
-\item \fbox{{\bfseries Font-Size}}\\
- Here, the size of the font is specified. The value is interpreted in
- bigpoints, the default PostScript unit. If the size specified is
- invalid, an appropriate error message is generated at the time of
- the next action.
-\item \fbox{{\bfseries Slant-Factor}}\\
- A slant factor $s$ may be specified. It is interpreted the following
- way. A point described by the coordinate-pair $(x,y)$ is transformed
- to the point with the coordinates $(x+sy,y)$. For instance,
- specifying a slant factor $s=1$ will generate a font slanted by
- $45^\circ$. Since version 0.3-beta slanted are nearly fully supported.
- For a discussion of the remaining problems see
- \ref{transformations} on page
- \pageref{transformations}.
-\item \fbox{{\bfseries Extension-Factor}}\\
- Horizontal extension of a font may be realized using this
- dialog. The default value is 1 which means the characters are
- presented at their natural width. Specification of an invalid value
- will generate an error message at the time of the next action.
-\item \fbox{{\bfseries Transformation-Matrix}}\\
- This dialog gives complete Control over the transformation matrix that will
- be used in consequent rasterizations. The values have to be specified
- separated by commas. A specified rotation is still applied after this
- matrix.
-\item \fbox{{\bfseries Res [DPI]}}\\
- The resolution of the output device (screen) may be specified in
- this dialog. Using the default value of 72 dpi means one bp in size
- corresponds to exactly one device pixel.
-\item \fbox{{\bfseries S-Width}}\\
- This dialog field allows to setup the penwidth used for stroking
- characters. If this field is zero, which is the default, the characters are
- filled, unless, the font under consideration is a stroked font, that is, it
- has \verb+PaintType = 1+.
-\item \fbox{{\bfseries Encoding-File}}\\
- The name of an encoding file may be specified. Included in the
- distribution is only one file, \verb+IsoLatin1.enc+. It contains the
- standard X11 encoding in a format acceptable by \tonelib. If no name
- is given here, or the file with the name given here cannot not be
- parsed as an encoding file, the encoding is switched back to the fonts
- internal encoding. Again, this is done at the time of the next
- action.
-\item \fbox{{\bfseries Angle}}\\
- The angle at which the next character or string is rastered is
- specified here. There are no restrictions concerning the angle. Rotation is
- applied after setting the transformation matrix (see above).
-\item \fbox{{\bfseries Space-Off}}\\
- The value specified here represents an offset added to the
- spacewidth when rastering the next string. For this, it is
- interpreted in PostScript charspace units and thus subject to
- scaling.
-\item \fbox{{\bfseries Character}}\\
- A number between 0 and 255 inclusive should be specified here. It is
- used as the index into the current encoding vector when rasterizing
- a character. This gives the user access to all currently encoded
- characters, regardless of the current X11 keyboard mapping. If an
- index is given whose encoding entry would produce no black pixels,
- an error message is generated at the next character-rastering
- time. The default value is 65, which corresponds
- to the character ``A'' in most encoding vectors.
-\item \fbox{{\bfseries Test-String}}\\
- In this dialog, a complete string may be specified. It will be
- rastered when the next string-rastering button is pressed. It can be
- of arbitrary length (well, almost). If this field is left empty, the
- standard string ``Test'' will be used for rastering.
-\item \fbox{{\bfseries Kerning}}\\
- This is a toggle button. Its state determines whether pairwise
- kerning information from the AFM file will be used to correct the
- horizontal spacing during string rastering or not. A typical example
- is the word ``Test''; enabling kerning should---at least in
- fonts of good quality---move the ``T'' and the ``e'' significantly
- closer together.
-\item \fbox{{\bfseries Ligature}}\\
- This is a toggle button. Its state specifies whether the
- string is checked for ligatures prior to rastering it.
- Suitable character sequences are replaced with the corresponding
- ligature. For a good example, you should switch to
- font ID 4 and type in the string \verb+--difficult---+. If ligature
- detection is switched on, the two hyphens should be converted to an
- en-dash ``--'', the three hyphens should be converted to an em-dash
- ``---'' and the character series ``\verb+ffi+'' should be replaced
- with the ligature ``ffi'', rather than to be displayed as ``f{}f{}i''.
-\item \fbox{$|\longrightarrow$} / \fbox{$\longleftarrow|$} This button allows
- to change the writing direction that \tonelib\ will use in subsequent calls
- to the string rastering functions, the default being {\em Left To Right} as
- used in most European languages. This item is simply meant to demonstrate the
- capabilities of \tonelib. The package does not come with fonts that are
- intended to be used for {\em Right To Left} typesetting.
-\item \fbox{{\bfseries Underline}}\\
- This toggle button determines whether strings are underlined or not.
-\item \fbox{{\bfseries Overline}}\\
- Same as above for overlining.
-\item \fbox{{\bfseries Overstrike}}\\
- Same as above for overstriking.
-\item \fbox{{\bfseries AA-Low}}/\fbox{{\bfseries AA-High}}\\
- This button allows to select the subsampling factor for antialiasing in
- subsequent rastering operations. {\em AA-Low} means subsampling by factor 2
- which gives 5 gray values including black and white, whereas {\em AA-High}
- means subsampling by 4 which yields 17 gray values including black and
- white.
-\end{itemize}
-Notice that, aside from the latter, the toggle buttons only affect the string
-rastering functions.
-
-\subsection{Buttons that Influence the X11 Rastering Functions}
-The X11 rastering functions introduced in version 0.3-beta provide a
-considerably higher level of abstraction than the standard rastering
-functions. To show the effect in \verb+xglyph+, a few additional buttons are
-provided.
-\begin{itemize}
-\item \fbox{{\bfseries Transparent}}/\fbox{{\bfseries Opaque}}\\
- This button allows to switch between transparent and opaque mode in the X11
- rastering functions. In transparent mode, only non-background pixels are
- drawn and all other pixels are left untouched. In opaque mode the entire
- area that the bitmap will require is first filled with the background color
- and then the bitmap is placed on this area.
-\item \fbox{{\bfseries Foreground}}\\
- This is a label field with six color fields to the right and one color field
- to the left. Clicking on one of the color fields located on the right side
- will set the foreground color to the respective value (white, black, gray,
- red, green or blue). The color field on the left side always shows the
- current color selection.
-\item \fbox{{\bfseries Background}}\\
- This also is a label field with six color fields to the right and one color
- field to the left. It works in analogy to the above and sets the current
- background color. Note that in order make the background color active, the
- drawing mode must be set to ``opaque''.
-\end{itemize}
-
-\subsection{Buttons that Generate Actions}
-There are 10 buttons generating actions visible to the user.
-\begin{itemize}
-\item \fbox{{\bfseries Char}}\\
- This button generates a bitmap of the character specified in the
- \fbox{{\bfseries Character}}-dialog box. All parameters changed
- earlier become effective at this time. The resulting bitmap is then
- shown in the output window of \verb+xglyph+. Some information about
- the generated bitmap and elapsed
- time etc.\ is given in the message window. If an error occurred,
- the old contents of the output window are kept and a message is given
- to the user.
-\item \fbox{{\bfseries String}}\\
- This button generates a bitmap of the string specified in the
- \fbox{{\bfseries Test-String}}-dialog box. In addition to rastering
- characters, kerning and ligature settings may now take influence on
- the result of the operation (see \ref{fonts}). If no error occurs,
- the bitmap is shown in the output window and additional information is
- shown in the message area. Otherwise, an appropriate error message is
- given.
-\item \fbox{{\bfseries AAChar}}
-\item \fbox{{\bfseries AAString}}\\
- Both of these buttons do exactly the same as their non-antialiased
- counterparts. The only difference consists in the generation of an
- antialiased bitmap. The result is not a bitmap in fact.
- There are at least 8 bits per pixel and at most 32 bits per
- pixel in the resulting glyph. This depends on the depth of the
- X11-visual you use when starting xglyph. The result may consume
- quite a bit of memory
- if a {\ttfamily TrueColor} or {\tt DirectColor} visual is
- active.
-\item \fbox{{\bfseries CharX}}
-\item \fbox{{\bfseries StringX}}
-\item \fbox{{\bfseries AACharX}}
-\item \fbox{{\bfseries AAStringX}}\\
- These functions basically do the same as the counterparts lacking the ``X''
- in the name. But internally the X11 rastering functions are called to
- produce the output bitmap/pixmap. As a consequence the current foreground
- color, background color and drawing mode are taken into account. For a more
- complete discussion of the X11 rastering functions see \ref{x11interface} on
- page \pageref{x11interface}.
-\item \fbox{{\bfseries Font Table}}\\
- A character table of size $16 \times 16$ is shown in the output
- window. Each cell contains an antialiased representation of the character
- indexed by the field number. The function \verb+T1_AASetCharX()+ is
- used for drawing these characters. Current foreground and background colors
- are respected as well as are most other parameters accepted by the character
- rastering functions. Only the angle specification
- is ignored since I assume that it is not very useful to have an overview
- over a font at any angle different from 0. Notice that the default size
- (100) is probably too large to make the output window fit on the screen. No
- care is taken about this. The recommended size for viewing a font's
- character map is
- between 20 and 30 points at 72 dpi resolution.
-\item \fbox{{\bfseries About}}\\
- Shows an `about' message
- telling you that you are using \verb+xglyph+ and \tonelib\ in the current
- version.
-\item \fbox{{\bfseries Exit Program}}\\
- This button does what it says and exits the program.
-\end{itemize}
-
-\subsection{The Message Window}
-This area is located below the dialog box for the test
-string. Information potentially useful to the user is given here.
-There should be nothing needed to be said about the info---it is
-self-explaining.
-But two things should be noted:
-\begin{itemize}
-\item The elapsed time that is displayed is exactly the time spent in
- the respective rastering function. There might
- have been other actions in force which might make the user believe the
- time value given as being incorrect.\footnote{For example, there might have
- been size-dependent data to be deleted and recreated, or an encoding
- file might have needed
- to be loaded before rastering.} Moreover, the transfer to the
- X-server may become significant if 32 bits per pixel are used, the
- image is large and
- the program is running on a remote machine.
-\item The message \verb+t1lib: Couldn't generate Bitmap, T1_errno=...!+ simply
- tells the user that no bitmap could be generated. There may be
- several reasons. E.g., the \verb+FontID+-value given might have been
- out of range. Another possibility is that you have specified a
- character index which has no encoded character associated. The value of
- \verb+T1_errno+ might give a hint of what the problem was.
-\end{itemize}
-If a character map is displayed, the message window is giving no
-information apart from the font name and the final value of
-\verb+T1_errno+ because there have been executed
-up to 256 rastering operation and it would be impossible to keep track
-of all single operations.
-
-\subsection{The Output Window}
-The output window shows the output of the rastering operations. Its type is
-different for the standard and the X11 rastering functions. For the standard
-rastering functions, it is always adapted to the size of the glyph which is
-displayed plus a margin of 5 pixels on each side. For this reason, leading and
-trailing white space is not shown in the output window, it only shows up in
-the glyph's metrics in the message windows.
-
-The X11 rastering functions
-generate an output window of constant size (\hbox{600 $\times $ 400} pixels)
-with a logical origin in its center. This center is marked by a cross-hair of
-color cyan. The glyph is placed with respect to this origin. If it is too
-large to fit, the glyph simply is clipped. A second cross-hair is shown at the
-place where the origin of the next glyph would be located in color magenta.
-
-If a character map of a font is displayed, the output window contains
-a map of $16\times 16$ cells whose size depends on the metrics of the
-font that is displayed.
-
-
-\subsection{{\tt xglyph} Commandline Parameters}
-The syntax of the \verb+xglyph+ commandline is
-\begin{verbatim}
- xglyph [options] [fontfile1 [fontfile2 [...]]]
-\end{verbatim}
-If no options and no font files are specified on the commandline \verb+xglyph+
-reads the fonts from the font database file. The details depend on which
-configuration file is found and on this file's contents. If at least one font
-file is specified on the commandline, the font database---being existent and
-accessible or not---is ignored and the database is built using the fonts from
-the commandline. \verb+fontfile1+ is assigned the font ID 0, \verb+fontfile2+
-is assigned the ID 1 and so forth. Files that cannot be opened for some reason
-are simply skipped.
-
-\verb+xglyph+ also recognizes a few options. Notice that these options are not
-intended for an average user. Rather, they provide a means of (a) controlling
-debugging output from the rasterizer, (b) controlling generation and verbosity
-of the \tonelib-logfile, (c) disabling certain features of the rasterizer and
-(d) checking some \tonelib\ functions which otherwise would not be required
-because of the limited functionality of \verb+xglyph+.
-
-All commandline arguments that start with ``\verb+--+'' are considered to be
-options to \verb+xglyph+. The following is a complete list of valid options
-and a brief description of their effect:
-\begin{itemize}
-\item\verb+--help+: Display the commandline syntax of \verb+xglyph+ as well as
- a brief list of the available options for an average user and exit.
-\item\verb+--Help+: Display the commandline syntax of \verb+xglyph+ as well as
- a brief list of all available options.
-\item\verb+--noGrid+: The cross-hairs marking start and end position of a
- glyph in the output of one of the X11 rastering functions will be
- suppressed. This might be useful at small sizes because the grid overwrites
- the glyphs' pixels.
-\item\verb+--setPad+: The padding value \verb+xglyph+ should use can be
- specified here. This has to be followed by either ``8'', ``16'' or ``32'',
- separated by a space. Notice that the value ``32'' might be rejected as
- described in \ref{queryconfiguration}. The value actually used can be found
- by writing a logfile and examining this after a session.
-\item\verb+--logError+:
-\item\verb+--logWarning+:
-\item\verb+--logStatistic+:
-\item\verb+--logDebug+: These options firstly instruct \verb+xglyph+ to create
- a \tonelib\ logfile and secondly set the loglevel to the respective value
- (see \ref{logfile}). Without specifying one of these options, no logfile
- will be generated.
-\item\verb+--ignoreForceBold+: Instructs the rasterizer to ignore a {\tt
- ForceBold} hint in the Type 1 font file.
-\item\verb+--ignoreFamilyAlignment+: Instructs the rasterizer always to
- compute font level alignment according to \verb+BlueValues+ and
- \verb+OtherBlues+, even if \verb+FamilyBlues+ and \\
- \verb+FamilyOtherBlues+
- exist and all conditions for substitution are fulfilled for that combination
- of font and size.
-\item\verb+--ignoreHinting+: Instructs the rasterizer to omit hinting completely.
-\item\verb+--ignoreAFM+: The use of AFM information is ignored, no matter
- whether it could be accessed via an appropriate AFM file or
- self-generated. When using this option the string functions would not
- work. It may, however, be useful because self-generation of AFM data fails
- as soon as at least one character of all defined characters can not be
- processed and thus, the font will refuse to load. Using this option,
- consequently, one has access to all character that are processible, e.g.,
- for generating a font table.
- characters that can be rasterized
-\item\verb+--debugLine+:
-\item\verb+--debugRegion+:
-\item\verb+--debugPath+:
-\item\verb+--debugFont+:
-\item\verb+--debugHint+: All these instruct the rasterizer to write particular
- debug messages from intermediate steps of rasterization to the terminal. In
- order to understand and interprete them, a thorough understanding of the
- Type 1 font format specification and this special rasterizer implementation
- is crucial.
-\item\verb+--checkPerformance+: This option affects the X11 string rastering
- functions. An additional output window is created and the output of
- before-mentioned functions is directly written into this window. Note that
- this window is not managed as might be expected. Text is only drawn at the
- visible parts and after partially or completely hiding and again
- raising the respective areas are lost. This mechanism should simply give an
- idea of how fast the X11 rastering function work, admittedly a critical
- topic in \tonelib.
-\item\verb+--checkCopyFont+: This option is used to check the proper
- functioning of the \verb+T1_CopyFont()+ function. It copies all fonts from
- the database to new logical fonts and slants these fonts by 0.3. Finally an
- additional fontfile is added to the database. For each step the new font ID
- is printed to the terminal and the initial and final number of fonts are
- printed.
-\item\verb+--checkConcatGlyphs+: This option affects the buttons \fbox{\bf
- String} and \fbox{\bf AAString}. The requested string glyph is generated
- twice, first time using the current value of font ID and second time using
- this
- values plus 1. Both resulting glyphs are concatenated and the result is
- shown in the output window.
-\item\verb+--checkConcatOutlines+: This option, too, affects the standard
- string rastering functions. The current test string will be fetched as an
- outline using the current font ID. The result is then concatenated with a
- horizontal movement of 1000 charspace unit which is followed by the
- identical string using a font ID advanced by 1. The result of the
- concatenated outlines is then filled and converted to a \tonelib-glyph.
- For details on outline handling and what it is meant for see \ref{outlines}.
-
- When \verb+--checkConcatGlyphs+ and \verb+--checkConcatOutlines+ both are
- specified on commandline, the \verb+--checkConcatGlyphs+ is respected.
-\item\verb+--checkBadCharHandling+: This option provides a means of
- examining the effects of problematic/bad characters on string handling in
- \tonelib with \verb+xglyph+. It affects only the \fbox{\bf String} button.
- The character to be specified in the test character field is inserted in
- the middle of the test string. This enables the user to insert arbitrary
- character codes in the middle of a test string and to watch the effect in
- \verb+T1_SetString()+. For example, starting \verb+xglyph+ with this
- option exclusively and immediately clicking \fbox{\bf String} will show
- the string {\em TeAt} in the output window because the character `s' has
- been overwritten by character $65_{10}$ (`A'), the default test character.
-\item\verb+--checkDefaultEncoding+: This option proves that the default
- encoding feature works correct. If set, all fonts should be encoded in
- IsoLatin1 encoding immediately after startup and without any slow down at
- startup.
-\item\verb+--checkSmartAntialiasing+: Enables smart antialiasing as described
- in \ref{antialiasing}. The effect is that \tonelib\ will determine the
- antialiasing level by itself. For sizes below 20~bp, $4\times$ antialiasing
- will be used and up to 60~bp $2\times$ antialiasing is used. For size of
- 60~bp and larger a ``bytemap'' is created which in fact consists only of
- pure background and foreground pixels. When this options has been
- specified, toggling the antialiasing level has no effect.
-\item\verb+--checkAACaching+: This option enables caching of antialiased
- character glyphs. For a discussion of this issue see \ref{aacaching}. The
- string rastering functions are not affected by this option.
-\item \verb+--checkSetRect+: This option allows to check the rectangle drawing
- functions of \tonelib. If specified, the character drawing buttons will
- produce an em unit square of the current font instead of the expected
- character.
-\item \verb+--cacheStrokedGlyphs+: If this option is specified, \verb+xglyph+
- will cache stroked glyphs whereas filled ones are not cached.
-\end{itemize}
-For those who are wondering about special X11 options like ``\verb+-display+'',
-\verb+xglyph+ does not support these. The widgets are built straight ahead and
-the layout is fixed. \verb+xglyph+ is meant to be a tool for testing some of
-the functionalities of \tonelib\ and nothing more. Of course, a display other
-than \verb+localhost:0.0+ may be specified by environment variable
-\verb+DISPLAY+.
-
-
-\subsection{Fonts Included in the \tonelib-Package}
-\label{fonts}%
-Included in the \tonelib-package are 8 fonts of two families which
-are freely available.
-\begin{enumerate}
-\item The CharterBT-fonts in Roman, Italic, Bold and BoldItalic
- variants. These are good quality fonts containing kerning
- information. Notable kerning pairs are ``T''--``e'', ``A''--``V''
- and ``A''--``T''.
-\item The ComputerModern-fonts by Donald E.~Knuth in the variants
- Roman, Italic, BoldExtended and BoldExtendedItalic. In addition to
- kerning information, there are many ligatures in these
- fonts. Most people will know about the present ligatures from using
- \TeX, the typesetting system. Notable examples are:
- \verb+--+ $\rightarrow$ ``--'',
- \verb+---+ $\rightarrow$ ``---'',
- \verb+fi+ $\rightarrow$ ``fi'' and
- \verb+ffi+ $\rightarrow$ ``ffi''.
- These fonts have the disadvantage that no ordinary space character
- is included, only a visible space. \TeX\ itself does not need a
- dedicated space character.
-\end{enumerate}
-Note that working with ligatures requires the ligatures to be
-encoded at the positions they are expected. Thus, if you reencode one of the
-dc-fonts with the IsoLatin1-encoding funny effects may occur.
-
-\subsection{Some General Remarks on {\tt xglyph}}
-The program \verb+xglyph+ is just intended to check whether \tonelib\ works on
-a particular system. It is written straight forward and does not care much on
-performance and such. Especially, it is not a typical application for a
-rasterizer library. The bitmaps are generated and then the output window is
-adapted to the size of the bitmap/pixmap generated by the rastering
-function. This contradicts the X11 principle of ``drawing into a drawable''
-and requires some overhead if one wants a fitted output window. In that sense,
-the performance of the X11 rastering functions is not directly comparable to
-the performance of the standard rastering functions. This should always be
-kept in mind.
-
-
-
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "t1lib_doc"
-%%% End: