行走江湖的 hithesis 派刀客一般不愿意动 docker 这一兵器。 因为修炼起来面临两大问题:
其一, docker 上不方便安装额外的包。 安装包是有点麻烦,这不可避免。 越是拿来就能用、拿来就好用的东西,改动起来就越是麻烦。 详细方案是首先打开container:
docker run -it --net host dustincys/tinytex-hithesis:latest /bin/sh
然后用tlmgr
安装需要的包:
tlmgr install yourpackage
然后查看container id
docker container ls
然后写入image:
docker commit yourcontainerid tinytex-hithesis:latest
其二, docker 不方便和编辑器结合使用。
解决方案是在系统的路径里设置可执行文件,让编辑器傻了吧唧地发现路径里有可执行的 LaTeX 文件就可以了。
例如,我的$HOME/bin
在路径里,所以生成所有的“傀儡”来骗编辑器的方案如下,
##!/usr/bin/env bash
files=( afm2tfm makeglossaries rungs bibtex makeglossaries-lite simpdftex \
dvilualatex makeindex splitindex dviluatex makejvf teckit_compile dvipdfm \
mendex tex dvipdfmx mf texhash dvipdft mf-nowin texlua dvips mft texluac \
ebb mkindex tlmgr eptex mktexfmt ttf2afm etex mktexlsr ttf2pk euptex \
mktexmf ttf2tfm extractbb mktexpk ttfdump fmtutil mktextfm upbibtex \
fmtutil-sys mptopdf updmap fmtutil-user pbibtex updmap-sys gftodvi pdfetex \
updmap-user gftopk pdflatex updvitomp gftype pdftex updvitype inimf \
pdvitomp uplatex initex pdvitype uplatex-dev kpseaccess pktogf upmendex \
kpsereadlink pktype upmpost kpsestat platex uppltotf kpsewhich platex-dev \
uptex latex pmpost uptftopl latexmk ppltotf wovp2ovf luahbtex ptex \
xdvipdfmx lualatex ptftopl xelatex luaotfload-tool r-pmpost xetex luatex \
r-upmpost )
for filename in ${files[@]}; do
echo -e "##!/usr/bin/env bash \n docker run --rm -i -v \$(pwd):/home/runner dustincys/tinytex-hithesis:latest $filename \$@" > ~/bin/$filename
chmod +x ~/bin/$filename
done