召集壮士帮忙测试 TinyTeX
- 已编辑
dapengde 应该稍稍再坚持一下就好了,还是之前的思路,凡是字体问题都可以这样搜,然后把相应的包装上,至少可以解决 99% 的字体缺失问题
tlmgr search --file --global "utmri8a.pfb"
tlmgr.pl: package repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet (verified)
times:
texmf-dist/fonts/type1/urw/times/utmri8a.pfb
tlgs.win32:
tlpkg/tlgs/fonts/utmri8a.pfb
tlmgr search --file --global "8r.enc"
tlmgr.pl: package repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet (verified)
context:
texmf-dist/fonts/enc/dvips/context/q-8r.enc
dvips:
texmf-dist/fonts/enc/dvips/base/8r.enc
txfonts:
texmf-dist/fonts/enc/dvips/txfonts/tx8r.enc
此外,我这整理了一个比较小功能又比较全的支持中文的 LaTeX 包的列表 TeXLive.pkgs 你可以都装上试一下,我想里面大多数包你都已经装好了
Cloud2016 这个列表不错!于是我都装了:
link <- 'https://raw.githubusercontent.com/XiangyunHuang/Thesis-Template-Bookdown/master/latex/TeXLive.pkgs'
pkgs <- readLines(link)
for(pkg in pkgs) tinytex::tlmgr_install(pkg)
上面那两个缺失文件是装上了,现在的新问题是找不到 'utmri8a.mf':
name = utmri8a, rootname = utmri8a, pointsize = mktexmf: empty or non-existent rootfile!
kpathsea: Running mktexmf utmri8a.mf The command name is C:\Users\PengZhao\AppData\Roaming\TinyTeX\bin\win32\mktexmf Cannot find utmri8a.mf . I try ps2pk --> gsftopk --> ttf2pk --> hbf2gf. Cannot find utmri8a.tfm .
kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 utmri8a.pfb The command name is C:\Users\PengZhao\AppData\Roaming\TinyTeX\bin\win32\mktexpk kpathsea: Appending font creation commands to missfont.log. xdvipdfmx:fatal: Cannot proceed without .vf or "physical" font for PDF output... Output file removed.
fwrite: Broken pipe xelatex.exe:
Process exited with error(s)
搜一下:
> tinytex::tlmgr_search('utmri8a.tfm')
tlmgr search --file --global "utmri8a.tfm"
tlmgr.pl: package repository http://mirror.informatik.hs-fulda.de/tex-archive/systems/texlive/tlnet (not verified: gpg unavailable)
没找到……
一直都是用TeXLive,最近玩bookdown发现得用TinyTeX,反正硬盘有空间,就让它装着。对于多数情况这个足够了。可惜最近一直被黄大@Cloud2016的那个elegantbook 模板给卡着,原因是elegantbook.cls 用到的字体比较特别。要么要有esint,要么要有mtpro2. 这个esint 不论我是在TeXLive 下或者TinyTeX下都装不到。mtpro2 在TeXLive 下我可以装好,但是不知道怎么给TinyTeX 用,看了谢大@yihui的博客和FAQ,也没有搞懂怎么装。还请谢大,黄大,和各位老师指导!谢谢!
- 已编辑
Fye elegantbook 模板后来没时间搞了,掉了链子,有很多特性还没有搬进来。但是只要把相关的宏包都装上,应该可以跑通,这是 LaTeX 宏包列表 <https://github.com/XiangyunHuang/ElegantBookdown/blob/master/latex/TeXLive.pkgs>
esint 宏包应该有的,我能搜到
tinytex::tlmgr_search('mtpro2.sty')
tlmgr search --file --global "mtpro2.sty"
tlmgr.pl: package repository http://mirror.lzu.edu.cn/CTAN/systems/texlive/tlnet (verified)
> tinytex::tlmgr_search('esint.sty')
tlmgr search --file --global "esint.sty"
tlmgr.pl: package repository http://mirror.lzu.edu.cn/CTAN/systems/texlive/tlnet (verified)
esint:
texmf-dist/tex/latex/esint/esint.sty
你提到的 mtpro2 字体是商业字体,有轻量版 lite 需要自己去下载安装 <https://pctex.com/mtpro2.html>
- 已编辑
Cloud2016 搞定了。AppData/Roaming/TinyTeX 下面有个texmf_local 的文件夹,按照TeXLive 装字体进去就可以了。
esint 的问题不是找不到pacakge 是找不到字。刚搜到原因。最新版的esint把字体删了。要么要把esint倒回去旧的版本1.2b。或者下载字体放到合适的位置。具体可以看缺 TFM 文件:LaTeX 字体包 esint 需从 v1.2c 降级到 v1.2b.
elegantbook 看着确实不错,不过感觉还有不少小的问题,比如titlepage注释掉subtitle就会出错。
bookdown的话做起来也挺费劲儿的,你这个模板我觉目前已经够用了。不过还是期待各位老师能给我们带来更好用的模板。
谢谢黄老师!
Fye titlepackage 不过注释掉subtitle就会出错。
上流开发者可能动了 titlepage 你添加 subparagraph: yes
试试。就是注释掉这一行 https://github.com/XiangyunHuang/ElegantBookdown/blob/76cfa494ae07030317d403f0b3d8d1e17596db9f/index.Rmd#L19
- 已编辑
Fye 怎么安装指定版本的 LaTeX 宏包,我按照上面的提示仍然装不上 esint 字体文件, texhash 也没有用
我运行 elegantbook 官方模板报错,部分信息如下
[13This is METAFONT, Version 2.7182818 (TeX Live 2019/W32TeX) (preloaded base=mf)
(d:/TinyTeX/texmf-dist/fonts/source/public/esint/esint10.mf)
! Emergency stop.
<*> ...\mag:=1+57/600; nonstopmode; input esint10;
Transcript written on esint10.log.
mf-nowin.exe --progname=mf --base=mf \mode:=ljfour; \mag:=1+57/600; nonstopmode; input esint10;
Failed to make gf font by METAFONT.
kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+57/600 --dpi 657 ectt1000
The command name is D:\TinyTeX\bin\win32\mktexpk
kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 0+480/600 --dpi 480 manfnt
The command name is D:\TinyTeX\bin\win32\mktexpk
kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 ectt1000
The command name is D:\TinyTeX\bin\win32\mktexpk
kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 ectt0900
The command name is D:\TinyTeX\bin\win32\mktexpk
kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 0+480/600 --dpi 480 bbding10
The command name is D:\TinyTeX\bin\win32\mktexpk
kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+57/600 --dpi 657 esint10
The command name is D:\TinyTeX\bin\win32\mktexpk
kpathsea: Appending font creation commands to missfont.log.
xdvipdfmx:fatal: Cannot proceed without .vf or "physical" font for PDF output...
No output PDF file written.
fwrite: Broken pipe
xelatex.exe:
最后想吐槽的是为啥要引入商业字体,为啥不把环境打包,为啥不测试,搞的我复现都是很困难的事情,我还怎么去用这个模板
Adobe 阅读器看到 PDF 文档的字体属性中,有这样的东西,这是些什么字体?也是这个文档生成的,当然是在我把 esint 注释掉之后才编译出 PDF
Cloud2016 绝对同意你的看法。 字体真的不应该预先设置好。一方面,用户不一定有。另一方面,即使有,用户也不已经觉得预设的就漂亮。应该是设置推荐字体,用户可以重设的。
esint 宏包的降级, 可以运行 tlmgr restore esint 51679
。具体可以参见这个讨论 version 3.09 corrupts templates / mess up with font maps? #48.
安装esint那个字体,可能需要运行下面这个命令试试 tlgmr install texlive-fonts-recommends
.
具体可以参见 stackExchange 上的讨论 Error in TeX Live – Font … not loadable: Metric (TFM) file not found。