[Top][All Lists]
[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
- [Groff] URW font support (was: Latin-2 encoding is missing),
Werner LEMBERG <=