groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Groff] URW font support (was: Latin-2 encoding is missing)


From: Werner LEMBERG
Subject: [Groff] URW font support (was: Latin-2 encoding is missing)
Date: Wed, 19 May 2010 08:50:50 +0200 (CEST)

[about latin2 support for groff]

Since this topic is possibly of broader interest, I'm CCing this mail
to the groff mailing list.  It's nothing new, but...

> GROFF VERSION: 1.18

This version is far too old.  The current one is 1.20.1.

> OS: openSuSE 11.2

Sigh.  If you don't need Japanese support for man pages, install the
current version of groff instead of relying on a version which is
eight (!) years old.

> echo '.PP
> Zażółć gęślą jaźń.' | iconv '-futf8' '-tlatin2' | groff '-fT2' '-tms'

With groff 1.20.1, the `iconv' hack is no longer needed since groff
has now built-in support for UTF-8 (using groff's `preconv'
preprocessor).  Simply use groff's `-k' switch.

> DESCRIPTION OF INCORRECT BEHAVIOUR:
> troff: warning: can't find font `T2R'
> troff: fatal error: invalid default family `T2'
> 
> SUGGESTED FIX [optional]:
> add files T2R, latin2.enc to devps

I won't follow your suggestion.  Instead, you should generate metric
files for all URW fonts with the attached `Makefile.urw'.  Proceed as
follows:

  0. Unpack groff-1.20.1.tar.gz (or use the current CVS).
  1. In `Makefile.urw', adapt the `afmdir' variable so that it points
     to the right location of the AFM files for the URW fonts.
  2. Copy `Makefile.urw' to `groff-1.20.1/font/devps/generate'.
  3. Change to the `groff-1.20.1/font/devps' directory.
  4. Copy `DESC.in' to `DESC'.
  5. Say

       make -f generate/Makefile.urw

  6. Copy the generated `U*' metric files to a standard location for
     groff font files (e.g. /usr/local/share/groff/1.20.1/font/devps).
     Alternatively, check the troff(1) man page how to use the
     GROFF_FONT_PATH environment variable.
 [7. You can now delete the groff-1.20.1 directory.]

You are done.  To process the above example with, say, the Times
variant of the URW fonts, call

  echo '.PP
  Zażółć gęślą jaźń.' | groff -k -fUT -ms


    Werner
# Copyright (C) 1989-2002, 2004, 2010 Free Software Foundation, Inc.
#      Written by James Clark (address@hidden)
#      Heavily modifed by P. Alejandro L\('opez-Valencia
#                         (address@hidden)
#
# This file is part of groff.
#
# groff is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2, or (at your option) any later
# version.
#
# groff is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License along
# with groff; see the file COPYING.  If not, write to the Free Software
# Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

# This is set up so you can do
#   make -f generate/Makefile.urw
# in the parent directory of this directory.

# The following line is required for DOS/Windows systems, since
# this Makefile needs a Unixy shell to run.
SHELL=/bin/sh

# Directory containing AFM files.  Must not be current directory.
# Either long names (eg Times-Roman.afm) or short names (eg timesr.afm)
# may be used. See the afmname script.
afmdir=/usr/share/ghostscript/fonts
srcdir=generate

SPECIALFONTS=US
DINGBATSFONTS=UZD UZDR
GREEKFONTS=USS
TEXTFONTS=\
  UAB UABI UAI UAR \
  UBMB UBMBI UBMI UBMR \
  UCB UCBI UCI UCR \
  UHB UHBI UHI UHR \
  UHNB UHNBI UHNI UHNR \
  UNB UNBI UNI UNR \
  UPB UPBI UPI UPR \
  UTB UTBI UTI UTR \
  UZCMI

FONTS=$(TEXTFONTS) $(SPECIALFONTS) $(GREEKFONTS) $(DINGBATSFONTS)

DESC=$(srcdir)/../DESC
AFMTODIT=afmtodit -d$(DESC)
IFLAG=-i 50
RFLAG=-i 0 -m
NOLIGFLAG=-n
TEXTENC=$(srcdir)/../text.enc
EFLAG=-e $(TEXTENC)
TEXTMAP=$(srcdir)/textmap
AFMNAME=$(srcdir)/afmname

all: $(FONTS)

UTR:
        $(AFMTODIT) $(EFLAG) $(RFLAG) \
        `$(AFMNAME) $(afmdir)/n021003l.afm` $(TEXTMAP) $@

UTB:
        $(AFMTODIT) $(EFLAG) $(RFLAG) \
        `$(AFMNAME) $(afmdir)/n021004l.afm` $(TEXTMAP) $@

UTI:
        $(AFMTODIT) $(EFLAG) $(IFLAG) -a 7 \
        `$(AFMNAME) $(afmdir)/n021023l.afm` $(TEXTMAP) $@

UTBI:
        $(AFMTODIT) $(EFLAG) $(IFLAG) \
        `$(AFMNAME) $(afmdir)/n021024l.afm` $(TEXTMAP) $@

UHR:
        $(AFMTODIT) $(EFLAG) $(RFLAG) \
        `$(AFMNAME) $(afmdir)/n019003l.afm` $(TEXTMAP) $@

UHB:
        $(AFMTODIT) $(EFLAG) $(RFLAG) \
        `$(AFMNAME) $(afmdir)/n019004l.afm` $(TEXTMAP) $@

UHI:
        $(AFMTODIT) $(EFLAG) $(IFLAG) \
        `$(AFMNAME) $(afmdir)/n019023l.afm` $(TEXTMAP) $@

UHBI:
        $(AFMTODIT) $(EFLAG) $(IFLAG) \
        `$(AFMNAME) $(afmdir)/n019024l.afm` $(TEXTMAP) $@

UCR:
        $(AFMTODIT) $(NOLIGFLAG) $(EFLAG) $(RFLAG) \
        `$(AFMNAME) $(afmdir)/n022003l.afm` $(TEXTMAP) $@

UCB:
        $(AFMTODIT) $(NOLIGFLAG) $(EFLAG) $(RFLAG) \
        `$(AFMNAME) $(afmdir)/n022004l.afm` $(TEXTMAP) $@

UCI:
        $(AFMTODIT) $(NOLIGFLAG) $(EFLAG) $(IFLAG) \
        `$(AFMNAME) $(afmdir)/n022023l.afm` $(TEXTMAP) $@

UCBI:
        $(AFMTODIT) $(NOLIGFLAG) $(EFLAG) $(IFLAG) \
        `$(AFMNAME) $(afmdir)/n022024l.afm` $(TEXTMAP) $@

UPR:
        $(AFMTODIT) $(EFLAG) $(RFLAG) \
        `$(AFMNAME) $(afmdir)/p052003l.afm` $(TEXTMAP) $@

UPB:
        $(AFMTODIT) $(EFLAG) $(RFLAG) \
        `$(AFMNAME) $(afmdir)/p052004l.afm` $(TEXTMAP) $@

UPI:
        $(AFMTODIT) $(EFLAG) $(IFLAG) \
        `$(AFMNAME) $(afmdir)/p052023l.afm` $(TEXTMAP) $@

UPBI:
        $(AFMTODIT) $(EFLAG) $(IFLAG) \
        `$(AFMNAME) $(afmdir)/p052024l.afm` $(TEXTMAP) $@

UNR:
        $(AFMTODIT) $(EFLAG) $(RFLAG) \
        `$(AFMNAME) $(afmdir)/c059013l.afm` $(TEXTMAP) $@

UNB:
        $(AFMTODIT) $(EFLAG) $(RFLAG) \
        `$(AFMNAME) $(afmdir)/c059016l.afm` $(TEXTMAP) $@

UNI:
        $(AFMTODIT) $(EFLAG) $(IFLAG) \
        `$(AFMNAME) $(afmdir)/c059033l.afm` $(TEXTMAP) $@

UNBI:
        $(AFMTODIT) $(EFLAG) $(IFLAG) \
        `$(AFMNAME) $(afmdir)/c059036l.afm` $(TEXTMAP) $@

UBMR:
        $(AFMTODIT) $(EFLAG) $(RFLAG) \
        `$(AFMNAME) $(afmdir)/b018012l.afm` $(TEXTMAP) $@

UBMB:
        $(AFMTODIT) $(EFLAG) $(RFLAG) \
        `$(AFMNAME) $(afmdir)/b018015l.afm` $(TEXTMAP) $@

UBMI:
        $(AFMTODIT) $(EFLAG) $(IFLAG) \
        `$(AFMNAME) $(afmdir)/b018032l.afm` $(TEXTMAP) $@

UBMBI:
        $(AFMTODIT) $(EFLAG) $(IFLAG) \
        `$(AFMNAME) $(afmdir)/b018035l.afm` $(TEXTMAP) $@

UAR:
        $(AFMTODIT) $(EFLAG) $(RFLAG) \
        `$(AFMNAME) $(afmdir)/a010013l.afm` $(TEXTMAP) $@

UAB:
        $(AFMTODIT) $(EFLAG) $(RFLAG) \
        `$(AFMNAME) $(afmdir)/a010015l.afm` $(TEXTMAP) $@

UAI:
        $(AFMTODIT) $(EFLAG) $(IFLAG) \
        `$(AFMNAME) $(afmdir)/a010033l.afm` $(TEXTMAP) $@

UABI:
        $(AFMTODIT) $(EFLAG) $(IFLAG) \
        `$(AFMNAME) $(afmdir)/a010035l.afm` $(TEXTMAP) $@

UHNR:
        $(AFMTODIT) $(EFLAG) $(RFLAG) \
        `$(AFMNAME) $(afmdir)/n019043l.afm` $(TEXTMAP) $@

UHNB:
        $(AFMTODIT) $(EFLAG) $(RFLAG) \
        `$(AFMNAME) $(afmdir)/n019044l.afm` $(TEXTMAP) $@

UHNI:
        $(AFMTODIT) $(EFLAG) $(IFLAG) \
        `$(AFMNAME) $(afmdir)/n019063l.afm` $(TEXTMAP) $@

UHNBI:
        $(AFMTODIT) $(EFLAG) $(IFLAG) \
        `$(AFMNAME) $(afmdir)/n019064l.afm` $(TEXTMAP) $@

UZCMI:
        $(AFMTODIT) $(EFLAG) $(IFLAG) \
        `$(AFMNAME) $(afmdir)/z003034l.afm` $(TEXTMAP) $@

UZD:
        $(AFMTODIT) -s $(RFLAG) \
        `$(AFMNAME) $(afmdir)/d050000l.afm` $(srcdir)/dingbats.map $@

USS: $(srcdir)/symbolsl.afm
        $(AFMTODIT) -s -x $(IFLAG) \
        $(srcdir)/symbolsl.afm $(srcdir)/lgreekmap $@

US: usym.afm
        $(AFMTODIT) -s $(RFLAG) usym.afm symbolmap $@

UZDR: uzdrrev.afm
        $(AFMTODIT) -s $(RFLAG) uzdrrev.afm $(srcdir)/dingbats.rmap $@

usym.afm: $(srcdir)/symbol.sed
        -rm -f $@
        sed -f $(srcdir)/symbol.sed `$(AFMNAME) $(afmdir)/s050000l.afm` >$@

uzdrrev.afm:
        -rm -f $@
        sed -e '/^FontName /s/Dingbats/Dingbats-Reverse/' \
          `$(AFMNAME) $(afmdir)/d050000l.afm` >$@

UZD: $(srcdir)/dingbats.map
UZDR: $(srcdir)/dingbats.rmap
$(TEXTFONTS): $(TEXTMAP) $(TEXTENC)
$(SPECIALFONTS): symbolmap
$(GREEKFONTS): $(srcdir)/lgreekmap
$(FONTS): $(DESC)

symbolmap: $(TEXTMAP) $(srcdir)/symbolchars
        echo '#' >$@
        echo '# This is a list of all predefined groff symbols.' >>$@
        echo '#' >>$@
        cat $(TEXTMAP) $(srcdir)/symbolchars >>$@

clean:
        -rm -f symbolmap usym.afm udzrrev.afm

realclean: clean
        -rm -f $(FONTS)

extraclean: realclean
        -rm -f core *~ "#*"

.PHONY: all clean realclean extraclean

reply via email to

[Prev in Thread] Current Thread [Next in Thread]