motchy869
11/25/2019 - 2:42 PM

LaTeXパッケージ自動追加.sh

LaTeXパッケージ自動追加.sh

#!/bin/bash
set -u

if [ ${EUID:-${UID}} -ne 0 ]; then
    echo 'You need to run this script as root.'
    exit
fi

#texmf のパス
texmf_dist=/usr/share/texmf

script_dir_path=$(dirname $(readlink -f $0))
temp_dir=$(mktemp -d)
cd $temp_dir

#algorithms
kpsewhich algorithm.sty
if [ $? -eq 1 ] ; then
	mkdir algorithms
	cd algorithms
	x=http://mirrors.ctan.org/macros/latex/contrib/algorithms/algorithms
	echo ${x}".dtx" > list.txt
	echo ${x}".ins" >> list.txt
	wget -i list.txt
	tex algorithms.ins
	mkdir ${texmf_dist}/tex/generic/algorithms
	cp *.sty ${texmf_dist}/tex/generic/algorithms
	cd ../
fi

#arydshln
kpsewhich arydshln.sty
if [ $? -eq 1 ] ; then
	mkdir arydshln
	cd arydshln
	x=http://mirrors.ctan.org/macros/latex/contrib/arydshln/arydshln
	echo ${x}".dtx" > list.txt
	echo ${x}".ins" >> list.txt
	wget -i list.txt
	tex arydshln.ins
	mkdir ${texmf_dist}/tex/generic/arydshln
	cp *.sty ${texmf_dist}/tex/generic/arydshln
	cd ../
fi

#bbm
kpsewhich bbm.sty
if [ $? -eq 1 ] ; then
	mkdir bbm
	cd bbm
	wget http://mirrors.ctan.org/macros/latex/contrib/bbm.zip
	unzip bbm.zip
	cd bbm
	tex bbm.ins
	mkdir ${texmf_dist}/tex/generic/bbm
	cp *.sty *.fd ${texmf_dist}/tex/generic/bbm/
	mkdir -p ${texmf_dist}/fonts/source/public/bbm
	cp bbm/*.mf ${texmf_dist}/fonts/source/public/bbm
	cd ../../
fi

#cases
kpsewhich cases.sty
if [ $? -eq 1 ] ; then
	wget http://mirrors.ctan.org/macros/latex/contrib/cases/cases.sty -P ${texmf_dist}/tex/generic/cases/
fi

#comment
kpsewhich comment.sty
if [ $? -eq 1 ] ; then
	wget http://mirrors.ctan.org/macros/latex/contrib/comment/comment.sty -P ${texmf_dist}/tex/generic/comment/
fi

#float
kpsewhich float.sty
if [ $? -eq 1 ] ; then
	mkdir float
	cd float
	x=http://mirrors.ctan.org/macros/latex/contrib/float/float
	echo ${x}".dtx" > list.txt
	echo ${x}".ins" >> list.txt
	wget -i list.txt
	tex float.ins
	mkdir ${texmf_dist}/tex/generic/float
	cp *.sty ${texmf_dist}/tex/generic/float
	cd ../
fi

#here.sty
kpsewhich here.sty
if [ $? -eq 1 ] ; then
	wget http://mirrors.ctan.org/macros/latex/contrib/here/here.sty -P ${texmf_dist}/tex/generic/here/
fi

#ifplatform
kpsewhich ifplatform.sty
if [ $? -eq 1 ] ; then
	x=http://mirrors.ctan.org/macros/latex/contrib/ifplatform/ifplatform
	echo ${x}".dtx" > list.txt
	echo ${x}".ins" >> list.txt
	wget -i list.txt
	tex ifplatform.ins
	mkdir ${texmf_dist}/tex/generic/ifplatform
	cp ifplatform.sty ${texmf_dist}/tex/generic/ifplatform/
fi

#indent
kpsewhich indent.sty
if [ $? -eq 1 ] ; then
	wget http://ftp.jaist.ac.jp/pub/CTAN/macros/latex209/contrib/misc/indent.sty -P ${texmf_dist}/tex/generic/indent/
fi

#multirow
kpsewhich multirow.sty
if [ $? -eq 1 ] ; then
	mkdir multirow
	cd multirow
	x=http://mirrors.ctan.org/macros/latex/contrib/multirow/multirow
	echo ${x}".dtx" > list.txt
	echo ${x}".ins" >> list.txt
	wget -i list.txt
	tex multirow.ins
	mkdir ${texmf_dist}/tex/generic/multirow
	cp *.sty ${texmf_dist}/tex/generic/multirow/
	cd ../
fi

#nag
kpsewhich nag.sty
if [ $? -eq 1 ] ; then
	mkdir nag
	cd nag
	x=ftp://ftp.u-aizu.ac.jp/pub/tex/CTAN/macros/latex/contrib/nag/nag
	echo ${x}".dtx" > list.txt
	echo ${x}".ins" >> list.txt
	wget -i list.txt
	tex nag.ins
	mkdir ${texmf_dist}/tex/generic/nag
	cp nag.sty *.cfg ${texmf_dist}/tex/generic/nag/
	cd ../
fi

#siunitx
kpsewhich siunitx.sty
if [ $? -eq 1 ] ; then
	mkdir siunitx
	cd siunitx
	wget http://ftp.jaist.ac.jp/pub/CTAN/macros/latex/contrib/siunitx/siunitx.dtx
	wget http://www.tug.org/texlive//devsrc/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex
	tex siunitx.dtx
	mkdir ${texmf_dist}/tex/generic/siunitx
	cp siunitx.sty siunitx-abbreviations.cfg ${texmf_dist}/tex/generic/siunitx/
	cd ../
fi

#udline
kpsewhich udline.sty
if [ $? -eq 1 ] ; then
	wget https://raw.githubusercontent.com/ychubachi/kakenhi-2013-kiban-c/master/udline.sty
	mkdir ${texmf_dist}/tex/generic/udline
	cp udline.sty ${texmf_dist}/tex/generic/udline/
fi

#以上のファイルを認識させる
mktexlsr

#後始末
trap "
	cd $script_dir_path
	rm -rf $temp_dir
" 0