因为要维护宏包的原因,有时在外遇到问题,没带电脑无法测试,于是想能否运用手机进行测试呢。
我们知道其实可以在云上测试,比如overleaf上,但国内网络实在有点卡(国内latexstudio准备开始部署国内的了,好了以后就没有网络问题了),
于是想,有没有方法进行在手机上安装环境测试,忽然记起来在zjuthesis好像看到lsq曾做过(https://github.com/TheNetAdmin/zjuthesis/issues/4),于是查找一下并向lsq请教(https://github.com/lsq/lsq.github.com/issues/1)。
经指导和尝试,完成了整个过程如下:
为:手机小米max2,系统miui 10.2,未root(从实践看不影响安装,尽管安装了proot但没用)
用的pp助手下载并安装(这里头软件比较全)
设置termux权限,允许读写手机存储
pkg install texlive
tlmgr install scheme-full (完整安装)
pkg install clang (用于基础c编译)
apt install make (安装make,否则安装cpanm无法编译)(这两步用于解决后面编译时出现的No such file or directory错误。见 termux/termux-packages#979)
pkg install perl (安装perl,若termux没有默认安装的话)
cpan App::cpanminus (便于安装依赖模块,好处见https://wiki.termux.com/wiki/Perl,如果因为缺少YAML安装失败,那么用命令cpan YAML 先安装YAML)
git clone https://github.com/plk/biber.git (下载biber)
cpanm Module::Build (安装依赖文件)
cpanm PAR::Packer (安装依赖文件,如果因为Archive::Zip失败,那么用cpanm Archive::Zip --force强制安装,然后重新安装)
cd biber(进入biber目录)
perl ./Build.PL (利用自动脚本安装,但肯定会有依赖缺乏,出现问题,利用下一步安装依赖。)
apt-get install libxslt-dev
apt-get install libxml2
apt-get install libiconv
apt-get install libiconv-dev
apt-get install libssh
apt-get install libssh-dev
cpanm ExtUtils::LibBuilder --force
cpanm Text::BibTeX --force
cpanm PkgConfig --force
cpanm XML::LibXML
cpanm XML::LibXML::Simple
pkg install openssl
pkg install openssl-dev
pkg install openssl-tool
cpanm LWP::Protocol::https
mv MYMETA.json META.json
mv MYMETA.yml META.yml
./Build installdeps (安装biber需要的依赖)
./Build test
./Build install
cd /storage/emulated/0/a/
latexmk egtest
但会发现texlive中的biblatex与刚编译的最新的biber不能配合。那么还要去biblatex下载最新的biblatex,并安装
cd ~
git clone https://github.com/plk/biblatex.git
cd biblatex
./obuild/build.sh install 3.13 /data/data/com.termux/files/usr/share/texlive/texmf-dist
7.再次测试tex
xelatex egtest
biber egtest
xelatex egtest
成功编译pdf
termux-open ./egtest.pdf
感谢lsq指导,也经过努力搜索,不断尝试编译,最终取得成功,可以实现在手机上测试tex编译,以及维护的宏包,心情瞬间好了起来。
从上述过程看,对于texlive来说,termux已经做了比较好的处理,但问题在于一些程序没有编译附带,比如biber等,这就需要用户自己编译了,而biber作者在biber文档中给出了详细的编译步骤,缺少的其实是编译环境问题,特别是perl的依赖问题比较多,上述大量命令就是为了解决依赖问题,有的不是很好安装,需要强制选项--force
,但总是能够补全环境的,有需要的用户可以尝试一下,enjoy!
https://github.com/TheNetAdmin/zjuthesis/issues/4
https://github.com/lsq/lsq.github.com/issues/1
https://github.com/plk/biber/issues/268