[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Groff] Euro symbol in groff -- final solution for PostScript
From: |
Werner LEMBERG |
Subject: |
[Groff] Euro symbol in groff -- final solution for PostScript |
Date: |
Fri, 14 Dec 2001 21:05:17 +0100 (CET) |
Dear friends,
attached are a Makefile, a macro file, and a test document which
implement the Euro in groff (note: you need the current CVS version
for the \n[.fn] register). Basically, the following steps are
necessary (this is a temporary Unix solution; if nobody detects
serious flaws, I'll integrate it into groff):
. Get the eurofont.exe file from Adobe's webserver. Put the file
together with the attached Makefile into a subdirectory.
Additionally, copy your `DESC' and `download' files from the devps
directory to this place.
. Say `make'. This creates a subdirectory `eurofont'. Copy
everything in it to groff's devps directory.
. Run the test file eurotest.tr with
groff eurotest.tr > eurotest.ps
It will automatically load euro.tmac.
That's all! The disadvantage of my previous solution was that
.fspecial loads the font description files immediately which is not
what I want. Using the new \.[fn] register, euro.tmac is fully
extensible and configurable, and the fonts are loaded on demand only.
Enjoy!
Werner
# This Makefile adds PostScript support for the Euro symbol in groff.
#
# Copy eurofont.exe (from Adobe's host), DESC, and download (the latter two
# files from an installed groff) to the same directory as this Makefile.
# Say `make' and everything will be built in a subdirectory called eurofont.
# Finally, move all files in `eurofont' to groff's `devps' directory
# (overwriting `download').
all: clean \
make-euromap \
make-eurosymbolmap \
extract \
filter \
rename \
convert \
metrics \
make-download
clean:
-rm -rf eurofont
-rm euro.map
-rm eurosymbol.map
make-euromap:
echo "Euro.001 Eu" > euro.map
make-eurosymbolmap:
echo "Euro eu" > eurosymbol.map
echo "Euro.001 Eu" >> eurosymbol.map
extract:
unzip -L eurofont.exe
filter:
(cd eurofont; \
rm *.inf; \
rm *.pfm; \
rm readme.wri)
rename:
(cd eurofont; \
mv _1______.afm zpeurs.afm; \
mv _1b_____.afm zpeubs.afm; \
mv _1i_____.afm zpeuris.afm; \
mv _1bi____.afm zpeubis.afm; \
mv _2______.afm zpeurt.afm; \
mv _2b_____.afm zpeubt.afm; \
mv _2i_____.afm zpeurit.afm; \
mv _2bi____.afm zpeubit.afm; \
mv _3______.afm zpeur.afm; \
mv _3b_____.afm zpeub.afm; \
mv _3i_____.afm zpeuri.afm; \
mv _3bi____.afm zpeubi.afm; \
mv _1______.pfb zpeurs.pfb; \
mv _1b_____.pfb zpeubs.pfb; \
mv _1i_____.pfb zpeuris.pfb; \
mv _1bi____.pfb zpeubis.pfb; \
mv _2______.pfb zpeurt.pfb; \
mv _2b_____.pfb zpeubt.pfb; \
mv _2i_____.pfb zpeurit.pfb; \
mv _2bi____.pfb zpeubit.pfb; \
mv _3______.pfb zpeur.pfb; \
mv _3b_____.pfb zpeub.pfb; \
mv _3i_____.pfb zpeuri.pfb; \
mv _3bi____.pfb zpeubi.pfb)
convert:
(cd eurofont; \
pfbtops zpeurs.pfb > zpeurs.pfa; \
pfbtops zpeubs.pfb > zpeubs.pfa; \
pfbtops zpeuris.pfb > zpeuris.pfa; \
pfbtops zpeubis.pfb > zpeubis.pfa; \
pfbtops zpeurt.pfb > zpeurt.pfa; \
pfbtops zpeubt.pfb > zpeubt.pfa; \
pfbtops zpeurit.pfb > zpeurit.pfa; \
pfbtops zpeubit.pfb > zpeubit.pfa; \
pfbtops zpeur.pfb > zpeur.pfa; \
pfbtops zpeub.pfb > zpeub.pfa; \
pfbtops zpeuri.pfb > zpeuri.pfa; \
pfbtops zpeubi.pfb > zpeubi.pfa; \
rm *.pfb)
metrics:
(cd eurofont; \
afmtodit -d../DESC -s zpeurs.afm \
../eurosymbol.map EUROR; \
afmtodit -d../DESC zpeubs.afm \
../euro.map EUROB; \
afmtodit -d../DESC -i50 zpeuris.afm \
../euro.map EUROI; \
afmtodit -d../DESC -i50 zpeubis.afm \
../euro.map EUROBI; \
afmtodit -d../DESC zpeurt.afm \
../euro.map EUROMR; \
afmtodit -d../DESC zpeubt.afm \
../euro.map EUROMB; \
afmtodit -d../DESC -i50 zpeurit.afm \
../euro.map EUROMI; \
afmtodit -d../DESC -i50 zpeubit.afm \
../euro.map EUROMBI; \
afmtodit -d../DESC zpeur.afm \
../euro.map EUROSR; \
afmtodit -d../DESC zpeub.afm \
../euro.map EUROSB; \
afmtodit -d../DESC -i50 zpeuri.afm \
../euro.map EUROSI; \
afmtodit -d../DESC -i50 zpeubi.afm \
../euro.map EUROSBI)
make-download:
(cd eurofont; \
cp ../download download; \
echo "" >> download; \
echo "EuroSans-Regular zpeurs.pfa" >> download; \
echo "EuroSans-Bold zpeubs.pfa" >> download; \
echo "EuroSans-Italic zpeuris.pfa" >> download; \
echo "EuroSans-BoldItalic zpeubis.pfa" >> download; \
echo "EuroSerif-Regular zpeur.pfa" >> download; \
echo "EuroSerif-Bold zpeub.pfa" >> download; \
echo "EuroSerif-Italic zpeuri.pfa" >> download; \
echo "EuroSerif-BoldItalic zpeubi.pfa" >> download; \
echo "EuroMono-Regular zpeurt.pfa" >> download; \
echo "EuroMono-Bold zpeubt.pfa" >> download; \
echo "EuroMono-Italic zpeurit.pfa" >> download; \
echo "EuroMono-BoldItalic zpeubit.pfa" >> download)
.\" euro.tmac
.
.special EUROR
.
.char \[Eu] \[Euro\\n[.fn]]
.
.char \[EuroAB] \f[EUROB]\[Eu]
.char \[EuroABI] \f[EUROBI]\[Eu]
.char \[EuroAI] \f[EUROI]\[Eu]
.char \[EuroAR] \f[EUROR]\[Eu]
.char \[EuroBMB] \f[EUROSB]\[Eu]
.char \[EuroBMBI] \f[EUROSBI]\[Eu]
.char \[EuroBMI] \f[EUROSI]\[Eu]
.char \[EuroBMR] \f[EUROSR]\[Eu]
.char \[EuroCB] \f[EUROMB]\[Eu]
.char \[EuroCBI] \f[EUROMBI]\[Eu]
.char \[EuroCI] \f[EUROMI]\[Eu]
.char \[EuroCR] \f[EUROMR]\[Eu]
.char \[EuroHB] \f[EUROB]\[Eu]
.char \[EuroHBI] \f[EUROBI]\[Eu]
.char \[EuroHI] \f[EUROI]\[Eu]
.char \[EuroHR] \f[EUROR]\[Eu]
.char \[EuroHNB] \f[EUROB]\[Eu]
.char \[EuroHNBI] \f[EUROBI]\[Eu]
.char \[EuroHNI] \f[EUROI]\[Eu]
.char \[EuroHNR] \f[EUROR]\[Eu]
.char \[EuroNB] \f[EUROSB]\[Eu]
.char \[EuroNBI] \f[EUROSBI]\[Eu]
.char \[EuroNI] \f[EUROSI]\[Eu]
.char \[EuroNR] \f[EUROSR]\[Eu]
.char \[EuroPB] \f[EUROSB]\[Eu]
.char \[EuroPBI] \f[EUROSBI]\[Eu]
.char \[EuroPI] \f[EUROSI]\[Eu]
.char \[EuroPR] \f[EUROSR]\[Eu]
.char \[EuroTB] \f[EUROSB]\[Eu]
.char \[EuroTBI] \f[EUROSBI]\[Eu]
.char \[EuroTI] \f[EUROSI]\[Eu]
.char \[EuroTR] \f[EUROSR]\[Eu]
.
.\" EOF
.so euro.tmac
This is a test with the \[Eu] sign. Here is the `official' form: \[eu].
.br
.ft I
This is a test with the \[Eu] sign. Here is the `official' form: \[eu].