Date: 8 Oct 1999 14:50:38 -0000 From: nbm@rucus.ru.ac.za To: FreeBSD-gnats-submit@freebsd.org Subject: docs/14206: whitespace fixup for fonts article Message-ID: <19991008145038.61048.qmail@mithrandr.moria.org>
next in thread | raw e-mail | index | archive | help
>Number: 14206 >Category: docs >Synopsis: whitespace fixup for fonts article >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-doc >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Fri Oct 8 08:00:00 PDT 1999 >Closed-Date: >Last-Modified: >Originator: Neil Blakey-Milner >Release: FreeBSD 4.0-CURRENT i386 >Organization: Rhodes University Computer Users' Society >Environment: FreeBSD mithrandr.moria.org 4.0-CURRENT FreeBSD 4.0-CURRENT #2: Wed Sep 29 17:30:21 SAST 1999 root@mithrandr.moria.org:/usr/src/sys/compile/MITHRANDR i386 >Description: This is an entirely whitespace change, which applies the new proposed indentation/whitespace style. Translators can ignore this, but should take note of the style. This patch relies on docs/14197. >How-To-Repeat: >Fix: --- article.sgml.old Thu Oct 7 21:57:25 1999 +++ article.sgml Fri Oct 8 14:54:08 1999 @@ -23,265 +23,294 @@ --> <article> + <artheader> + <title>Fonts and FreeBSD</title> + + <subtitle>A Tutorial</subtitle> + + <authorgroup> + <author> + <firstname>Dave</firstname> + + <surname>Bodenstab</surname> + + <affiliation> + <address> + <email>imdave@synet.net</email> + </address> + </affiliation> + </author> + </authorgroup> + + <pubdate>Wed Aug 7, 1996</pubdate> + + <abstract> + <para>This document contains a description of the various font + files that may be used with FreeBSD and the syscons driver, + X11, Ghostscript and Groff. Cookbook examples are provided + for switching the syscons display to 80x60 mode, and for using + type 1 fonts with the above application programs.</para> + </abstract> + </artheader> + + <sect1> + <title>Introduction</title> + + <para>There are many sources of fonts available, and one might ask + how they might be used with FreeBSD. The answer can be found by + carefully searching the documentation for the component that one + would like to use. This is very time consuming, so this + tutorial is an attempt to provide a shortcut for others who + might be interested.</para> + </sect1> + + <sect1> + <title>Basic terminology</title> + + <para>There are many different font formats and associated font + file suffixes. A few that will be addressed here are:</para> + + <variablelist> + <varlistentry> + <term><filename>.pfa</>, <filename>.pfb</></term> + + <listitem> + <para>Postscript type 1 fonts. The + <filename>.pfa</filename> is the + <emphasis>A</emphasis>scii form and + <filename>.pfb</filename> the <emphasis>B</emphasis>inary + form.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><filename>.afm</></term> + + <listitem> + <para>The font metrics associated with a type 1 font.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><filename>.pfm</></term> + + <listitem> + <para>The printer font metrics associated with a type 1 + font.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><filename>.ttf</></term> + + <listitem> + <para>A TrueType font</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><filename>.fot</></term> + + <listitem> + <para>An indirect reference to a TrueType font (not an + actual font)</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><filename>.fon</>, <filename>.fnt</></term> + + <listitem> + <para>Bitmapped screen fonts</para> + </listitem> + </varlistentry> + </variablelist> + + <para>The <filename>.fot</filename> file is used by Windows as + sort of a symbolic link to the actual TrueType font + (<filename>.ttf</filename>) file. The <filename>.fon</filename> + font files are also used by Windows. I know of no way to use + this font format with FreeBSD.</para> + </sect1> + + <sect1> + <title>What font formats can I use?</title> + + <para>Which font file format is useful depends on the application + being used. FreeBSD by itself uses no fonts. Application + programs and/or drivers may make use of the font files. Here is + a small cross reference of application/driver to the font type + suffixes:</para> + + <variablelist> + <varlistentry> + <term>Driver</term> + + <listitem> + <variablelist> + <varlistentry> + <term>syscons</term> + + <listitem> + <para><filename>.fnt</></para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Application</term> + + <listitem> + <variablelist> + <varlistentry> + <term>Ghostscript</term> + + <listitem> + <para><filename>.pfa</filename>, + <filename>.pfb</filename>, + <filename>.ttf</filename></para> + </listitem> + </varlistentry> + + <varlistentry> + <term>X11</term> + + <listitem> + <para><filename>.pfa</filename>, + <filename>.pfb</filename></para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Groff</term> + + <listitem> + <para><filename>.pfa</filename>, + <filename>.afm</filename></para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Povray</term> + + <listitem> + <para><filename>.ttf</filename></para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + </variablelist> + + <para>The <filename>.fnt</filename> suffix is used quite + frequently. I suspect that whenever someone wanted to create a + specialized font file for their application, more often than not + they chose this suffix. Therefore, it is likely that files with + this suffix are not all the same format; specifically, the + <filename>.fnt</filename> files used by syscons under FreeBSD + may not be the same format as a <filename>.fnt</filename> file + one encounters in the MSDOS/Windows environment. I have not + made any attempt at using other <filename>.fnt</filename> files + other than those provided with FreeBSD.</para> + </sect1> + + <sect1> + <title>Setting a virtual console to 80x60 line mode</title> + + <para>First, a 8x8 font must be loaded. + <filename>/etc/sysconfig</filename> should contain the + lines:</para> + +<informalexample> +<programlisting> +# Choose font 8x8 from /usr/share/syscons/fonts/* (or NO for default) +font8x8=/usr/share/syscons/fonts/cp437-8x8.fnt +</programlisting> +</informalexample> + + <para>The command to actually switch the mode is + &man.vidcontrol.1:</para> -<artheader> -<title>Fonts and FreeBSD</title> -<subtitle>A Tutorial</subtitle> - -<authorgroup> -<author> -<firstname>Dave</firstname> -<surname>Bodenstab</surname> -<affiliation> -<address><email>imdave@synet.net</email></address> -</affiliation> -</author> -</authorgroup> - -<pubdate>Wed Aug 7, 1996</pubdate> - -<abstract><para>This document contains a description of the various -font files that may be used with FreeBSD and the syscons driver, X11, -Ghostscript and Groff. Cookbook examples are provided for switching -the syscons display to 80x60 mode, and for using type 1 fonts with -the above application programs.</para></abstract> - -</artheader> - -<sect1> -<title>Introduction</title> - -<para>There are many sources of fonts available, and one might ask -how they might be used with FreeBSD. The answer can be found by -carefully searching the documentation for the component that one -would like to use. This is very time consuming, so this tutorial is -an attempt to provide a shortcut for others who might be -interested.</para> - -</sect1> - -<sect1> -<title>Basic terminology</title> - -<para>There are many different font formats and associated font file -suffixes. A few that will be addressed here are: -</para> -<variablelist> - -<varlistentry><term><filename>.pfa</>, <filename>.pfb</></term> - -<listitem><para>Postscript type 1 fonts. The <filename>.pfa</filename> is the -<emphasis>A</emphasis>scii form and <filename>.pfb</filename> the -<emphasis>B</emphasis>inary form.</para></listitem> - -</varlistentry> - -<varlistentry><term><filename>.afm</></term> - -<listitem><para>The font metrics associated with a type 1 -font.</para></listitem> - -</varlistentry> - -<varlistentry><term><filename>.pfm</></term> - -<listitem><para>The printer font metrics associated with a type 1 -font.</para></listitem> - -</varlistentry> - -<varlistentry><term><filename>.ttf</></term> - -<listitem><para>A TrueType font</para></listitem> - -</varlistentry> - -<varlistentry><term><filename>.fot</></term> - -<listitem><para>An indirect reference to a TrueType font (not an -actual font)</para></listitem> - -</varlistentry> - -<varlistentry><term><filename>.fon</>, <filename>.fnt</></term> - -<listitem><para>Bitmapped screen fonts</para></listitem> - -</varlistentry> -</variablelist> - -<para>The <filename>.fot</filename> file is used by Windows as sort -of a symbolic link to the actual TrueType font -(<filename>.ttf</filename>) file. The <filename>.fon</filename> font -files are also used by Windows. I know of no way to use this font -format with FreeBSD.</para> - -</sect1> - -<sect1> -<title>What font formats can I use?</title> - -<para>Which font file format is useful depends on the application -being used. FreeBSD by itself uses no fonts. Application programs -and/or drivers may make use of the font files. Here is a small cross -reference of application/driver to the font type suffixes:</para> - -<variablelist> -<varlistentry><term>Driver</term> -<listitem> -<variablelist> -<varlistentry><term>syscons</term> -<listitem> -<para><filename>.fnt</></para> - -</listitem> -</varlistentry> -</variablelist> - -</listitem> -</varlistentry> - -<varlistentry><term>Application</term> - -<listitem> -<variablelist> -<varlistentry><term>Ghostscript</term> -<listitem> -<para><filename>.pfa</filename>, <filename>.pfb</filename>, <filename>.ttf</filename></para> - -</listitem> -</varlistentry> - -<varlistentry><term>X11</term> - -<listitem> -<para><filename>.pfa</filename>, <filename>.pfb</filename></para> - -</listitem> -</varlistentry> - -<varlistentry><term>Groff</term> - -<listitem> -<para><filename>.pfa</filename>, <filename>.afm</filename></para> - -</listitem> -</varlistentry> - -<varlistentry><term>Povray</term> - -<listitem> -<para><filename>.ttf</filename></para> - -</listitem> -</varlistentry> -</variablelist> - -</listitem> -</varlistentry> -</variablelist> - -<para>The <filename>.fnt</filename> suffix is used quite frequently. -I suspect that whenever someone wanted to create a specialized font -file for their application, more often than not they chose this -suffix. Therefore, it is likely that files with this suffix are not -all the same format; specifically, the <filename>.fnt</filename> -files used by syscons under FreeBSD may not be the same format as a -<filename>.fnt</filename> file one encounters in the MSDOS/Windows -environment. I have not made any attempt at using other -<filename>.fnt</filename> files other than those provided with -FreeBSD.</para> - -</sect1> - -<sect1> -<title>Setting a virtual console to 80x60 line mode</title> - -<para>First, a 8x8 font must be loaded. -<filename>/etc/sysconfig</filename> should contain the lines: -</para> -<informalexample> -<programlisting># Choose font 8x8 from /usr/share/syscons/fonts/* (or NO for default) -font8x8=/usr/share/syscons/fonts/cp437-8x8.fnt</programlisting> -</informalexample> - -<para>The command to actually switch the mode is -&man.vidcontrol.1: -</para> -<informalexample> -<screen>bash$ <userinput>vidcontrol VGA_80x60</userinput></screen> -</informalexample> - -<para>Various screen orientated programs, such as -&man.vi.1, must be able to -determine the current screen dimensions. These can be set with -&man.stty.1;: -</para> -<informalexample> -<screen>bash$ <userinput>stty crt rows 60 columns 80</userinput></screen> -</informalexample> - -<para>To make this more seamless, one can embed these commands in the -startup scripts so it takes place when the system boots. One way to -do this is: -</para> -<orderedlist> - -<listitem> -<para>Modify <filename>/etc/sysconfig</filename> as above</para> -</listitem> - -<listitem> -<para>Add to <filename>/etc/rc.local</filename>: -</para> <informalexample> -<programlisting>for tty in /dev/ttyv? +<screen> +bash$ <userinput>vidcontrol VGA_80x60</userinput> +</screen> +</informalexample> + + <para>Various screen orientated programs, such as &man.vi.1, must + be able to determine the current screen dimensions. These can + be set with &man.stty.1;:</para> + +<informalexample> +<screen> +bash$ <userinput>stty crt rows 60 columns 80</userinput> +</screen> +</informalexample> + + <para>To make this more seamless, one can embed these commands in + the startup scripts so it takes place when the system boots. + One way to do this is:</para> + + <orderedlist> + <listitem> + <para>Modify <filename>/etc/sysconfig</filename> as + above</para> + </listitem> + + <listitem> + <para>Add to <filename>/etc/rc.local</filename>:</para> + +<informalexample> +<programlisting> +for tty in /dev/ttyv? do vidcontrol VGA_80x60 <$tty >/dev/null 2>&1 -done</programlisting> +done +</programlisting> </informalexample> -</listitem> + </listitem> + + <listitem> + <para>Add to <filename>/etc/profile</filename>:</para> -<listitem> -<para>Add to <filename>/etc/profile</filename>: -</para> <informalexample> -<programlisting>TTYNAME=`basename \`tty\`` +<programlisting> +TTYNAME=`basename \`tty\`` if expr "$TTYNAME" : 'ttyv' >/dev/null then stty crt rows 60 columns 80 -fi</programlisting> +fi +</programlisting> </informalexample> -</listitem> + </listitem> + </orderedlist> + + <para>References: &man.stty.1;, &man.vidcontrol.1;.</para> + </sect1> + + <sect1> + <title>Using type 1 fonts with X11</title> + + <para>X11 can use either the <filename>.pfa</filename> or the + <filename>.pfb</filename> format fonts. The X11 fonts are + located in various subdirectories under + <filename>/usr/X11R6/lib/X11/fonts</filename>. Each font file + is cross referenced to its X11 name by the contents of the + <filename>fonts.dir</filename> file in each directory.</para> + + <para>There is already a directory named <filename>Type1</>. The + most straight forward way to add a new font is to put it into + this directory. A better way is to keep all new fonts in a + separate directory and use a symbolic link to the additional + font. This allows one to more easily keep track of ones fonts + without confusing them with the fonts that were originally + provided. For example:</para> -</orderedlist> - -<para>References: -&man.stty.1;, -&man.vidcontrol.1;.</para> - -</sect1> - -<sect1> -<title>Using type 1 fonts with X11</title> - -<para>X11 can use either the <filename>.pfa</filename> or the -<filename>.pfb</filename> format fonts. The X11 fonts are located in -various subdirectories under -<filename>/usr/X11R6/lib/X11/fonts</filename>. Each font file is -cross referenced to its X11 name by the contents of the -<filename>fonts.dir</filename> file in each directory.</para> - -<para>There is already a directory named <filename>Type1</>. The most -straight forward way to add a new font is to put it into this -directory. A better way is to keep all new fonts in a separate -directory and use a symbolic link to the additional font. This -allows one to more easily keep track of ones fonts without confusing -them with the fonts that were originally provided. For -example: -</para> <informalexample> -<screen><lineannotation>Create a directory to contain the font files</> +<screen> +<lineannotation>Create a directory to contain the font files</> bash$ <userinput>mkdir -p /usr/local/share/fonts/type1</> bash$ <userinput>cd /usr/local/share/fonts/type1</> @@ -292,16 +321,18 @@ bash$ <userinput>cp /cdrom/fonts/atm/showboat/showboat.afm .</> <lineannotation>Maintain an index to cross reference the fonts</> -bash$ <userinput>echo showboat - InfoMagic CICA, Dec 1994, /fonts/atm/showboat >>INDEX</></screen> +bash$ <userinput>echo showboat - InfoMagic CICA, Dec 1994, /fonts/atm/showboat >>INDEX</> +</screen> </informalexample> - -<para>Now, to use a new font with X11, one must make the font file -available and update the font name files. The X11 font names look -like: -</para> + + <para>Now, to use a new font with X11, one must make the font file + available and update the font name files. The X11 font names + look like:</para> + <informalexample> -<screen>-bitstream-charter-medium-r-normal-xxx-0-0-0-0-p-0-iso8859-1 - | | | | | | | | | | | | \ \ +<screen> +-bitstream-charter-medium-r-normal-xxx-0-0-0-0-p-0-iso8859-1 + | | | | | | | | | | | | \ \ | | | | | \ \ \ \ \ \ \ +----+- character set | | | | \ \ \ \ \ \ \ +- average width | | | | \ \ \ \ \ \ +- spacing @@ -310,18 +341,19 @@ | | | \ \ \ \ +- points | | | \ \ \ +- pixels | | | \ \ \ - foundry family weight slant width additional style</screen> + foundry family weight slant width additional style +</screen> </informalexample> - -<para>A new name needs to be created for each new font. If you have -some information from the documentation that accompanied the font, -then it could serve as the basis for creating the name. If there is -no information, then you can get some idea by using -&man.strings.1; on the font -file. For example: -</para> + + <para>A new name needs to be created for each new font. If you + have some information from the documentation that accompanied + the font, then it could serve as the basis for creating the + name. If there is no information, then you can get some idea by + using &man.strings.1; on the font file. For example:</para> + <informalexample> -<screen>bash$ <userinput>strings showboat.pfb | more</> +<screen> +bash$ <userinput>strings showboat.pfb | more</> %!FontType1-1.0: Showboat 001.001 %%CreationDate: 1/15/91 5:16:03 PM %%VMusage: 1024 45747 @@ -345,87 +377,113 @@ 1991 by David Rakowski. Alle Rechte Vorbehalten.) readonly def end readonly def /FontName /Showboat def ---stdin--</screen> +--stdin-- +</screen> </informalexample> - -<para>Using this information, a possible name might be: -</para> -<informalexample> -<screen>-type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1</screen> -</informalexample> - -<para>The components of our name are: -</para> -<variablelist> - -<varlistentry><term>Foundry</term> -<listitem> -<para>Lets just name all the new fonts <literal>type1</>.</para> -</listitem> -</varlistentry> - -<varlistentry><term>Family</term> -<listitem> -<para>The name of the font.</para> -</listitem> -</varlistentry> - -<varlistentry><term>Weight</term> -<listitem> -<para>Normal, bold, medium, semibold, etc. From the -<citerefentry><refentrytitle>strings</><manvolnum>1</></> output -above, it appears that this font has a weight of -<emphasis>medium</emphasis>.</para> -</listitem> -</varlistentry> - -<varlistentry><term>Slant</term> -<listitem> -<para><emphasis remap=bf>r</emphasis>oman, <emphasis -remap=bf>i</emphasis>talic, <emphasis remap=bf>o</emphasis>blique, -etc. Since the <emphasis>ItalicAngle</emphasis> is zero, -<emphasis>roman</emphasis> will be used.</para> -</listitem> -</varlistentry> - -<varlistentry><term>Width</term> -<listitem> -<para>Normal, wide, condensed, extended, etc. Until it can be examined, -the assumption will be <emphasis>normal</emphasis>.</para> -</listitem> -</varlistentry> - -<varlistentry><term>Additional style</term> -<listitem> -<para>Usually omitted, but this will indicate that -the font contains decorative capital letters.</para> -</listitem> -</varlistentry> - -<varlistentry><term>Spacing</term> -<listitem> -<para>proportional or monospaced. <emphasis>Proportional</emphasis> -is used since <emphasis>isFixedPitch</emphasis> is false.</para> -</listitem> -</varlistentry> - -</variablelist> - -<para>All of these names are arbitrary, but one should strive to be -compatible with the existing conventions. A font is referenced by -name with possible wild cards by an X11 program, so the name chosen -should make some sense. One might begin by simply using -<informalexample> -<screen>…-normal-r-normal-…-p-…</screen> -</informalexample> -as the name, and then use -<citerefentry><refentrytitle>xfontsel</><manvolnum>1</></> to examine it -and adjust the name based on the appearance of the font.</para> -<para>So, to complete our example: -</para> + <para>Using this information, a possible name might be:</para> + <informalexample> -<screen><lineannotation>Make the font accessible to X11</> +<screen> +-type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1 +</screen> +</informalexample> + + <para>The components of our name are:</para> + + <variablelist> + <varlistentry> + <term>Foundry</term> + + <listitem> + <para>Lets just name all the new fonts + <literal>type1</>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Family</term> + + <listitem> + <para>The name of the font.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Weight</term> + + <listitem> + <para>Normal, bold, medium, semibold, etc. From the + <citerefentry><refentrytitle>strings</><manvolnum>1</></> + output above, it appears that this font has a weight of + <emphasis>medium</emphasis>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Slant</term> + + <listitem> + <para><emphasis remap=bf>r</emphasis>oman, <emphasis + remap=bf>i</emphasis>talic, <emphasis + remap=bf>o</emphasis>blique, etc. Since the + <emphasis>ItalicAngle</emphasis> is zero, + <emphasis>roman</emphasis> will be used.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Width</term> + + <listitem> + <para>Normal, wide, condensed, extended, etc. Until it can + be examined, the assumption will be + <emphasis>normal</emphasis>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Additional style</term> + + <listitem> + <para>Usually omitted, but this will indicate that the font + contains decorative capital letters.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Spacing</term> + + <listitem> + <para>proportional or monospaced. + <emphasis>Proportional</emphasis> is used since + <emphasis>isFixedPitch</emphasis> is false.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>All of these names are arbitrary, but one should strive to + be compatible with the existing conventions. A font is + referenced by name with possible wild cards by an X11 program, + so the name chosen should make some sense. One might begin by + simply using + +<informalexample> +<screen> +…-normal-r-normal-…-p-… +</screen> +</informalexample> + + as the name, and then use + <citerefentry><refentrytitle>xfontsel</><manvolnum>1</></> to + examine it and adjust the name based on the appearance of the + font.</para> + + <para>So, to complete our example:</para> + +<informalexample> +<screen> +<lineannotation>Make the font accessible to X11</> bash$ <userinput>cd /usr/X11R6/lib/X11/fonts/Type1</> bash$ <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</> @@ -449,29 +507,29 @@ bash$ <userinput>xset fp rehash</> <lineannotation>Examine the new font</> -bash$ <userinput>xfontsel -pattern -type1-*</></screen> +bash$ <userinput>xfontsel -pattern -type1-*</> +</screen> </informalexample> - -<para>References: -&man.xfontsel.1;, -&man.xset.1;, -<citetitle>The X Windows System in a Nutshell</>, <ulink -URL="http://www.ora.com/">O'Reilly & Associates</ulink>.</para> - -</sect1> - -<sect1> -<title>Using type 1 fonts with Ghostscript</title> - -<para>Ghostscript references a font via its <filename>Fontmap</> -file. This must be modified in a similar way to the X11 -<filename>fonts.dir</filename> file. Ghostscript can use either the -<filename>.pfa</filename> or the <filename>.pfb</filename> format -fonts. Using the font from the previous example, here is how to use -it with Ghostscript: -</para> + + <para>References: &man.xfontsel.1;, &man.xset.1;, <citetitle>The X + Windows System in a Nutshell</>, <ulink + URL="http://www.ora.com/">O'Reilly & + Associates</ulink>.</para> + </sect1> + + <sect1> + <title>Using type 1 fonts with Ghostscript</title> + + <para>Ghostscript references a font via its <filename>Fontmap</> + file. This must be modified in a similar way to the X11 + <filename>fonts.dir</filename> file. Ghostscript can use either + the <filename>.pfa</filename> or the <filename>.pfb</filename> + format fonts. Using the font from the previous example, here is + how to use it with Ghostscript:</para> + <informalexample> -<screen><lineannotation>Put the font in Ghostscript's font directory</> +<screen> +<lineannotation>Put the font in Ghostscript's font directory</> bash$ <userinput>cd /usr/local/share/ghostscript/fonts</> bash$ <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</> @@ -497,46 +555,51 @@ >>showpage, press <return> to continue<< >>showpage, press <return> to continue<< >>showpage, press <return> to continue<< -GS><userinput>quit</></screen> +GS><userinput>quit</> +</screen> </informalexample> - -<para>References: <filename>fonts.txt</filename> in the Ghostscript -4.01 distribution</para> - -</sect1> - -<sect1> -<title>Using type 1 fonts with Groff</title> - -<para>Now that the new font can be used by both X11 and Ghostscript, -how can one use the new font with groff? First of all, since we are -dealing with type 1 postscript fonts, the groff device that is -applicable is the <emphasis>ps</emphasis> device. A font file must be -created for each font that groff can use. A groff font name is just -a file in <filename>/usr/share/groff_font/devps</filename>. With our -example, the font file could be -<filename>/usr/share/groff_font/devps/SHOWBOAT</filename>. The file -must be created using tools provided by groff.</para> - -<para>The first tool is <command>afmtodit</>. This is not normally -installed, so it must be retrieved from the source distribution. I -found I had to change the first line of the file, so I did: -</para> + + <para>References: <filename>fonts.txt</filename> in the + Ghostscript 4.01 distribution</para> + </sect1> + + <sect1> + <title>Using type 1 fonts with Groff</title> + + <para>Now that the new font can be used by both X11 and + Ghostscript, how can one use the new font with groff? First of + all, since we are dealing with type 1 postscript fonts, the + groff device that is applicable is the <emphasis>ps</emphasis> + device. A font file must be created for each font that groff + can use. A groff font name is just a file in + <filename>/usr/share/groff_font/devps</filename>. With our + example, the font file could be + <filename>/usr/share/groff_font/devps/SHOWBOAT</filename>. The + file must be created using tools provided by groff.</para> + + <para>The first tool is <command>afmtodit</>. This is not + normally installed, so it must be retrieved from the source + distribution. I found I had to change the first line of the + file, so I did:</para> + <informalexample> -<screen>bash$ <userinput>cp /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.pl /tmp</> +<screen> +bash$ <userinput>cp /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.pl /tmp</> bash$ <userinput>ex /tmp/afmtodit.pl :1c #!/usr/bin/perl -P- . -:wq</></screen> +:wq</> +</screen> </informalexample> - -<para>This tool will create the groff font file from the metrics file -(<filename>.afm</filename> suffix.) Continuing with our -example: -</para> + + <para>This tool will create the groff font file from the metrics + file (<filename>.afm</filename> suffix.) Continuing with our + example:</para> + <informalexample> -<screen><lineannotation>Many <filename>.afm</> files are in Mac format&hellip ^M delimited lines +<screen> +<lineannotation>Many <filename>.afm</> files are in Mac format&hellip ^M delimited lines We need to convert them to unix style ^J delimited lines</> bash$ <userinput>cd /tmp</> bash$ <userinput>cat /usr/local/share/fonts/type1/showboat.afm | @@ -544,33 +607,38 @@ <lineannotation>Now create the groff font file</> bash$ <userinput>cd /usr/share/groff_font/devps</> -bash$ <userinput>/tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT</></screen> +bash$ <userinput>/tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT</> +</screen> </informalexample> - -<para>The font can now be referenced with the name SHOWBOAT.</para> - -<para>If ghostscript is used to drive the printers on the system, -then nothing more needs to be done. However, if true postscript -printers are used, then the font must be down loaded to the printer -in order for the font to be used (unless the printer happens to have -the showboat font built in or on an accessible font disk.) The final -step is to create a down loadable font. The <command>pfbtops</> tool -is used to create the <filename>.pfa</filename> format of the font, -and the <filename>download</> file is modified to reference the new -font. The <filename>download</> file must reference the internal -name of the font. This can easily be determined from the groff font -file as illustrated: -</para> + + <para>The font can now be referenced with the name + SHOWBOAT.</para> + + <para>If ghostscript is used to drive the printers on the system, + then nothing more needs to be done. However, if true postscript + printers are used, then the font must be down loaded to the + printer in order for the font to be used (unless the printer + happens to have the showboat font built in or on an accessible + font disk.) The final step is to create a down loadable font. + The <command>pfbtops</> tool is used to create the + <filename>.pfa</filename> format of the font, and the + <filename>download</> file is modified to reference the new + font. The <filename>download</> file must reference the + internal name of the font. This can easily be determined from + the groff font file as illustrated:</para> + <informalexample> -<screen><lineannotation>Create the <filename>.pfa</> font file</> +<screen> +<lineannotation>Create the <filename>.pfa</> font file</> bash$ <userinput>pfbtops /usr/local/share/fonts/type1/showboat.pfb >showboat.pfa</></screen> </informalexample> -<para> -Of course, if the <filename>.pfa</filename> file is already -available, just use a symbolic link to reference it. -</para> + + <para>Of course, if the <filename>.pfa</filename> file is already + available, just use a symbolic link to reference it.</para> + <informalexample> -<screen><lineannotation>Get the internal font name</> +<screen> +<lineannotation>Get the internal font name</> bash$ <userinput>fgrep internalname SHOWBOAT</> internalname Showboat @@ -579,13 +647,15 @@ :$a Showboat showboat.pfa . -:wq</></screen> +:wq</> +</screen> </informalexample> - -<para>To test the font: -</para> + + <para>To test the font:</para> + <informalexample> -<screen>bash$ <userinput>cd /tmp</> +<screen> +bash$ <userinput>cd /tmp</> bash$ <userinput>cat >example.t <<EOF .sp 5 .ps 16 @@ -618,16 +688,14 @@ bash$ <userinput>ghostview example.ps</> <lineannotation>To print it</> -bash$ <userinput>lpr -Ppostscript example.ps</></screen> +bash$ <userinput>lpr -Ppostscript example.ps</> +</screen> </informalexample> - -<para>References: -<filename>/usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.man</filename>, -&man.groff.font.5;, -&man.groff.char.7;, -&man.pfbtops.1;.</para> - -</sect1> + + <para>References: + <filename>/usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.man</filename>, + &man.groff.font.5;, &man.groff.char.7;, &man.pfbtops.1;.</para> + </sect1> <sect1> <title>Converting TrueType fonts to a groff/postscript format for @@ -635,23 +703,23 @@ <para>This potentially requires a bit of work, simply because it depends on some utilities that are not installed as part of the - base system. They are:</para> + base system. They are:</para> <variablelist> <varlistentry> <term><command>ttf2pf</command></term> <listitem> - <para>TrueType to postscript convertsion utilities. This + <para>TrueType to postscript convertsion utilities. This allows conversion of a TrueType font to an ascii font metric (<filename>.afm</filename>) file.</para> - + <para>Currently available at <ulink - url="http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf/">http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf</ulink>. + url="http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf/">http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf</ulink>. Note: These files are postscript programs and must be downloaded to disk by holding down the - <keycap>Shift</keycap> key when clicking on the - link. Otherwise, your browser may try to launch + <keycap>Shift</keycap> key when clicking on the link. + Otherwise, your browser may try to launch <application>ghostview</application> to view them.</para> <para>The files of interest are:</para> @@ -673,8 +741,8 @@ <para>The funny upper/lower case is due to their being intended also for DOS shells. <filename>ttf2pf.ps</filename> makes use of the others as - upper case, so any renaming must be consistent with - this. (Actually, <filename>GS_TTF.PS</filename> and + upper case, so any renaming must be consistent with this. + (Actually, <filename>GS_TTF.PS</filename> and <filename>PFS2AFM.PS</filename> are supposedly part of the ghostscript distribution, but it's just as easy to use these as an isolated utility. FreeBSD doesn't seem to @@ -689,7 +757,7 @@ <listitem> <para>Creates font files for use with groff from ascii font - metrics file. This usually resides in the directory, + metrics file. This usually resides in the directory, <filename>/usr/src/contrib/groff/afmtodit</filename>, and requires some work to get going.</para> @@ -700,12 +768,12 @@ location.</para> </note> - <para>In the work area, you'll need to make the - utility. Just type:</para> + <para>In the work area, you'll need to make the utility. + Just type:</para> - <screen> +<screen> <prompt>#</prompt> <userinput>make -f Makefile.sub afmtodit</userinput> - </screen> +</screen> <para>You may also need to copy <filename>/usr/contrib/groff/devps/generate/textmap</filename> @@ -724,9 +792,9 @@ <para>Create the <filename>.afm</filename> file by typing:</para> - <screen> +<screen> <prompt>%</prompt> <userinput>gs <optional>-dNODISPLAY</optional> <optional>-q</optional> -- ttf2pf.ps <replaceable>TTF_name</replaceable> <optional><replaceable>PS_font_name</replaceable> <optional><replaceable>AFM_name</replaceable></optional></optional></userinput> - </screen> +</screen> <para>Where, <replaceable>TTF_name</replaceable> is your TrueType font file, <replaceable>PS_font_name</replaceable> @@ -739,32 +807,32 @@ <para>This also produces a <filename>.pfa</filename> file, the ascii postscript font metrics file - (<filename>.pfb</filename> is for the binrary form). This + (<filename>.pfb</filename> is for the binrary form). This won't be needed, but could (I think) be useful for a fontserver.</para> <para>For example, to convert the 30f9 Barcode font using the default file names, use the following command:</para> - <screen> +<screen> <prompt>%</prompt> <userinput>gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf</userinput> Aladdin Ghostscript 5.10 (1997-11-23) Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Converting 3of9.ttf to 3of9.pfa and 3of9.afm. - </screen> +</screen> <para>If you want the converted fonts to be stored in <filename>A.pfa</filename> and <filename>B.afm</filename>, then use this command:</para> - <screen> +<screen> <prompt>%</prompt> <userinput>gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf A B</userinput> Aladdin Ghostscript 5.10 (1997-11-23) Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Converting 3of9.ttf to A.pfa and B.afm. - </screen> +</screen> </listitem> <listitem> @@ -772,34 +840,33 @@ <para>Change directories to <filename>/usr/share/groff_font/devps</filename> so as to - make the following command easier to execute. You'll - probably need root priviledges for this. (Or, if you're + make the following command easier to execute. You'll + probably need root priviledges for this. (Or, if you're paranoid about working there, make sure you reference the files <filename>DESC</filename>, <filename>text.enc</filename> and <filename>generate/textmap</filename> as being in this directory.)</para> - <screen> +<screen> <prompt>%</prompt> <userinput>afmtodit -d DESC -e text.enc file.afm \ generate/textmap <replaceable>PS_font_name</replaceable></userinput> - </screen> +</screen> <para>Where, <filename>file.afm</filename> is the <replaceable>AFM_name</replaceable> created by <command>ttf2pf.ps</command> above, and <replaceable>PS_font_name</replaceable> is the font name used from that command, as well as the name that - &man.groff.1; - will use for references to this font. For example, assuming - you used the first <command>tiff2pf.ps</command> command - above, then the 3of9 Barcode font can be created using the - command:</para> + &man.groff.1; will use for references to this font. For + example, assuming you used the first + <command>tiff2pf.ps</command> command above, then the 3of9 + Barcode font can be created using the command:</para> - <screen> +<screen> <prompt>%</prompt> <userinput>afmtodit -d DESC -e text.enc 3of9.afm \ generate/textmap 3of9</userinput> - </screen> +</screen> <para>Ensure that the resulting <replaceable>PS_font_name</replaceable> file (e.g., @@ -814,137 +881,146 @@ <filename>.afm</filename> file prior to running <command>afmtodit</command>. This name must also match the one used in the Fontmap file if you wish to pipe - &man.groff.1; into - &man.gs.1;.</para> + &man.groff.1; into &man.gs.1;.</para> </listitem> </orderedlist> </sect1> -<sect1> -<title>Can TrueType fonts be used with other programs?</title> + <sect1> + <title>Can TrueType fonts be used with other programs?</title> + + <para>The TrueType font format is used by Windows, Windows 95, and + Mac's. It is quite popular and there are a great number of + fonts available in this format.</para> + + <para>Unfortunately, there are few applications that I am aware of + that can use this format: Ghostscript and Povray come to mind. + Ghostscript's support, according to the documentation, is + rudimentary and the results are likely to be inferior to type 1 + fonts. Povray version 3 also has the ability to use TrueType + fonts, but I rather doubt many people will be creating documents + as a series of raytraced pages :-).</para> + + <para>This rather dismal situation may soon change. The <ulink + url="http://www.freetype.org/">FreeType Project</ulink> is + currently developing a useful set of FreeType tools:</para> + + <itemizedlist> + <listitem> + <para>The <command>xfsft</command> font server for X11 can + serve TrueType fonts in addition to regular fonts. Though + currently in beta, it is said to be quite useable. See + <ulink + url="http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/">Juliusz + Chroboczek's page</ulink> for further information. + Porting instructions for FreeBSD can be found at <ulink + url="http://math.missouri.edu/~stephen/software/">Stephen + Montgomery's software page</ulink>.</para> + </listitem> + + <listitem> + <para><command>xfstt</command> is another font server for X11, + available under <ulink url=" + ftp://sunsite.unc.edu/pub/Linux/X11/fonts"> + ftp://sunsite.unc.edu/pub/Linux/X11/fonts</ulink>.</para> + </listitem> + + <listitem> + <para>A program called <command>ttf2bdf</command> can produce + BDF files suitable for use in an X environment from TrueType + files. Linux binaries are said to be available from <ulink + url="ftp://crl.nmsu.edu/CLR/multiling/General">ftp://crl.nmsu.edu/CLR/multiling/General/</ulink>.</para> + </listitem> + + <listitem> + <para>For people requiring the use of Asian TrueType fonts, + the <command>XTT</command> font server may be worth a look. + Information about <command>XTT</command> can be found at + URL: <ulink + url="http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html">http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html</ulink>.</para> + </listitem> + + <listitem> + <para>and others …</para> + </listitem> + </itemizedlist> + + <para>The <ulink + url="http://www.freetype.org/projects.htm">FreeType Projects + page </ulink> is a good starting point for information on + these and other free TrueType projects.</para> + </sect1> + + <sect1> + <title>Where can additional fonts be obtained?</title> + + <para>Many fonts are available on the Internet. They are either + entirely free, or are share-ware. In addition, there are many + inexpensive CDROMs available that contain many fonts. Some + Internet locations (as of August 1996) are:</para> + + <itemizedlist> + <listitem> + <para><ulink + url="ftp://ftp.winsite.com">ftp://ftp.winsite.com</ulink> + (Formerly CICA)</para> + </listitem> + + <listitem> + <para><ulink + url="http://www.simtel.net/simcgi-bin/dosfind.cgi">http://www.simtel.net/simcgi-bin/dosfind.cgi</ulink></para> + </listitem> + + <listitem> + <para><ulink + url="ftp://ftp.coast.net/">ftp://ftp.coast.net/</ulink></para> + </listitem> + + <listitem> + <para><ulink + url="http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html">http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html</ulink></para> + </listitem> + + <listitem> + <para><ulink + url="http://www.esselte.com/letraset/index.html">http://www.esselte.com/letraset/index.html</ulink></para> + </listitem> + + <listitem> + <para><ulink + url="http://www.inil.com/users/elfring/esf.htm">http://www.inil.com/users/elfring/esf.htm</ulink></para> + </listitem> + </itemizedlist> + </sect1> + + <sect1> + <title>Additional questions</title> + + <itemizedlist> + <listitem> + <para>What use are the <filename>.pfm</filename> files?</para> + </listitem> + + <listitem> + <para>Can one generate the <filename>.afm</filename> file from + a <filename>.pfa</filename> or + <filename>.pfb</filename>?</para> + </listitem> -<para>The TrueType font format is used by Windows, Windows 95, and -Mac's. It is quite popular and there are a great number of -fonts available in this format.</para> - -<para>Unfortunately, there are few applications that I am aware of -that can use this format: Ghostscript and Povray come to mind. -Ghostscript's support, according to the documentation, is rudimentary -and the results are likely to be inferior to type 1 fonts. -Povray version 3 also has the ability to use TrueType fonts, but -I rather doubt many people will be creating documents as a series of -raytraced pages :-).</para> - -<para>This rather dismal situation may soon change. -The <ulink url="http://www.freetype.org/">FreeType Project</ulink> -is currently developing a useful set of FreeType tools: -</para> -<itemizedlist> -<listitem> -<para>The <command>xfsft</command> font server for X11 can serve -TrueType fonts in addition to regular fonts. Though currently in -beta, it is said to be quite useable. See <ulink -url="http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/">Juliusz -Chroboczek's page</ulink> for further information. Porting instructions -for FreeBSD can be found at <ulink -url="http://math.missouri.edu/~stephen/software/">Stephen Montgomery's -software page</ulink>. -</para> -</listitem> -<listitem> -<para><command>xfstt</command> is another font -server for X11, available under <ulink -url=" ftp://sunsite.unc.edu/pub/Linux/X11/fonts"> -ftp://sunsite.unc.edu/pub/Linux/X11/fonts</ulink>. -</para> -</listitem> -<listitem><para>A program called <command>ttf2bdf</command> can produce -BDF files suitable for use in an X environment from TrueType files. Linux -binaries are said to be available from <ulink -url="ftp://crl.nmsu.edu/CLR/multiling/General">ftp://crl.nmsu.edu/CLR/multiling/General/</ulink>. -</para> -</listitem> -<listitem> -<para> -For people requiring the use of Asian TrueType fonts, the -<command>XTT</command> font server may be worth a look. Information about -<command>XTT</command> can be found at URL: <ulink -url="http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html">http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html</ulink>. -</para> -</listitem> -<listitem> -<para>and others …</para> -</listitem> -</itemizedlist> -<para> -The -<ulink url="http://www.freetype.org/projects.htm">FreeType Projects page -</ulink> is a good starting point for information on these and other -free TrueType projects. -</para> -</sect1> - -<sect1> -<title>Where can additional fonts be obtained?</title> - -<para>Many fonts are available on the Internet. They are either -entirely free, or are share-ware. In addition, there are many -inexpensive CDROMs available that contain many fonts. Some Internet -locations (as of August 1996) are: -</para> -<itemizedlist> - -<listitem><para><ulink -url="ftp://ftp.winsite.com">ftp://ftp.winsite.com</ulink> (Formerly -CICA)</para></listitem> - -<listitem><para><ulink -url="http://www.simtel.net/simcgi-bin/dosfind.cgi">http://www.simtel.net/simcgi-bin/dosfind.cgi</ulink></para></listitem> - -<listitem><para><ulink -url="ftp://ftp.coast.net/">ftp://ftp.coast.net/</ulink></para></listitem> - -<listitem><para><ulink -url="http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html">http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html</ulink></para></listitem> - -<listitem><para><ulink -url="http://www.esselte.com/letraset/index.html">http://www.esselte.com/letraset/index.html</ulink></para></listitem> - -<listitem><para><ulink -url="http://www.inil.com/users/elfring/esf.htm">http://www.inil.com/users/elfring/esf.htm</ulink></para></listitem> - -</itemizedlist> - -</sect1> - -<sect1> -<title>Additional questions</title> - -<itemizedlist> - -<listitem> -<para>What use are the <filename>.pfm</filename> files?</para> -</listitem> - -<listitem> -<para>Can one generate the <filename>.afm</filename> file from a <filename>.pfa</filename> or <filename>.pfb</filename>?</para> -</listitem> - -<listitem> -<para>How to generate the groff character mapping files for postscript fonts -with non-standard character names?</para> -</listitem> - -<listitem> -<para>Can xditview and devX?? devices be setup to access all the new fonts?</para> -</listitem> - -<listitem> -<para>It would be good to have examples of using TrueType fonts with povray and -ghostscript.</para> -</listitem> - -</itemizedlist> - -</sect1> + <listitem> + <para>How to generate the groff character mapping files for + postscript fonts with non-standard character names?</para> + </listitem> + + <listitem> + <para>Can xditview and devX?? devices be setup to access all + the new fonts?</para> + </listitem> + + <listitem> + <para>It would be good to have examples of using TrueType + fonts with povray and ghostscript.</para> + </listitem> + </itemizedlist> + </sect1> </article> >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-doc" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19991008145038.61048.qmail>