[1533] | 1 | #!/bin/sh |
---|
[5207] | 2 | # updmap-otf: v0.9.1 |
---|
| 3 | # 11 Nov 2011 by PREINING Norbert <preining@logic.at> v0.9.1 |
---|
| 4 | # use kpsewhich for finding fonts |
---|
| 5 | # use updmap-sys --setoption kanjiEmbed to select the font family |
---|
| 6 | # use current names of map files |
---|
| 7 | # use different font name for Kozuka font, as used in the map file |
---|
| 8 | # get state from updmap.cfg, not from some state file |
---|
[1533] | 9 | # 27 May 2006 by KOBAYASHI R. Taizo <tkoba965@mac.com> v0.9 |
---|
| 10 | # use noEmbed.map instead of noEmbeddedFont.map |
---|
| 11 | # 10 Jun 2005 by KOBAYASHI R. Taizo <tkoba965@mac.com> v0.8 |
---|
| 12 | # modified to use updmap-sys in teTeX3 |
---|
| 13 | # 07 Nov 2004 by KOBAYASHI R. Taizo <tkoba965@mac.com> v0.7 |
---|
| 14 | # do not echo back the message of updmap. |
---|
| 15 | # 17 Oct 2004 by KOBAYASHI R. Taizo <tkoba965@mac.com> v0.6 |
---|
| 16 | # set hiragino map file if nofont is installed and arg is auto. |
---|
| 17 | # 04 Oct 2004 by KOBAYASHI R. Taizo <tkoba965@mac.com> v0.5 |
---|
| 18 | # handl standby map files more strictly |
---|
| 19 | # 20 Sep 2004 by KOBAYASHI R. Taizo <tkoba965@mac.com> v0.4 |
---|
| 20 | # hand over current status to map file installer |
---|
| 21 | # 19 Sep 2004 by KOBAYASHI R. Taizo <tkoba965@mac.com> v0.3 |
---|
| 22 | # handl *-udvips.map in TEXMF/dvipdfm/config/otf/ |
---|
| 23 | # 02 Mar 2004 by KOBAYASHI R. Taizo <tkoba@ike-dyn.ritsumei.ac.jp> v0.2 |
---|
| 24 | # added noFont-udvips.map |
---|
| 25 | # 28 Feb 2004 by KOBAYASHI R. Taizo <tkoba@ike-dyn.ritsumei.ac.jp> v0.1 |
---|
| 26 | |
---|
| 27 | ### |
---|
| 28 | ### Usage |
---|
| 29 | ### |
---|
| 30 | |
---|
| 31 | Usage() { |
---|
| 32 | cat <<EOF |
---|
| 33 | Usage: updmap-otf {hiragino|morisawa|kozuka|nofont|"installed font name"|auto|status} |
---|
| 34 | |
---|
[5207] | 35 | hiragino: set Hiragino Fonts embedded in pdf files by otf package |
---|
| 36 | morisawa: set Morisawa Fonts embedded in pdf files by otf package |
---|
| 37 | kozuka: set kozuka Fonts embedded in pdf files by otf package |
---|
[1533] | 38 | nofont: set no fonts are embedded |
---|
| 39 | If your system does not have above 3 font families, |
---|
| 40 | this target is selected automatically. |
---|
| 41 | "installed font name": |
---|
| 42 | set fonts which are installed as |
---|
| 43 | TEXMF/fonts/map/dvipdfm/otf-"install font name".map |
---|
| 44 | auto: set fonts automatically |
---|
| 45 | status: get information about current environment and usable font map |
---|
| 46 | |
---|
| 47 | EOF |
---|
| 48 | } |
---|
| 49 | |
---|
| 50 | |
---|
| 51 | ### |
---|
| 52 | ### Check Installed Font |
---|
| 53 | ### |
---|
| 54 | |
---|
| 55 | CheckInstallFont() { |
---|
[5207] | 56 | if kpsewhich HiraMinPro-W3.otf >/dev/null ; then |
---|
[1533] | 57 | HIRAGINO=installed |
---|
[5207] | 58 | else |
---|
[1533] | 59 | HIRAGINO="" |
---|
[5207] | 60 | fi |
---|
[1533] | 61 | |
---|
[5207] | 62 | if kpsewhich A-OTF-RyuminPro-Light.otf >/dev/null ; then |
---|
[1533] | 63 | MORISAWA=installed |
---|
[5207] | 64 | else |
---|
[1533] | 65 | MORISAWA="" |
---|
[5207] | 66 | fi |
---|
[1533] | 67 | |
---|
[5207] | 68 | if kpsewhich KozMinPro-Regular.otf >/dev/null ; then |
---|
[1533] | 69 | KOZUKA=installed |
---|
[5207] | 70 | else |
---|
[1533] | 71 | KOZUKA="" |
---|
[5207] | 72 | fi |
---|
[1533] | 73 | } |
---|
| 74 | |
---|
| 75 | ### |
---|
| 76 | ### GetStatus |
---|
| 77 | ### |
---|
| 78 | |
---|
| 79 | GetStatus() { |
---|
| 80 | |
---|
[5207] | 81 | STATUS=$(grep ^kanjiEmbed $(kpsewhich updmap.cfg) | awk '{print$2}') |
---|
| 82 | if kpsewhich otf-$STATUS.map >/dev/null ; then |
---|
| 83 | echo "CURRENT map file : otf-$STATUS.map" |
---|
| 84 | else |
---|
| 85 | echo "WARNING: Currently selected map file cannot be found: otf-$STATUS.map" |
---|
| 86 | fi |
---|
| 87 | |
---|
| 88 | |
---|
| 89 | for MAPFILE in otf-hiragino.map otf-morisawa.map otf-kozuka.map |
---|
[1533] | 90 | do |
---|
[5207] | 91 | if [ "$MAPFILE" = "otf-$STATUS.map" ] ; then |
---|
| 92 | continue |
---|
| 93 | fi |
---|
| 94 | mffound=`kpsewhich $MAPFILE` |
---|
| 95 | if [ -n "$mffound" ] ; then |
---|
[1533] | 96 | case "$MAPFILE" in |
---|
[5207] | 97 | otf-hiragino.map) |
---|
[1533] | 98 | if [ "$HIRAGINO" = "installed" ]; then |
---|
| 99 | echo "Standby map file : $MAPFILE" |
---|
| 100 | fi |
---|
| 101 | ;; |
---|
[5207] | 102 | otf-morisawa.map) |
---|
[1533] | 103 | if [ "$MORISAWA" = "installed" ]; then |
---|
| 104 | echo "Standby map file : $MAPFILE" |
---|
| 105 | fi |
---|
| 106 | ;; |
---|
[5207] | 107 | otf-kozuka.map) |
---|
[1533] | 108 | if [ "$KOZUKA" = "installed" ]; then |
---|
| 109 | echo "Standby map file : $MAPFILE" |
---|
| 110 | fi |
---|
| 111 | ;; |
---|
| 112 | *) |
---|
[5207] | 113 | echo "Should not happen!" |
---|
[1533] | 114 | ;; |
---|
| 115 | esac |
---|
| 116 | fi |
---|
| 117 | done |
---|
| 118 | |
---|
| 119 | } |
---|
| 120 | |
---|
| 121 | ### |
---|
| 122 | ### Setup Map files |
---|
| 123 | ### |
---|
| 124 | |
---|
| 125 | SetupMapFile() { |
---|
| 126 | |
---|
| 127 | MAPFILE=otf-$1.map |
---|
| 128 | |
---|
[5207] | 129 | if kpsewhich $MAPFILE >/dev/null ; then |
---|
[1533] | 130 | echo "Setting up ... $MAPFILE" |
---|
[5207] | 131 | updmap-sys -setoption kanjiEmbed $1 |
---|
| 132 | updmap-sys |
---|
[1533] | 133 | else |
---|
| 134 | echo "NOT EXIST $MAPFILE" |
---|
[5207] | 135 | return 1 |
---|
[1533] | 136 | fi |
---|
| 137 | } |
---|
| 138 | |
---|
| 139 | ### |
---|
| 140 | ### MAIN |
---|
| 141 | ### |
---|
| 142 | |
---|
| 143 | main() { |
---|
| 144 | |
---|
[5207] | 145 | mktexlsr 2> /dev/null |
---|
[1533] | 146 | |
---|
| 147 | CheckInstallFont |
---|
| 148 | |
---|
| 149 | if [ $# != 1 ] ; then |
---|
| 150 | eval Usage ${0##*/} |
---|
| 151 | return -1 |
---|
| 152 | fi |
---|
| 153 | |
---|
| 154 | case "$1" in |
---|
| 155 | hiragino) |
---|
| 156 | if [ "$HIRAGINO" = "installed" ]; then |
---|
[5207] | 157 | SetupMapFile hiragino |
---|
[1533] | 158 | else |
---|
| 159 | main auto |
---|
| 160 | fi |
---|
| 161 | ;; |
---|
| 162 | morisawa) |
---|
| 163 | if [ "$MORISAWA" = "installed" ]; then |
---|
[5207] | 164 | SetupMapFile morisawa |
---|
[1533] | 165 | else |
---|
| 166 | main auto |
---|
| 167 | fi |
---|
| 168 | ;; |
---|
| 169 | kozuka) |
---|
| 170 | if [ "$KOZUKA" = "installed" ]; then |
---|
[5207] | 171 | SetupMapFile kozuka |
---|
[1533] | 172 | else |
---|
| 173 | main auto |
---|
| 174 | fi |
---|
| 175 | ;; |
---|
| 176 | nofont) |
---|
| 177 | SetupMapFile noEmbed |
---|
| 178 | ;; |
---|
| 179 | auto) |
---|
| 180 | GetStatus |
---|
[5207] | 181 | if [ "$STATUS" = "morisawa" ] && [ "$MORISAWA" = "installed" ]; then |
---|
| 182 | SetupMapFile morisawa |
---|
[1533] | 183 | elif [ "$STATUS" = "kozuka" ] && [ "$KOZUKA" = "installed" ]; then |
---|
[5207] | 184 | SetupMapFile kozuka |
---|
[1533] | 185 | elif [ "$STATUS" = "noEmbed" ] && [ "$HIRAGINO" = "installed" ]; then |
---|
[5207] | 186 | SetupMapFile hiragino |
---|
[1533] | 187 | elif [ "$HIRAGINO" = "installed" ]; then |
---|
[5207] | 188 | SetupMapFile hiragino |
---|
[1533] | 189 | elif [ "$MORISAWA" = "installed" ]; then |
---|
[5207] | 190 | SetupMapFile morisawa |
---|
[1533] | 191 | elif [ "$KOZUKA" = "installed" ]; then |
---|
[5207] | 192 | SetupMapFile kozuka |
---|
[1533] | 193 | else |
---|
| 194 | SetupMapFile noEmbed |
---|
| 195 | fi |
---|
| 196 | ;; |
---|
| 197 | status) |
---|
| 198 | GetStatus |
---|
| 199 | return 0 |
---|
| 200 | ;; |
---|
| 201 | *) |
---|
[5207] | 202 | SetupMapFile $1 |
---|
[1533] | 203 | ;; |
---|
| 204 | esac |
---|
| 205 | } |
---|
| 206 | |
---|
| 207 | main $@ |
---|
| 208 | |
---|