123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- #!/bin/sh
- PREFIX=/usr/local
- TEXMF=${PREFIX}/share/texmf
- FONTDIR=${TEXMF}/fonts/opentype
- MAPDIR=${TEXMF}/fonts/map/dvipdfm
- STATEDIR=${TEXMF}-var/updmap-otf
- export TEXMFSYSVAR=${TEXMF}-var
- export PATH=${PREFIX}/bin:${PATH}
- Usage() {
- cat <<EOF
- Usage: updmap-otf {hiragino|morisawa|kozuka|nofont|"installed font name"|auto|status}
- hiragino: set Hiragino Fonts embedded in pdf files by teTeX otf package
- morisawa: set Morisawa Fonts embedded in pdf files by teTeX otf package
- kozuka: set kozuka Fonts embedded in pdf files by teTeX otf package
- nofont: set no fonts are embedded
- If your system does not have above 3 font families,
- this target is selected automatically.
- "installed font name":
- set fonts which are installed as
- TEXMF/fonts/map/dvipdfm/otf-"install font name".map
- auto: set fonts automatically
- status: get information about current environment and usable font map
- EOF
- }
- CheckInstallFont() {
- if [ -f ${FONTDIR}/HiraMinPro-W3.otf ]; then
- HIRAGINO=installed
- else
- HIRAGINO=""
- fi
-
- if [ -f ${FONTDIR}/A-OTF-RyuminPro-Light.otf ]; then
- MORISAWA=installed
- else
- MORISAWA=""
- fi
- if [ -f ${FONTDIR}/KozMinPro-Regular-Acro.otf ]; then
- KOZUKA=installed
- else
- KOZUKA=""
- fi
- }
- GetStatus() {
- for i in $MAPDIR/otf-*.map
- do
- if [ "otf-cktx.map" != "`basename $i`" ] && [ -f $i ]; then
- MAPFILE=`basename $i | sed -e "s|.map||"`
- case "$MAPFILE" in
- otf-hiraginox)
- if [ "$HIRAGINO" = "installed" ]; then
- echo "Standby map file : $MAPFILE"
- fi
- ;;
- otf-morisawax)
- if [ "$MORISAWA" = "installed" ]; then
- echo "Standby map file : $MAPFILE"
- fi
- ;;
- otf-kozukax)
- if [ "$KOZUKA" = "installed" ]; then
- echo "Standby map file : $MAPFILE"
- fi
- ;;
- *)
- echo "Standby map file : $MAPFILE"
- ;;
- esac
- fi
- done
- for i in $STATEDIR/otf-*.map
- do
- if [ "otf-cktx.map" != "`basename $i`" ] && [ -f $i ]; then
- STATUS=`basename $i | sed -e "s|.map||" | sed -e "s|otf-||"`
- fi
- done
- if [ -f $STATEDIR/otf-${STATUS}.map ]; then
- echo "CURRENT map file : otf-$STATUS"
- fi
- }
- CleanUp() {
- for TARGET in $STATEDIR/otf-*.map
- do
- if [ "otf-cktx.map" != "`basename ${TARGET}`" ] && [ -f ${TARGET} ]; then
- rm -f ${TARGET}
- echo "Removing ... `basename ${TARGET}`"
- ${PREFIX}/bin/updmap-sys --nostop --disable `basename ${TARGET}` 2> /dev/null
- fi
- done
- }
- SetupMapFile() {
- CleanUp
- MAPFILE=otf-$1.map
- if [ -f ${MAPDIR}/${MAPFILE} ]; then
- touch ${STATEDIR}/otf-$1.map
- echo "Setting up ... $MAPFILE"
- ${PREFIX}/bin/updmap-sys --nostop --enable KanjiMap ${MAPFILE} 2> /dev/null
- else
- echo "NOT EXIST $MAPFILE"
- return -1
- fi
- }
- main() {
- ${PREFIX}/bin/texhash 2> /dev/null
- CheckInstallFont
- if [ $# != 1 ] ; then
- eval Usage ${0##*/}
- return -1
- fi
- case "$1" in
- hiragino)
- if [ "$HIRAGINO" = "installed" ]; then
- SetupMapFile hiraginox
- else
- main auto
- fi
- ;;
- morisawa)
- if [ "$MORISAWA" = "installed" ]; then
- SetupMapFile morisawax
- else
- main auto
- fi
- ;;
- kozuka)
- if [ "$KOZUKA" = "installed" ]; then
- SetupMapFile kozukax
- else
- main auto
- fi
- ;;
- nofont)
- SetupMapFile noEmbed
- ;;
- auto)
- GetStatus
- MAPFILE=${MAPDIR}/otf-$STATUS.map
- if [ -f $MAPFILE ] && [ "$STATUS" != "noEmbeddedFont" ]; then
- SetupMapFile $STATUS
- elif [ "$STATUS" = "morisawa" ] && [ "$MORISAWA" = "installed" ]; then
- SetupMapFile morisawax
- elif [ "$STATUS" = "kozuka" ] && [ "$KOZUKA" = "installed" ]; then
- SetupMapFile kozukax
- elif [ "$STATUS" = "noEmbed" ] && [ "$HIRAGINO" = "installed" ]; then
- SetupMapFile hiraginox
- elif [ "$HIRAGINO" = "installed" ]; then
- SetupMapFile hiraginox
- elif [ "$MORISAWA" = "installed" ]; then
- SetupMapFile morisawax
- elif [ "$KOZUKA" = "installed" ]; then
- SetupMapFile kozukax
- else
- SetupMapFile noEmbed
- fi
- ;;
- status)
- GetStatus
- return 0
- ;;
- *)
- if [ -f ${MAPDIR}/otf-$1.map ]; then
- SetupMapFile $1
- else
- eval Usage ${0##*/}
- return -1
- fi
- ;;
- esac
- }
- main $@
|