1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-18 00:10:04 +00:00
freebsd-ports/print/latex-cjk/scripts/post-install

167 lines
6.1 KiB
Plaintext
Raw Normal View History

#!/bin/sh
PATH=/bin:/usr/bin:/usr/local/bin
# Some mktexpk incorrectly calls ttf2pk with -p option, delete it.
cp ${PREFIX}/bin/mktexpk ${PREFIX}/bin/mktexpk.CJK
sed -e "s/ttf2pk -p/ttf2pk/" ${PREFIX}/bin/mktexpk.CJK > ${PREFIX}/bin/mktexpk
rm ${PREFIX}/bin/mktexpk.CJK
# Install ttf2pk binary in ${PORTSDIR}/print/freetype, data in ${TEXMF}/ttf2pk
(cd ${PORTSDIR}/print/freetype/work/freetype-1.2/contrib/ttf2pk;
./configure --prefix=${PREFIX} --with-kpathsea-dir=${PREFIX};
make depend all install;
cp -R data ${PREFIX}/share/texmf/ttf2pk;
cd ${PREFIX}/share/texmf; ln -s ttf2pk ttf2tfm; )
# We have no way telling where generated fonts are, but ask the user.
echo
echo "Please input where generated fonts are placed."
echo "It's specified as VARTEXFONTS in your texmf.cnf."
echo "->(Default: /var/tmp/texfonts)"
read VARTEXFONTS
if [ -z ${VARTEXFONTS} ]
then
VARTEXFONTS=/var/tmp/texfonts
fi
# teTeX no longer makes VARTEXFONTS.
mkdir -p ${VARTEXFONTS}/pk
mkdir -p ${VARTEXFONTS}/tfm
# Chmod 1777 ${VARTEXFONTS}.
if [ -z "${NOCHMOD}" ]
then
chmod -R 1777 ${VARTEXFONTS}
fi
# Install moe_* TTF fonts
echo ===
echo If you want to install other TTF fonts, you have to manually edit:
echo ${PREFIX}/share/texmf/fontname/special.map
echo ${PREFIX}/share/texmf/ttf2pk/ttfonts.map
echo ${PREFIX}/share/texmf/web2c/texmf.cnf
echo ${PREFIX}/share/texmf/tex/latex/CJK/Bg5/c00kai.fd, for Kai family fonts.
echo ${PREFIX}/share/texmf/tex/latex/CJK/Bg5/c00song.fd, for Song family fonts.
echo ${PREFIX}/share/texmf/tex/latex/CJK/Bg5/c00lishu.fd, for LiShu family fonts.
echo ===
mkdir -p ${PREFIX}/share/texmf/fonts/truetype/moe
ln -s ${X11BASE}/lib/X11/fonts/TrueType/moe_*.ttf ${PREFIX}/share/texmf/fonts/truetype/moe
# fontname/special.map
if [ -n "`grep moekai ${PREFIX}/share/texmf/fontname/special.map`" ]
then
echo Seems moekai already in special.map, file untouched.
else
echo "@c BIG5 MOE TTF fonts" >> ${PREFIX}/share/texmf/fontname/special.map
echo "moekai big5 moekai" >> ${PREFIX}/share/texmf/fontname/special.map
fi
if [ -n "`grep moesung ${PREFIX}/share/texmf/fontname/special.map`" ]
then
echo Seems moesung already in special.map, file untouched.
else
echo "@c BIG5 MOE TTF fonts" >> ${PREFIX}/share/texmf/fontname/special.map
echo "moesung big5 moesung" >> ${PREFIX}/share/texmf/fontname/special.map
fi
if [ -n "`grep moelishu ${PREFIX}/share/texmf/fontname/special.map`" ]
then
echo Seems moelishu already in special.map, file untouched.
else
echo "@c BIG5 MOE TTF fonts" >> ${PREFIX}/share/texmf/fontname/special.map
echo "moelishu big5 moelishu" >> ${PREFIX}/share/texmf/fontname/special.map
fi
# ttf2pk/ttfonts.map
if [ -n "`grep moekai ${PREFIX}/share/texmf/ttf2pk/ttfonts.map`" ]
then
echo Seems moekai already in ttfonts.map, file untouched.
else
echo "moekai@Big5.sfd@ moe_kai Pid=3 Eid=4" >> ${PREFIX}/share/texmf/ttf2pk/ttfonts.map
fi
if [ -n "`grep moesung ${PREFIX}/share/texmf/ttf2pk/ttfonts.map`" ]
then
echo Seems moesung already in ttfonts.map, file untouched.
else
echo "moesung@Big5.sfd@ moe_sung Pid=3 Eid=4" >> ${PREFIX}/share/texmf/ttf2pk/ttfonts.map
fi
if [ -n "`grep moelishu ${PREFIX}/share/texmf/ttf2pk/ttfonts.map`" ]
then
echo Seems moelishu already in ttfonts.map, file untouched.
else
echo "moelishu@Big5.sfd@ moe_lishu Pid=3 Eid=4" >> ${PREFIX}/share/texmf/ttf2pk/ttfonts.map
fi
# web2c/texmf.cnf
if [ -n "`grep TTF2PKINPUTS ${PREFIX}/share/texmf/web2c/texmf.cnf`" ]
then
echo Seems TTF2PKINPUTS already set in texmf.cnf, file untouched.
else
echo "% ttf2pk data directory" >> ${PREFIX}/share/texmf/web2c/texmf.cnf
echo "TTF2PKINPUTS = \$TEXMF/ttf2pk//" >> ${PREFIX}/share/texmf/web2c/texmf.cnf
fi
if [ -n "`grep TTF2TFMINPUTS ${PREFIX}/share/texmf/web2c/texmf.cnf`" ]
then
echo Seems TTF2TFMINPUTS already set in texmf.cnf, file untouched.
else
echo "% ttf2tfm data directory" >> ${PREFIX}/share/texmf/web2c/texmf.cnf
echo "TTF2TFMINPUTS = \$TEXMF/ttf2tfm//" >> ${PREFIX}/share/texmf/web2c/texmf.cnf
fi
# tex/latex/CJK/Bg5/c00kai.fd
if [ -n "`grep moekai ${PREFIX}/share/texmf/tex/latex/CJK/Bg5/c00kai.fd`" ]
then
echo Seems moekai already in c00kai.fd, file untouched.
else
(cd ${PREFIX}/share/texmf/tex/latex/CJK/Bg5;
cp c00kai.fd c00kai.fd.orig;
sed -e "s/b5ka12/moekai/" c00kai.fd.orig > c00kai.fd;
)
fi
# tex/latex/CJK/Bg5/c00song.fd
if [ -n "`grep moesung ${PREFIX}/share/texmf/tex/latex/CJK/Bg5/c00song.fd`" ]
then
echo Seems moesung already in c00song.fd, file untouched.
else
(cd ${PREFIX}/share/texmf/tex/latex/CJK/Bg5;
cp c00song.fd c00song.fd.orig;
sed -e "s/CJKsub \* kai\/m\/n/CJK \* moesung/" c00song.fd.orig > c00song.fd;
mv c00song.fd c00song.fd.tmp;
sed -e "s/CJKsub \* kai\/bx\/n/CJKb \* moesung/" c00song.fd.tmp > c00song.fd;
rm c00song.fd.tmp;
)
fi
rm ${PREFIX}/share/texmf/tex/latex/CJK/Bg5/c00lishu.fd.orig
# Generate tfm fonts for moekai/moesung/moelishu.
texconfig rehash # Update ls-R
mkdir -p ${VARTEXFONTS}/tfm/moe/moekai ${VARTEXFONTS}/tfm/moe/moesung ${VARTEXFONTS}/tfm/moe/moelishu
(cd ${VARTEXFONTS}/tfm/moe/moekai; ttf2tfm moe_kai -P 3 -E 4 moekai@Big5@)
(cd ${VARTEXFONTS}/tfm/moe/moesung; ttf2tfm moe_sung -P 3 -E 4 moesung@Big5@)
(cd ${VARTEXFONTS}/tfm/moe/moelishu; ttf2tfm moe_lishu -P 3 -E 4 moelishu@Big5@)
# Update ${TEXMF} tree
texconfig rehash
# Messages to the user
echo "----------------------------------------------------------------------"
echo "CJK is now installed. Here are final notes for BIG5 users:"
echo
echo "Use 'bg5latex' instead of 'latex'. You may run 'bg5latex Big5.tex'"
echo "to check its output. CJK.doc & commands.doc are good starting"
echo "points."
echo
echo "FYI, moe_kai.ttf has some characters lost. These includes:"
echo " 0xb9a6 0xbcb5 0xd974 0xdb57 0xdd7c 0xe0b5 0xe2e9 0xe351"
echo " 0xe3c4 0xe5bf 0xe5c1 0xe7ec 0xec52 0xf374 0xf6dd"
echo
echo "Numerous characters are not available in moe_lishu.ttf. It's"
echo "included only for reference."
echo
echo "But moe_sung.ttf has these all. :)"
echo
echo "Thanks to Clem Chuang <b5506056@csie.ntu.edu.tw> for this info."
echo
echo "Happy CJKing!"
echo "----------------------------------------------------------------------"