Article View: pl.comp.dtp.tex
Article #16926Re: \pagestyle{style}
From: Jarosław Sokołowski
Date: Wed, 06 Apr 2011 22:00
Date: Wed, 06 Apr 2011 22:00
137 lines
4295 bytes
4295 bytes
Pan Maciek Pliszka napisał:
>> W każdym miejscu w dokumencie można użyć dowolnego fontu. Jest
>> to niebanalne i wymaga poczytania o fontach (słowem: magia).
>
> No o fontach to dla mnie magia.
Ilekroć czytam takie rzeczy, to coś mi się w środku robi. A czytam
co i rusz. Zwykle po chwili mi przechodzi, ale czasem (tak jakoś raz
na rok albo dwa) nie wytrzymuję. Jaka magia? Od lat nie ma problemu
z uprzystępnianiem fontów TeXowi. Wszystko jest logiczne, klarowne,
łatwe do zautomatyzowania. Ja do tego celu napisałem sobie taki skrypt
(o nazwie ffinst umieszczony w /usr/local/ffinst i podlinkowany do
katalogu /usr/local/bin):
##########################################################################
#!/bin/sh
LOG=./ffinst.map
MAP=~/.texmf-var/fonts/map/myfonts.map
TFM=~/.texmf-var/tfm/ffinst
PFB=~/.texmf-var/fonts/type1/ffinst
ENC=/usr/local/share/fontforge/Encodings.ps
LIG=/usr/local/ffinst/ligatures.tfm
if [ ! -d $TFM ]; then mkdirhier $TFM ; fi
if [ ! -d $PFB ]; then mkdirhier $PFB ; fi
if [ ! -f $MAP ]; then mkdirhier $(dirname $MAP) ; fi
echo -e > $LOG
date "+######## FontForgeInst %Y-%m-%d %H:%M:%S BEGIN ########" >> $LOG
for font in *.[ot]tf ; do
basename=$(echo $font | cut -d'.' -f1)
pfb=$basename.pfb
tfm=$basename.tfm
enc=$basename.enc
fontforge -lang=ff -c "
Open(\"$font\");
LoadEncodingFile(\"$ENC\");
Reencode(\"TeX-Extended-T1\");
MergeFeature(\"$LIG\");
Generate(\"$pfb\",\"\",0x10000);
Quit(0);
" 2> /dev/null
psname=$(grep --binary-files=text FontName $pfb | cut -d' ' -f2 | tr -d
'/')
echo $basename $psname "<"$pfb >> $LOG
mv $pfb $PFB
mv $tfm $TFM
rm $enc
done
date "+######## FontForgeInst %Y-%m-%d %H:%M:%S END ########" >> $LOG
cat $LOG >> $MAP
rm $LOG
texhash 2> /dev/null
updmap 2> /dev/null
##########################################################################
Używa on programu FontForge (dostępny za darmochę) i pliku metryk
"ligatures.tfm" umieszczonego w tym samym katalogu, który w czytelnej
postaci ("ligatures.pl") wygląda tak:
(LIGTABLE
(LABEL O 25)
(LIG O 55 O 26)
(STOP)
(LABEL O 41)
(LIG O 140 O 275)
(STOP)
(LABEL O 47)
(LIG O 47 O 21)
(STOP)
(LABEL O 54)
(LIG O 54 O 22)
(STOP)
(LABEL O 55)
(LIG O 55 O 25)
(STOP)
(LABEL O 74)
(LIG O 74 O 23)
(STOP)
(LABEL O 76)
(LIG O 76 O 24)
(STOP)
(LABEL O 77)
(LIG O 140 O 276)
(STOP)
(LABEL O 140)
(LIG O 140 O 20)
(STOP)
)
(CHARACTER O 20)
(CHARACTER O 21)
(CHARACTER O 22)
(CHARACTER O 23)
(CHARACTER O 24)
(CHARACTER O 25)
(CHARACTER O 26)
(CHARACTER O 41)
(CHARACTER O 47)
(CHARACTER O 54)
(CHARACTER O 55)
(CHARACTER O 74)
(CHARACTER O 76)
(CHARACTER O 77)
(CHARACTER O 140)
(CHARACTER O 177)
(CHARACTER O 275)
(CHARACTER O 276)
##########################################################################
Powyższy tekst do postaci tfm można sprowadzić poleceniem pltotf.
Skrypt nie zawiódł mnie nigdy -- wystarczy w katalogu z plikami TTF
lub OTF wywołać "ffinst", a w kilka sekund fonty dostępne są dla TeXa.
Tylko przed tą operacjom warto plikom nadać jakieś ludzkie nazwy.
> I to niestety fakt.
No właśnie. Tylko dlaczego "niestety"?
--
Jarek
Technical Details
Message-ID:
<slrnippojo.vag.jaros@falcon.lasek.waw.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for-mailReferences:
<4d9cbcb3$0$2507$65785112@news.neostrada.pl> <op.vti7u70clutajv@ubayd> <4d9cc3d1$0$2442$65785112@news.neostrada.pl> <op.vti8i8omlutajv@ubayd> <4d9cc859$0$2443$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for-mail
From: Jarosław Sokołowski <jaros@lasek.waw.pl>
Newsgroups: pl.comp.dtp.tex
Subject: Re: \pagestyle{style}
Date: Wed, 6 Apr 2011 22:00:24 +0000 (UTC)
Organization: : : :
Lines: 137
Message-ID: <slrnippojo.vag.jaros@falcon.lasek.waw.pl>
References: <4d9cbcb3$0$2507$65785112@news.neostrada.pl> <op.vti7u70clutajv@ubayd> <4d9cc3d1$0$2442$65785112@news.neostrada.pl> <op.vti8i8omlutajv@ubayd> <4d9cc859$0$2443$65785112@news.neostrada.pl>
NNTP-Posting-Host: 87-205-84-220.adsl.inetia.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1302127224 14396 87.205.84.220 (6 Apr 2011 22:00:24 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Wed, 6 Apr 2011 22:00:24 +0000 (UTC)
User-Agent: slrn/0.9.8.1 (Linux)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit