dapengde 我搞不定了,一直重复不出来你的错误,我建议你只装一个 TinyTeX 然后专注在这个上面测试你的模板,遇到问题实在搞不定了,就吼 yihui

    dapengde 在用 R Markdown 的时候基本上不太可能需要用到 tlmgr_search(),因为这是 tinytex 会自动执行的事情。如果它自动找都找不到的话,那手动找应该也是找不到的。

    utmri8a 应该是跟 times 包有关。

    另外 tlmgr_install() 已经向量化了,tinytex::tlmgr_install(pkgs) 即可,不需要循环。

    TinyTeX 搞不定的 LaTeX 问题可能说明模板不太具备可移植性(比如写死了字体为宋体之类的)。

    1 年 后

    一直都是用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
        我记得tinytex可以自己搜索和安装缺少的latex包,这个是啥问题?

        • Fye 回复了此帖

          Cloud2016 搞定了。AppData/Roaming/TinyTeX 下面有个texmf_local 的文件夹,按照TeXLive 装字体进去就可以了。

          esint 的问题不是找不到pacakge 是找不到字。刚搜到原因。最新版的esint把字体删了。要么要把esint倒回去旧的版本1.2b。或者下载字体放到合适的位置。具体可以看缺 TFM 文件:LaTeX 字体包 esint 需从 v1.2c 降级到 v1.2b.

          elegantbook 看着确实不错,不过感觉还有不少小的问题,比如titlepage注释掉subtitle就会出错。
          bookdown的话做起来也挺费劲儿的,你这个模板我觉目前已经够用了。不过还是期待各位老师能给我们带来更好用的模板。😄

          谢谢黄老师!

            tctcab 不是缺少LaTeX 包,是字体找不到。mtpro2 是要购买的,不过lite版其实用着也够。😄
            LaTeX 字体的安装说简单也简单,实际对于新手还是有点复杂。我刚才是没有理解透彻 TinyTeX 的文件结构。现在已经手动装了两个字体,可以编译通过了。

            Cloud2016 titlepage 的问题不是bookdown 模板的问题,是elegantbook.cls 自己的问题。一个解决办法就是修改class 文件。不改的话,在LaTeX下面可以把\maketitle 注释掉,自己设计titlepage。不知道bookdown 是不是也可以。

              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:
              • Fye 回复了此帖

                Cloud2016 我是运行 mktexlsr, 然后 updmap-sys ,最后在运行一次mktexlsr. 可以直接双击bin 里面这个两个文件运行。

                我也试了一下elegantbook 的官方模板,也有错误,不过跟你的不一样。

                  Fye 我试了,仍然没有 work 我放弃了,我看到最新的 elegantbook 模板最近又有很大变动,搞 LaTeX 的人太会在字体、版面上精雕细琢了,我目前无此精力跟着继续搞。以后闲下来也许会搞搞

                  • Fye 回复了此帖

                    最后想吐槽的是为啥要引入商业字体,为啥不把环境打包,为啥不测试,搞的我复现都是很困难的事情,我还怎么去用这个模板

                    • Fye 回复了此帖

                      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

                      Cloud2016 刚从elegantbook 作者处得知,esint 宏包更新了 (最新的是1.2d)。你可以更新一下宏包,看看还有没有问题。我提了字体的建议,作者似乎不打算更改现在的设置。

                        1 年 后

                        我又要来摇晃一下这一栋超级高楼了(已经盖到快两百层了)。这一周我不眠不休集中精力干了一件事,就是把 TinyTeX 的预编译版公开放出来了:https://github.com/yihui/tinytex-releases 这主要是得到了 TeX Live 的带头大哥的书面许可,他突然告诉我可以提供 TinyTeX 的预编译版。没了许可证的忧虑之后,这事就容易多了。

                        三种主流操作系统都支持,这下安装 TinyTeX 的速度应该可以快一倍了。最重要的是,我提供的这些预编译版本都是保证可用的,通过了一些基本的 R Markdown 文档编译测试之后才发布出来。这下解决了 TinyTeX 中最大的坑:https://d.cosx.org/d/421490

                        接下来我需要壮士们帮忙测试一下:

                        remotes::install_github('yihui/tinytex')
                        # 先重启 R 再跑下一行代码
                        tinytex::install_tinytex()

                        如果系统是 Windows/macOS/Linux 的话,上面的代码会安装预编译版的 TinyTeX;否则会从用源代码的方式安装 TinyTeX。如果有人用 FreeBSD 或 Solaris(除了 Ripley 大人,世上还有人用这个操作系统吗),请帮忙试试能否安装成功。

                        装完后编几个 R Markdown 试试看,我打包的这个版本包含了编译普通 R Markdown 文档和 bookdown 项目所需的 LaTeX 包,所以理论上不需要额外安装包就可以编出 PDF 来。如果需要额外安装,那 tinytex 也会自动搞定。

                        我唯一的担忧是国内最近好像开始屏蔽 Netlify 了,而这些最新预编译版本都用了 Netlify 的重定向服务,比如 https://yihui.org/tinytex/TinyTeX.zip 重定向到了我在 AppVeyor 上预编译出来的包。AppVeyor 应该没有被墙,但 yihui.org 可能被墙了。

                        谢谢!