diff options
author | Karl Berry <karl@freefriends.org> | 2010-09-15 15:38:42 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-09-15 15:38:42 +0000 |
commit | 624739f80bce7ebed967af3422fc677e495ae518 (patch) | |
tree | 3aeefa5b556350fa998d7211fb1523cbba09557c /Master/texmf-dist/doc/support | |
parent | 08047a6eaaa8623f71990cf8cc9ed8557a6a0a42 (diff) |
new script installfont
git-svn-id: svn://tug.org/texlive/trunk@19743 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/support')
-rw-r--r-- | Master/texmf-dist/doc/support/installfont/LICENSE | 21 | ||||
-rw-r--r-- | Master/texmf-dist/doc/support/installfont/README | 31 | ||||
-rw-r--r-- | Master/texmf-dist/doc/support/installfont/installfont | 549 | ||||
-rw-r--r-- | Master/texmf-dist/doc/support/installfont/installfont.pdf | bin | 0 -> 156419 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/support/installfont/installfont.tex | 206 | ||||
-rw-r--r-- | Master/texmf-dist/doc/support/installfont/manifest.txt | 17 |
6 files changed, 824 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/support/installfont/LICENSE b/Master/texmf-dist/doc/support/installfont/LICENSE new file mode 100644 index 00000000000..718ab5886fb --- /dev/null +++ b/Master/texmf-dist/doc/support/installfont/LICENSE @@ -0,0 +1,21 @@ +%% +%% Copyright (C) 2009-2010 by: +%% Josef Kleber +%% <josef.kleber@gmx.de> +%% +%% These files may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.3 of this license +%% or (at your option) any later version. The latest version of this +%% license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.3 or later is part of all distributions of LaTeX version +%% 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "author-maintained". +%% +%% This Current Maintainer of this work is Josef Kleber. +%% +%% This work consists of all files listed in manifest.txt. +%% diff --git a/Master/texmf-dist/doc/support/installfont/README b/Master/texmf-dist/doc/support/installfont/README new file mode 100644 index 00000000000..fc415ab14ed --- /dev/null +++ b/Master/texmf-dist/doc/support/installfont/README @@ -0,0 +1,31 @@ +With this script you can install a LaTeX font family +(Postscript Type1, Truetype, Opentype). It supports +font series from light to ultra bold + (faked) small caps ++ faked slanted, but no expert fonts. The script will +rename the fonts automatically (optinal) or will otherwise +expect *.afm files and the font files (in Postscript +Type1 format!) named in the Karl Berry scheme +(e.g. 5nar8a.pfb). After running the script, you should +have a working font installation in your local TeX tree. + +License: LPPL + +New in v1.5: + +- added new switches: + + * -m, --mapfilename file name of the map file + * -O. --origfontname use original font names + instead of Karl Berry names + +- added support for more font series. The script now + installs: + + * light, light italic + * regular/medium, regular/medium italic + * small caps (regular + bold) + * semi bold, semi bold italic + * demi, demi italic + * bold, bold italic + * extra bold, extra bold italic + * ultra bold/heavy, ultra bold/heavy italic
\ No newline at end of file diff --git a/Master/texmf-dist/doc/support/installfont/installfont b/Master/texmf-dist/doc/support/installfont/installfont new file mode 100644 index 00000000000..aa40e367ffc --- /dev/null +++ b/Master/texmf-dist/doc/support/installfont/installfont @@ -0,0 +1,549 @@ +#!/bin/bash +# +# installfont [options] +# +# installs a LaTeX font family (Postscript Type1, Truetype, Opentype) +# (font series from light to ultra bold + (faked) small caps + faked +# slanted, but no expert fonts) for using with LaTeX (MiKTeX) +# The script tries to rename the fonts automatically (optional). +# Otherwise the *.afm and *.pfb files must be named in Karl Berry scheme +# (e.g. 5bbr8a.pfb) +# (tested with MiKTeX 2.8) v1.5 (14.09.2010) +# (C) Josef Kleber 2009-2010 License: LPPL +# +VERSION="v1.5 (2010/09/14)" +# +FONTFAMILY="5bb" +FONTNAME="Softmaker Barbedor" +FONTCOMMAND="FFBarbedor" +FONTSCALEPREFIX="Sbb" +FONTTYPE="pst1" +PACKAGENAME="barbedor" +PACKAGEDATE="2010/03/05" +PACKAGEVERSION="v1.0" +MAPFILENAME="" +OFN="false" +LOCALTEXMF=$(cygpath -u "C:\LocalTexMF") +FONTSUBDIR="MyFonts/Barbedor" +# Font encoding default: 8a (AdobeStandardEncoding) +FONTENCODING="8a" +# Font cut default: r (regular) don't change! +FONTCUT="r" +# +# Set the --admin switch for MiKTeX 2.8+ +#ADMIN="--admin" +ADMIN="" +# +OTFFONTFEATURES="-fkern -fliga" +UNINSTALL="false" +INSTALLAS="rmdefault" +SMFFSTY="%" +# +function printHelp() +{ + echo -e \ + " `basename $0` [options]\n"\ + " installs a font family for using it with LaTeX\n\n"\ + " Options:\n\n"\ + " -f, --fontfamily Name of the LaTeX font family, e.g. ptm (Adobe Times)\n\n"\ + " -n, --fontname Font name, e.g. Adobe Times\n\n"\ + " -c, --fontcommand Name of the command that will switch to the font\n\n"\ + " -P, --fontscaleprefix prefix of the scale macro, which should be different\n"\ + " for each font (no digits allowed)\n\n"\ + " -t, --fonttype Font type (pst1(default)|ttf|otf)\n\n"\ + " -p, --packagename Name of the LaTeX package\n\n"\ + " -d, --packagedate Date of the LaTeX package\n\n"\ + " -v, --packageversion Version of the LaTeX package\n\n"\ + " -l, --localtexmf root of your local TeX tree, e.g. /cygdrive/c/LocalTeXMF\n\n"\ + " -m, --mapfilename file name of the map file\n\n"\ + " -O. --origfontname use original font names instead of Karl Berry names\n\n"\ + " -s, --fontsubdir location where the fonts and support files should be\n"\ + " installed, e.g. MyFonts/AdobeTimes\n\n"\ + " -e, --fontencoding encoding of the font\n"\ + " (default: 8a (AdobeStandardEncoding))\n\n"\ + " -o, --otffontfeatures choosing Opentype font features\n"\ + " (default: -fkern -fliga)\n\n"\ + " -u, --uninstall will uninstall the font family. You must specify\n"\ + " --localtexmf and --fontsubdir\n\n"\ + " -R, --rmdefault installs font family as roman (serif) font family (default)\n\n"\ + " -S, --sfdefault installs font family as sans serif font family\n\n"\ + " -T, --ttdefault installs font family as typewriter font family\n\n"\ + " -a, --admin set administrative mode (MiKTeX v2.8+)\n\n"\ + " -V, --version will print the version number of `basename $0`\n\n"\ + " -h, --help will print this help statement\n\n"\ + " See http://latex.josef-kleber.de/index.htm or\n"\ + " http://latex.josef-kleber.de/en_index.htm\n"\ + " for more information" + exit 0; +} +function printVersion() +{ + echo "This is version $VERSION of `basename $0`" + exit 0; +} +# +if [ $# -eq 0 ] +then + echo -e "`basename $0`: Could not find command line arguments.\nUse the '--help' option for explanation." + echo -e "Continue with default script variables? (y/n)" + read ANSWER + if [ $ANSWER = "n" -o $ANSWER = "N" ] + then + exit 1 + fi +fi +# +LONGOPTS="fontfamily:,fontname:,fontcommand:,fontscaleprefix:,fonttype:,packagename:,packagedate:,packageversion:,mapfilename:,origfilename,localtexmf:,fontsubdir:,fontencoding:,otffontfeatures:,uninstall,rmdefault,sfdefault,ttdefault,version,help,admin" +SHORTOPTS="f:n:c:P:t:p:d:v:m:Ol:s:e:o:uRSTVha" +ARGS=$(getopt -l "$LONGOPTS" "$SHORTOPTS" "$@") +if [ $? -ne 0 ] +then + echo -e "`basename $0`: Could not process command line arguments.\nUse the '--help' option for explanation." + exit 1 +fi +# +eval set -- "$ARGS" +# +while [ $# -gt 0 ]; do + ARG=$1 + case "$ARG" in + --help|-h) shift; printHelp;; + --admin|-a) shift; ADMIN="--admin";; + --version|-V) shift; printVersion;; + --rmdefault|-R) shift; INSTALLAS="rmdefault";; + --sfdefault|-S) shift; INSTALLAS="sfdefault";; + --ttdefault|-T) shift; INSTALLAS="ttdefault";; + --uninstall|-u) shift; UNINSTALL="true";; + --fontfamily|-f) shift; FONTFAMILY="$1"; shift;; + --fontname|-n) shift; FONTNAME="$1"; shift;; + --fontcommand|-c) shift; FONTCOMMAND="$1"; shift;; + --fontscaleprefix|-P) shift; FONTSCALEPREFIX="$1"; shift;; + --fonttype|-t) shift; FONTTYPE="$1"; shift;; + --packagename|-p) shift; PACKAGENAME="$1"; shift;; + --packagedate|-d) shift; PACKAGEDATE="$1"; shift;; + --packageversion|-v) shift; PACKAGEVERSION="$1"; shift;; + --mapfilename|-m) shift; MAPFILENAME="$1"; shift;; + --origfontname|-O) shift; OFN="true";; + --localtexmf|-l) shift; LOCALTEXMF="$1"; shift;; + --fontsubdir|-s) shift; FONTSUBDIR="$1"; shift;; + --fontencoding|-e) shift; FONTENCODING="$1"; shift;; + --otffontfeatures|-o) shift; FONTFAMILY="$1"; shift;; + --) shift; break;; + *) break;; + esac +done +# +if [ -z $MAPFILENAME ] +then + MAPFILENAME=$FONTFAMILY +fi +# +typeset -i STEP=0 +# +if [ $UNINSTALL = "true" ] +then + DIR="${LOCALTEXMF}/fonts/tfm/${FONTSUBDIR}/" + echo -e "$\n\n$DIR" + DIR="${LOCALTEXMF}/fonts/vf/${FONTSUBDIR}/" + echo $DIR + DIR="${LOCALTEXMF}/fonts/type1/${FONTSUBDIR}/" + echo $DIR + DIR="${LOCALTEXMF}/fonts/map/dvips/${FONTSUBDIR}/" + echo $DIR + DIR="${LOCALTEXMF}/tex/latex/${FONTSUBDIR}/" + echo $DIR + echo -e "\n\nDo you want to delete these directories? (y/n)" + read ANSWER + if [ $ANSWER = "y" -o $ANSWER = "Y" ] + then + DIR="${LOCALTEXMF}/fonts/tfm/${FONTSUBDIR}/" + rm -f -r $DIR + DIR="${LOCALTEXMF}/fonts/vf/${FONTSUBDIR}/" + rm -f -r $DIR + DIR="${LOCALTEXMF}/fonts/type1/${FONTSUBDIR}/" + rm -f -r $DIR + DIR="${LOCALTEXMF}/fonts/map/dvips/${FONTSUBDIR}/" + rm -f -r $DIR + DIR="${LOCALTEXMF}/tex/latex/${FONTSUBDIR}/" + rm -f -r $DIR + exit 0 + else + exit 1 + fi +fi +# +if [ $FONTTYPE = "ttf" ] +then + ((STEP++)) + echo -e "\n\n$STEP) Convert font(s) to Postscript Type1\n\n" + for file in *.TTF; + do + mv "$file" "${file%TTF}ttf" 2>>/dev/null; + done + for file in *.ttf; + do + ttf2pt1 -a -b -l adobestd "$file"; + done +fi +# +if [ $FONTTYPE = "otf" ] +then + ((STEP++)) + echo -e "\n\n$STEP) Convert font(s) to Postscript Type1\n\n" + for file in *.OTF; + do + mv "$file" "${file%OTF}otf" 2>>/dev/null; + done + for file in *.otf; + do + otftotfm $OTFFONTFEATURES -e - "$file" 555; + done + for file in *.pfb; + do + pf2afm "$file"; + done + rm *.tfm + rm *.enc +fi +# +echo -e "\n\nTry to rename the font(s) automatically? (y/n)" +read ANSWER +if [ $ANSWER = "y" -o $ANSWER = "Y" ] +then + ((STEP++)) + echo -e "\n\n$STEP) Renaming fonts\n\n" + mkdir -p Backup + cp *.afm *.AFM ./Backup 2>>/dev/null + cp *.pfb *.PFB ./Backup 2>>/dev/null + for file in *.AFM; + do + mv "$file" "${file%AFM}afm" 2>>/dev/null; + done + for file in *.PFB; + do + mv "$file" "${file%PFB}pfb" 2>>/dev/null; + done + FONTNUMBER=$(ls -al *.pfb 2>>/dev/null | wc -l) + if [ $FONTNUMBER -le 1 ] + then + if [ $FONTNUMBER -eq 0 ] + then + echo "No font(s) to rename!" + exit 1 + else + for file in *.afm; + do + mv "$file" ${FONTFAMILY}${FONTCUT}${FONTENCODING}.afm; + done + for file in *.pfb; + do + mv "$file" ${FONTFAMILY}${FONTCUT}${FONTENCODING}.pfb; + echo -e "s/<${FONTFAMILY}${FONTCUT}${FONTENCODING}/<${file%.pfb}/" >>map.sed; + done + fi + else + mkdir -p Rename + # rename small caps font(s) + FILES=$(grep -e "Smc" -e "Caps" -e "SCOsF" *.afm | cut -d':' -f1 | uniq) + for file in $FILES + do + FWEIGHT=$(grep -e "Weight" "$file" | cut -d' ' -f2 | sed -e "s/\r//") + if [ $FWEIGHT = "Bold" -o $FWEIGHT = "Xbold" -o $FWEIGHT = "XBold" ] + then + FONTCUT="bc" + else + FONTCUT="rc" + fi + mv "$file" ./Rename/${FONTFAMILY}${FONTCUT}${FONTENCODING}.afm; + mv "${file%afm}pfb" ./Rename/${FONTFAMILY}${FONTCUT}${FONTENCODING}.pfb; + echo -e "s/<${FONTFAMILY}${FONTCUT}${FONTENCODING}/<${file%.afm}/" >>map.sed; + done + # rename the light font(s) + FILES=$(grep -e "Light" *.afm | cut -d':' -f1 | uniq) + for file in $FILES + do + ITALICANGLE=$(grep -e "ItalicAngle" "$file" | tr ' ' '+' | cut -d'+' -f2 | cut -d'.' -f1) + if [ $ITALICANGLE -lt 0 -o $ITALICANGLE -gt 0 ] + then + FONTCUT="li" + else + FONTCUT="l" + fi + SMFFSTY="\RequirePackage{softmakerfreefont}%" + mv "$file" ./Rename/${FONTFAMILY}${FONTCUT}${FONTENCODING}.afm; + mv "${file%afm}pfb" ./Rename/${FONTFAMILY}${FONTCUT}${FONTENCODING}.pfb; + echo -e "s/<${FONTFAMILY}${FONTCUT}${FONTENCODING}/<${file%.afm}/" >>map.sed; + done + # rename the semi(bold) font + FILES=$(grep -e "Semibold" -e "SemiBold" *.afm | cut -d':' -f1 | uniq) + for file in $FILES + do + ITALICANGLE=$(grep -e "ItalicAngle" "$file" | tr ' ' '+' | cut -d'+' -f2 | cut -d'.' -f1) + if [ $ITALICANGLE -lt 0 -o $ITALICANGLE -gt 0 ] + then + FONTCUT="si" + else + FONTCUT="s" + fi + SMFFSTY="\RequirePackage{softmakerfreefont}%" + mv "$file" ./Rename/${FONTFAMILY}${FONTCUT}${FONTENCODING}.afm; + mv "${file%afm}pfb" ./Rename/${FONTFAMILY}${FONTCUT}${FONTENCODING}.pfb; + echo -e "s/<${FONTFAMILY}${FONTCUT}${FONTENCODING}/<${file%.afm}/" >>map.sed; + done + # rename the demi(bold) font + FILES=$(grep -e "FontName" -e "FullName" *.afm | grep -e "Demi" -e "Demibold" -e "DemiBold" | cut -d':' -f1 | uniq) + for file in $FILES + do + ITALICANGLE=$(grep -e "ItalicAngle" "$file" | tr ' ' '+' | cut -d'+' -f2 | cut -d'.' -f1) + if [ $ITALICANGLE -lt 0 -o $ITALICANGLE -gt 0 ] + then + FONTCUT="di" + else + FONTCUT="d" + fi + SMFFSTY="\RequirePackage{softmakerfreefont}%" + mv "$file" ./Rename/${FONTFAMILY}${FONTCUT}${FONTENCODING}.afm; + mv "${file%afm}pfb" ./Rename/${FONTFAMILY}${FONTCUT}${FONTENCODING}.pfb; + echo -e "s/<${FONTFAMILY}${FONTCUT}${FONTENCODING}/<${file%.afm}/" >>map.sed; + done + # rename the extra bold font + FILES=$(grep -e "Extrabold" -e "ExtraBold" *.afm | cut -d':' -f1 | uniq) + for file in $FILES + do + ITALICANGLE=$(grep -e "ItalicAngle" "$file" | tr ' ' '+' | cut -d'+' -f2 | cut -d'.' -f1) + if [ $ITALICANGLE -lt 0 -o $ITALICANGLE -gt 0 ] + then + FONTCUT="xi" + else + FONTCUT="x" + fi + SMFFSTY="\RequirePackage{softmakerfreefont}%" + mv "$file" ./Rename/${FONTFAMILY}${FONTCUT}${FONTENCODING}.afm; + mv "${file%afm}pfb" ./Rename/${FONTFAMILY}${FONTCUT}${FONTENCODING}.pfb; + echo -e "s/<${FONTFAMILY}${FONTCUT}${FONTENCODING}/<${file%.afm}/" >>map.sed; + done + # rename the ultra bold/heavy font + FILES=$(grep -e "Heavy" -e "Ultrabold" -e "UltraBold" *.afm | cut -d':' -f1 | uniq) + for file in $FILES + do + ITALICANGLE=$(grep -e "ItalicAngle" "$file" | tr ' ' '+' | cut -d'+' -f2 | cut -d'.' -f1) + if [ $ITALICANGLE -lt 0 -o $ITALICANGLE -gt 0 ] + then + FONTCUT="ui" + else + FONTCUT="u" + fi + SMFFSTY="\RequirePackage{softmakerfreefont}%" + mv "$file" ./Rename/${FONTFAMILY}${FONTCUT}${FONTENCODING}.afm; + mv "${file%afm}pfb" ./Rename/${FONTFAMILY}${FONTCUT}${FONTENCODING}.pfb; + echo -e "s/<${FONTFAMILY}${FONTCUT}${FONTENCODING}/<${file%.afm}/" >>map.sed; + done + # rename the bold font + FILES=$(grep -e "Bold" -e "bold" *.afm | cut -d':' -f1 | uniq) + for file in $FILES + do + ITALICANGLE=$(grep -e "ItalicAngle" "$file" | tr ' ' '+' | cut -d'+' -f2 | cut -d'.' -f1) + if [ $ITALICANGLE -lt 0 -o $ITALICANGLE -gt 0 ] + then + FONTCUT="bi" + else + FONTCUT="b" + fi + mv "$file" ./Rename/${FONTFAMILY}${FONTCUT}${FONTENCODING}.afm; + mv "${file%afm}pfb" ./Rename/${FONTFAMILY}${FONTCUT}${FONTENCODING}.pfb; + echo -e "s/<${FONTFAMILY}${FONTCUT}${FONTENCODING}/<${file%.afm}/" >>map.sed; + done + # rename the regular font + FILES=$(grep -e "Regular" -e "Medium" -e "Book" --exclude=installfont * | grep -e ".afm" | cut -d':' -f1 | uniq) + for file in $FILES + do + ITALICANGLE=$(grep -e "ItalicAngle" "$file" | tr ' ' '+' | cut -d'+' -f2 | cut -d'.' -f1) + if [ $ITALICANGLE -lt 0 -o $ITALICANGLE -gt 0 ] + then + FONTCUT="ri" + else + FONTCUT="r" + fi + mv "$file" ./Rename/${FONTFAMILY}${FONTCUT}${FONTENCODING}.afm; + mv "${file%afm}pfb" ./Rename/${FONTFAMILY}${FONTCUT}${FONTENCODING}.pfb; + echo -e "s/<${FONTFAMILY}${FONTCUT}${FONTENCODING}/<${file%.afm}/" >>map.sed; + done + mv ./Rename/* . + rmdir ./Rename + fi + ls -al *.pfb *.afm + echo -e "\n\nPlease check the font name(s). Continue? (y/n)" + read ANSWER + if [ $ANSWER = "n" -o $ANSWER = "N" ] + then + rm *.afm + rm *.pfb + rm *.sed + mv ./Backup/* . + rmdir ./Backup + exit 1 + fi +fi +# +((STEP++)) +echo -e "\n\n$STEP) Creating metrics and virtual fonts\n\n" +cat >${FONTFAMILY}-drv.tex <<EOF +\input fontinst.sty +\needsfontinstversion{1.926} +\recordtransforms{${FONTFAMILY}-rec.tex} +\latinfamily{${FONTFAMILY}}{} +\endrecordtransforms +\bye +EOF +tex ${FONTFAMILY}-drv.tex +# +((STEP++)) +echo -e "\n\n$STEP) Compiling metrics and virtual fonts\n\n" +for file in *.pl; +do + pltotf $file ${file%pl}tfm; +done +for file in *.vpl; +do + vptovf $file ${file%vpl}vf ${file%vpl}tfm; +done +# +((STEP++)) +echo -e "\n\n$STEP) Creating the map file\n\n" +cat >${FONTFAMILY}-map.tex <<EOF +\input finstmsc.sty +\resetstr{PSfontsuffix}{.pfb} +\adddriver{dvips}{${FONTFAMILY}.map} +\input ${FONTFAMILY}-rec.tex +\donedrivers +\bye +EOF +tex ${FONTFAMILY}-map.tex +if [ $OFN = "true" ] +then + sed -f map.sed ${FONTFAMILY}.map >${MAPFILENAME}.map + unix2dos ${MAPFILENAME}.map 2>>/dev/null; + rm ${FONTFAMILY}.map + UMAP="${MAPFILENAME}" +else + UMAP="${FONTFAMILY}" +fi +# +((STEP++)) +echo -e "\n\n$STEP) Creating the style file" +cat >${PACKAGENAME}.sty <<EOF +\NeedsTeXFormat{LaTeX2e}% +\ProvidesPackage{$PACKAGENAME}[$PACKAGEDATE $PACKAGEVERSION $FONTNAME]% +${SMFFSTY}% +\RequirePackage{textcomp}% +\RequirePackage{xkeyval}% +\define@key{${PACKAGENAME}.sty}{scaled}[1.0]% +{% + \def\\${FONTSCALEPREFIX}@scale{#1}% +}% +\define@key{${PACKAGENAME}.sty}{leading}[1.0]% +{% + \linespread{#1}% +}% +\ExecuteOptionsX{scaled}% +\ProcessOptionsX\relax% +\renewcommand*{\\${INSTALLAS}}{$FONTFAMILY}% +\newcommand\\${FONTCOMMAND}{\fontfamily{$FONTFAMILY}\fontseries{m}\fontshape{n}\selectfont}% +\endinput% +EOF +unix2dos ${PACKAGENAME}.sty 2>>/dev/null; +# +((STEP++)) +echo -e "\n\n$STEP) Insert scale factor into the fd files" +cat >installfont.sed <<EOF +9 i\\ +\\n\\\\expandafter\\\\ifx\\\\csname ${FONTSCALEPREFIX}@scale\\\\endcsname\\\\relax\\n \\\\let\\\\${FONTSCALEPREFIX}@@scale\\\\@empty\\n\\\\else\\n \\\\edef\\\\${FONTSCALEPREFIX}@@scale{s*[\\\\csname ${FONTSCALEPREFIX}@scale\\\\endcsname]}\\n\\\\fi\\n +s/<-> /<-> \\\\${FONTSCALEPREFIX}@@scale / +EOF +# +for file in *.fd; +do + mv $file ${file%fd}fdb; + sed -f installfont.sed ${file%fd}fdb >$file; + unix2dos $file 2>>/dev/null; +done +# +((STEP++)) +echo -e "\n\n$STEP) Installing font(s) and support files" +DIR="${LOCALTEXMF}/fonts/tfm/${FONTSUBDIR}/" +if [ ! -d $DIR ] +then + mkdir -p $DIR +fi +mv *.tfm $DIR +DIR="${LOCALTEXMF}/fonts/vf/${FONTSUBDIR}/" +if [ ! -d $DIR ] +then + mkdir -p $DIR +fi +mv *.vf $DIR +DIR="${LOCALTEXMF}/fonts/type1/${FONTSUBDIR}/" +if [ $OFN = "true" ] +then + cd Backup + if [ ! -d $DIR ] + then + mkdir -p $DIR + fi + cp *.pfb $DIR + cd .. +else + if [ ! -d $DIR ] + then + mkdir -p $DIR + fi + cp *.pfb $DIR +fi +DIR="${LOCALTEXMF}/fonts/map/dvips/${FONTSUBDIR}/" +if [ ! -d $DIR ] +then + mkdir -p $DIR +fi +mv *.map $DIR +DIR="${LOCALTEXMF}/tex/latex/${FONTSUBDIR}/" +if [ ! -d $DIR ] +then + mkdir -p $DIR +fi +mv *.fd $DIR +DIR="${LOCALTEXMF}/tex/latex/${FONTSUBDIR}/" +if [ ! -d $DIR ] +then + mkdir -p $DIR +fi +mv *.sty $DIR +# +((STEP++)) +echo -e "\n\n$STEP) Update FileNameDataBase" +initexmf $ADMIN -u +((STEP++)) +echo -e "\n\n$STEP) Include the map file" +echo -e "\n\n" +echo "Add the line 'Map ${UMAP}.map' to the file in the opening editor." +echo "Save the file, close the editor and press RETURN to continue." +initexmf $ADMIN --edit-config-file updmap +read ANSWER +((STEP++)) +echo -e "\n\n$STEP) Update map configuration" +initexmf $ADMIN --mkmaps +rm *.mtx +rm *.pl +rm *.vpl +rm *.log +rm *.tex +rm *.fdb +rm *.sed +if [ -d Backup ] +then + rm *.afm + rm *.pfb + mv ./Backup/* . + rmdir ./Backup +fi +echo -e "\n\nThe font(s) should be installed now!" +exit 0
\ No newline at end of file diff --git a/Master/texmf-dist/doc/support/installfont/installfont.pdf b/Master/texmf-dist/doc/support/installfont/installfont.pdf Binary files differnew file mode 100644 index 00000000000..91c2779881f --- /dev/null +++ b/Master/texmf-dist/doc/support/installfont/installfont.pdf diff --git a/Master/texmf-dist/doc/support/installfont/installfont.tex b/Master/texmf-dist/doc/support/installfont/installfont.tex new file mode 100644 index 00000000000..483ce69d534 --- /dev/null +++ b/Master/texmf-dist/doc/support/installfont/installfont.tex @@ -0,0 +1,206 @@ +\documentclass[10pt,a4paper]{scrartcl} +\usepackage[english]{babel}% +\usepackage[latin1]{inputenc}% +\usepackage[T1]{fontenc}% +\usepackage{textcomp}% +\usepackage{lmodern}% +\usepackage{typewriter}% +\usepackage{grenoble}% +\usepackage[leading=1.1]{nashville} +\usepackage{tabularx} +\usepackage{booktabs} +\usepackage{amsmath} +\usepackage[symbol]{footmisc} +\usepackage{endnotes} +\usepackage{jkdoc}% +\usepackage{microtype} +\usepackage{hyperref} +\hypersetup{breaklinks=true,pdfauthor={Josef Kleber},pdftitle={A bash script for installing a LaTeX font family},pdfsubject={Documentation for the installfont(-tl) script}} +\renewcommand{\arraystretch}{1.2} +\newcommand\Link[2]{\href{#1}{#2}\endnote{\href{#1}{\url{#1}}}} +\makeatletter +\newcommand\doubledash{-\kern2pt-} +\def\enoteformat{\rightskip\z@ \leftskip\z@ \parindent=1em\leavevmode\llap{\makeenmark}} +\makeatother +\begin{document} +\setlength{\parindent}{0pt} +\setfnsymbol{wiley} +\renewcommand\notesname{Links} +\title{\texttt{installfont(-tl)}} +\Subtitle{A bash script for installing a \LaTeX{} font family} +\Fileversion{v1.5} +\Authorline{Package authors:} +\Author{Josef Kleber \and Christoph Bier (TeXLive version)} +\Refline{\href{mailto:installfont@latex.josef-kleber.de}{\texttt{installfont@latex.josef-kleber.de}}\\\href{http://latex.josef-kleber.de/en_index.htm}{\texttt{http://latex.josef-kleber.de/en\_index.htm}}} +\maketitle +\Headline{Abstract} +\vspace*{3cm} +\begin{abstract} +With this script\footnote{This script automates the procedure described in 'Tutorial I +The Basics' in +\href{ftp://dante.ctan.org/tex-archive/info/Type1fonts/fontinstallationguide/fontinstallationguide.pdf}{fontinstallationguide.pdf}} +you can install a LaTeX font family (Postscript Type1, Truetype, Opentype). It supports font series from light to ultra bold + (faked) small caps + faked slanted, but no expert fonts. The script will rename the fonts automatically (optinal) or will otherwise expect *.afm files and the font files (in Postscript Type1 format!) named in the Karl Berry scheme (e.g. 5nar8a.pfb). After running the script, you should have a working font installation in your local TeX tree. +\footnote{The Nashville, Grenoble and Typewriter font families in this document +were installed with installfont} +\end{abstract} +\clearpage +\setkomafont{sectioning}{\normalfont\normalcolor\FFNashville} +\Headline{Dependencies} +\section*{Dependencies} +For using this script the following programms have to be installed: +\begin{itemize} +\item Windows +\begin{itemize} +\item \Link{http://www.miktex.org/}{MiKTeX} or \Link{http://www.tug.org/texlive/}{TeXLive} +\item \Link{http://www.cygwin.com/}{cygwin} or any other *nix-like environment with the same funtionality + +Download \texttt{setup.exe} and follow the instructions on the \texttt{cygwin} homepage +\item for installing fonts in other formats than Postscript Type1 +\begin{itemize} +\item Truetype + +Download the \Link{http://gnuwin32.sourceforge.net/packages/ttf2pt1.htm}{ttf2pt1 Installer}, install \texttt{ttf2pt1} and add the installation directory to your \texttt{PATH} +\item Opentype + +Download the \Link{ftp://akagi.ms.u-tokyo.ac.jp/pub/TeX/win32/lcdf-typetools-w32.tar.bz2}{LCDF Typetools} and run (bash/cygwin)\newline\texttt{bunzip2 lcdf-typetools-w32.tar.bz2} followed by \newline\texttt{tar -xf lcdf-typetools-w32.tar} and add the \texttt{bin} directory to the \texttt{PATH}. You need to install \Link{http://www.ghostscript.com/}{Ghostscript} if you are using TeXLive! +\end{itemize} +\end{itemize} +\item *nix +\begin{itemize} +\item \Link{http://www.tug.org/texlive/}{TeXLive} +\item Ghostscript (pf2afm) +\item for installing fonts in other formats than Postscript Type1 +\begin{itemize} +\item Truetype + +Install the \texttt{ttf2pt1} package with your distribution package manager or download a package from a \Link{http://packages.ubuntu.com/search?lang=en&keywords=ttf2pt1}{webpage}. +\item Opentype + +Install the \texttt{lcdf-typetools} package with your distribution package manager or download a package from a \Link{http://packages.ubuntu.com/search?lang=en&keywords=lcdf-typetools}{webpage}. +\end{itemize} +\end{itemize} +\end{itemize} + +You can also convert the font manually, e.g. with \Link{http://fontforge.sourceforge.net/}{Fontforge}. Load the font, reencode the font to 'Adobe Standard' and generate the font (PS Type1 (Binary)). There's a pre-built package for \texttt{cygwin}! +\clearpage +\Headline{The font(s)} +\section*{The font(s)} +The core part of the script needs the font(s) in Postscript Type1 format and named in Karl Berry scheme. It can try to convert and to rename the font(s) and afm files for you by analyzing the afm files. If it fails\footnote{feel free to contact the author, so that another search pattern can be added to \texttt{grep} command(s)} you will have to rename the font(s) and afm files on your own. The Karl Berry scheme expects a file to be named like this: + +\begin{center} +\begin{tabular}{cccc} +$\underbrace{\text{\strut fxx}}_{\text{font family}}$ & $\underbrace{\text{\strut y(y)}}_{\text{font cut}}$ & $\underbrace{\text{\strut zz}}_{\text{font encoding}}$ & .pfb +\end{tabular} +\end{center} + + +with the following meaning: + +\begin{center} +\begin{tabularx}{\linewidth}{rlX} +f & supplier (type foundry) & p (Adobe), l (Linotype), f (small foundries, free), ...\\ +xx & typeface & tm (Times), ch (Charter), hv (Helvetica), ...\\ +y(y) & weights/variants & r~(regular/medium), ri~(regular/medium italic), rc~(regular/medium small caps), b~(bold), bi~(bold italic), bc~(bold small caps), l~(light), li~(light italic), s~(semi bold), si~(semi bold italic), d~(demi), di~(demi italic), x~(extra bold), xi~(extra bold italic), u~(ultra bold/heavy), ui~(ultra bold/heavy italic)\\ +zz & font encoding & 8a (AdobeStandardEncoding), 8r (\TeX\ base encoding), ...\\ +\end{tabularx} +\end{center} + +The script supports the cuts presented in the table. Don't copy more than these cuts into your working directory, otherwise the automatic renaming will quite likely fail! It will add faked slanted cuts and faked small caps, if there are no real small caps fonts. If you only have one font cut, it will be installed as regular font. If you want more information about Karl Berry scheme read: + +\medskip\texttt{texdoc fontname} + +\Headline{Options} +\section*{Options} + +The style file created with this script offers the following options: + +\begin{itemize} +\item scaled + +You can use the option \texttt{scaled} for scaling the font to better match with other fonts. + +\item leading + +For some fonts it might be necessary to increase the leading between lines for a better optical impression, where 1.0 means 100\%. \texttt{\string\usepackage[leading=1.1]\{nash\-ville\}} was used in this document. +\end{itemize} + +\Headline{Example (Nashville)} +\section*{Example (Nashville)} + +\begin{center} +\begin{tabular}{|l|c|c|c|c|} +\hline +\strut Family & Series & Shape(s) & Example of Typeface & Supported Encodings\\ +\hline +6na & l & n & \fontfamily{6na}\fontseries{l}\fontshape{n}\selectfont Nashville Light & OT1, T1, TS1\\ +6na & l & it & \fontfamily{6na}\fontseries{l}\fontshape{it}\selectfont Nashville Light & OT1, T1, TS1\\ +6na & l & sl & \fontfamily{6na}\fontseries{l}\fontshape{sl}\selectfont Nashville Light & OT1, T1, TS1\\ +6na & l & sc & \fontfamily{6na}\fontseries{l}\fontshape{sc}\selectfont Nashville Light & OT1, T1, TS1\\ +6na & m & n & Nashville & OT1, T1, TS1\\ +6na & m & it & \fontfamily{6na}\fontseries{m}\fontshape{it}\selectfont Nashville & OT1, T1, TS1\\ +6na & m & sl & \fontfamily{6na}\fontseries{m}\fontshape{sl}\selectfont Nashville & OT1, T1, TS1\\ +6na & m & sc & \fontfamily{6na}\fontseries{m}\fontshape{sc}\selectfont Nashville & OT1, T1, TS1\\ +6na & b & n & \fontfamily{6na}\fontseries{b}\fontshape{n}\selectfont Nashville Bold & OT1, T1, TS1\\ +6na & b & it & \fontfamily{6na}\fontseries{b}\fontshape{it}\selectfont Nashville Bold & OT1, T1, TS1\\ +6na & b & sl & \fontfamily{6na}\fontseries{b}\fontshape{sl}\selectfont Nashville Bold & OT1, T1, TS1\\ +6na & b & sc & \fontfamily{6na}\fontseries{b}\fontshape{sc}\selectfont Nashville Bold & OT1, T1, TS1\\ +6na & eb & n & \fontfamily{6na}\fontseries{eb}\fontshape{n}\selectfont Nashville ExtraBold & OT1, T1, TS1\\ +6na & eb & it & \fontfamily{6na}\fontseries{eb}\fontshape{it}\selectfont Nashville ExtraBold & OT1, T1, TS1\\ +6na & eb & sl & \fontfamily{6na}\fontseries{eb}\fontshape{sl}\selectfont Nashville ExtraBold & OT1, T1, TS1\\ +6na & eb & sc & \fontfamily{6na}\fontseries{eb}\fontshape{sc}\selectfont Nashville ExtraBold & OT1, T1, TS1\\ +6na & ub & n & \fontfamily{6na}\fontseries{ub}\fontshape{n}\selectfont Nashville Heavy & OT1, T1, TS1\\ +6na & ub & it & \fontfamily{6na}\fontseries{ub}\fontshape{it}\selectfont Nashville Heavy & OT1, T1, TS1\\ +6na & ub & sl & \fontfamily{6na}\fontseries{ub}\fontshape{sl}\selectfont Nashville Heavy & OT1, T1, TS1\\ +6na & ub & sc & \fontfamily{6na}\fontseries{ub}\fontshape{sc}\selectfont Nashville Heavy & OT1, T1, TS1\\ +\hline +\end{tabular} +\end{center} +\clearpage + +\Headline{Usage} +\section*{Usage} + +The script offers the following command line options: + +\bigskip +\begin{tabularx}{\linewidth}{llX} +\texttt{-f} & \texttt{\doubledash fontfamily} & Name of the LaTeX font family, e.g. ptm (Adobe Times)\\ +\texttt{-n} & \texttt{\doubledash fontname} & Font name, e.g. Adobe Times\\ +\texttt{-c} & \texttt{\doubledash fontcommand} & Name of the command that will switch to the font\\ +\texttt{-P} & \texttt{\doubledash fontscaleprefix} & prefix of the scale macro, which should be different for each font (no digits allowed)\\ +\texttt{-t} & \texttt{\doubledash fonttype} & Font type (pst1(default)|ttf|otf)\\ +\texttt{-p} & \texttt{\doubledash packagename} & Name of the LaTeX package\\ +\texttt{-d} & \texttt{\doubledash packagedate} & Date of the LaTeX package\\ +\texttt{-v} & \texttt{\doubledash packageversion} & Version of the LaTeX package\\ +\texttt{-l} & \texttt{\doubledash localtexmf} & root of your local TeX tree, e.g. \newline\texttt{/cygdrive/c/LocalTeXMF}\newline (TeXLive version default: \texttt{\$TEXMFHOME)}\\ +\texttt{-s} & \texttt{\doubledash fontsubdir} & location where the fonts and support files should be installed, e.g. \texttt{MyFonts/AdobeTimes}\\ +\texttt{-e} & \texttt{\doubledash fontencoding} & encoding of the font (default: 8a (AdobeStandardEncoding))\\ +\texttt{-o} & \texttt{\doubledash otffontfeatures} & choosing Opentype font features (default: -fkern -fliga)\\ +\texttt{-m} & \texttt{\doubledash mapfilename} & file name of the map file (without .map)\\ +\texttt{-u} & \texttt{\doubledash uninstall} & will uninstall the font family. You must specify \mbox{\texttt{\doubledash localtexmf}} and \texttt{\doubledash fontsubdir}\\ +\texttt{-R} & \texttt{\doubledash rmdefault} & installs font family as roman (serif) font family (default)\\ +\texttt{-S} & \texttt{\doubledash sfdefault} & installs font family as sans serif font family\\ +\texttt{-T} & \texttt{\doubledash ttdefault} & installs font family as typewriter font family\\ +\texttt{-O} & \texttt{\doubledash origfontname} & use original font names instead of Karl Berry names\\ +\texttt{-a} & \texttt{\doubledash admin} & set administrative mode (MiKTeX v2.8+)\\ +\texttt{-V} & \texttt{\doubledash version} & will print the version number of the script\\ +\texttt{-h} & \texttt{\doubledash help} & will print this help statement\\ +\end{tabularx} + +\clearpage +To install a font family simply call the script: + +\bigskip +\texttt{kleberj@home \texttildelow{}/installfont\\\$ installfont -f 5na -n 'Softmaker Nashville' -c Nashville -P MF@Sna -p nash\-ville -m nashville -O -d 2010/09/14 -v v1.0 -l /cygdrive/d/LocalTeXMF -s MyFonts/Nashville} +\bigskip + +You can also put a copy of the script in your working directory and change the default values of the script variables. Then you can simply call the script with + +\bigskip +\texttt{kleberj@home \texttildelow{}/installfont\\\$ installfont} +\bigskip + +After running the script the font(s) should be properly installed. You can use the font just with \texttt{\textbackslash{}usepackage\{PACKAGENAME\}} or \texttt{\textbackslash{}FONTCOMMAND}. + +\theendnotes +\end{document} diff --git a/Master/texmf-dist/doc/support/installfont/manifest.txt b/Master/texmf-dist/doc/support/installfont/manifest.txt new file mode 100644 index 00000000000..29f7c8b972f --- /dev/null +++ b/Master/texmf-dist/doc/support/installfont/manifest.txt @@ -0,0 +1,17 @@ +This work consists of the following files: + +-- scripts -- + +installfont +installfont-tl + +-- Documentation -- + +installfont.tex +installfont.pdf + +-- Misc. Files -- + +LICENSE +README +manifest.txt
\ No newline at end of file |