- 论坛徽章:
- 0
|
参考内含子的脚本:
http://groups.google.com/group/c ... 23/55245e3db2f80035
默认安装到 ~/texmf 目录下,注意如果以前没有 ~/texmf/web2c/updmap.cfg,需要从 /usr/pkg/share/texmf/web2c/updmap.cfg 拷过来。
- #!/bin/sh
- #
- # Origin By Edward G.J. Lee 2001.11.25
- # http://www.study-area.org/tips/latex/pdftex.html
- # This code is Public Domain.
- #
- # Enhanced by intron@intron.ac, 2006.1.9
- # Modified for NetBSD by jungle@soforge.com, 2006.1.14
- if [ $# -ne 3 ]
- then
- cat << EOF
- Usage: `basename $0` font.ttf <TeX_Internal_Font_Name> <Tex_Font_Name>
- <TeX_Internal_Font_Name>: Used to name *.enc, *.afm, *.pfb, *.tfm & *.map
- <Tex_Font_Name>: Used in TeX source: \CJKencfamily{UTF8}{Tex_Font_Name}
- An example: `basename $0` gbsn00lp.ttf gbsn00lp songpt1
- EOF
- exit 1
- fi
- if ! which ttf2pt1; then
- echo "Please install port print/ttf2pt1 before you can run me."
- exit 1
- fi
- if ! which t1asm; then
- echo "Please install port print/ttf2pt1 or print/dvipsk-tetex before you can run me."
- exit 1
- fi
- if ! which afm2tfm; then
- echo "Please install port print/dvipsk-tetex before you can run me."
- exit 1
- fi
- if ! which extconv; then
- echo "Please install port chinese/CJK before you can run me."
- exit 1
- fi
- cat <<EOF
- ***************************************************************************
- * Please confirm that current working directory is EMPTY except scripts *
- * and HAS ENOUGH SPACE to contain so many intermediate files. *
- * If it is not empty, this script may DAMAGE INNOCENT FILES!!! *
- ***************************************************************************
- EOF
- read -p "Go ahead?[n]" a
- if [ "$a" != "y" ] && [ "$a" != "Y" ]; then
- exit 0
- fi
- FONTFILENAME="$1"
- FONTNAME="$2"
- FONTTEXNAME="$3"
- TEXMFHOME=`kpsexpand '$TEXMFHOME'`
- ENCDIR=${TEXMFHOME}/fonts/enc/dvips/local/${FONTNAME}
- AFMDIR=${TEXMFHOME}/fonts/afm/local/${FONTNAME}
- TFMDIR=${TEXMFHOME}/fonts/tfm/local/${FONTNAME}
- PFBDIR=${TEXMFHOME}/fonts/type1/local/${FONTNAME}
- MAPDIR=${TEXMFHOME}/fonts/map/dvips/local
- #This is a hack.
- #UPDMAPCFG=`kpsewhich -format 'web2c files' updmap.cfg`
- UPDMAPCFG=${TEXMFHOME}/web2c/updmap.cfg
- CJKDIR=${TEXMFHOME}/tex/latex/CJK/UTF8
- INSTALLDIRMODE="-m 0755"
- INSTALLMODE="-m 0644"
- FONTFILEBASENAME=`basename "$FONTFILENAME"`
- FDNAME=c70${FONTTEXNAME}.fd
- #MAPFILE=/usr/local/share/ttf2pt1/maps/cugb.map
- PLANENUM=255
- # Initialize ${FONTNAME}.map
- echo -n "" > ${FONTNAME}.map
- n=0
- echo "Generating subfonts from plane $n to plane $PLANENUM ..."
- while [ $n -le $PLANENUM ]
- do
- m=`printf %02x $n`
-
- echo -n "[$n]"
-
- SUBFONTNAME=${FONTNAME}${m}
-
- # Generate *.t1a *.afm *.enc
- #ttf2pt1 -GAE -pft -OHUBs -W0 -L $MAPFILE+$n "$FONTFILENAME" ${FONTNAME}${m}
- ttf2pt1 -GAE -pft -OHUBs -W0 -l plane+pid=3,eid=1,0x$m "$FONTFILENAME" ${SUBFONTNAME}
-
- # avoid dvips(k)(before v5.86) t1part module bug.
- perl -pi -e 's/_/Z/g' ${SUBFONTNAME}.t1a ${SUBFONTNAME}.afm
- # Generate *.pfb
- t1asm -b ${SUBFONTNAME}.t1a > ${SUBFONTNAME}.pfb 2>/dev/null
-
- # Generate *.tfm
- afm2tfm ${SUBFONTNAME}.afm > /dev/null
-
- # Generate ${FONTNAME}.map
- echo "${SUBFONTNAME} `grep -m 1 -i fontname ${SUBFONTNAME}.afm | sed -e 's/^[[:space:]]*[^[:space:]]\\{1,\\}[[:space:]]\\{1,\\}\\([^[:space:]]\\{1,\\}\\)[[:space:]]*\$/\\1/'` <${SUBFONTNAME}.pfb" >> ${FONTNAME}.map
- n=`expr $n + 1`
- done
- echo
- cat > ${FDNAME} << EOF
- % This file is automatically generated by `basename $0`
- \\def\\fileversion{0.0.1}
- \\def\\filedate{`date +%Y/%m/%d`}
- \\ProvidesFile{${FDNAME}}[\\filedate\\space\\fileversion]
- \\DeclareFontFamily{C70}{${FONTTEXNAME}}{\\hyphenchar \\font\\m@ne}
- \\DeclareFontShape{C70}{${FONTTEXNAME}}{m}{n}{<-> CJK * ${FONTNAME}}{}
- \\DeclareFontShape{C70}{${FONTTEXNAME}}{bx}{n}{<-> CJKb * ${FONTNAME}}{\\CJKbold}
- \\endinput
- EOF
- #exit 0;
- echo
- echo "Installing ..."
- install -d $INSTALLDIRMODE $ENCDIR $AFMDIR $TFMDIR $PFBDIR $MAPDIR $CJKDIR
- n=0
- while [ $n -le $PLANENUM ]
- do
- m=`printf %02x $n`
- echo -n "[$n]"
- install $INSTALLMODE ${FONTNAME}${m}.enc $ENCDIR
- install $INSTALLMODE ${FONTNAME}${m}.afm $AFMDIR
- install $INSTALLMODE ${FONTNAME}${m}.tfm $TFMDIR
- install $INSTALLMODE ${FONTNAME}${m}.pfb $PFBDIR
- n=`expr $n + 1`
- done
- echo
- install $INSTALLMODE ${FONTNAME}.map $MAPDIR
- install $INSTALLMODE $FDNAME $CJKDIR
- echo >> $UPDMAPCFG
- echo "Map ${FONTNAME}.map" >> $UPDMAPCFG
- mktexlsr
- #updmap-sys
- updmap
- read -p "Do you want remove all intermediate files?[n]" a
- if [ "$a" = "y" ] || [ "$a" = "Y" ]; then
- n=0
- while [ $n -le $PLANENUM ]
- do
- m=`printf %02x $n`
- echo -n "[$n]"
-
- rm -f ${FONTNAME}${m}.enc ${FONTNAME}${m}.afm ${FONTNAME}${m}.t1a ${FONTNAME}${m}.pfb ${FONTNAME}${m}.tfm
-
- n=`expr $n + 1`
- done
- echo
-
- rm -fv $FDNAME ${FONTNAME}.map
- fi
- echo
- echo "OK, all done. :-)"
- echo
复制代码 |
|