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 可能被墙了。

                    谢谢!

                      yihui Windows 系统用了代理,安装 Tinytex 大概花了 20 分钟。可以正常编译

                        yihui 试了一下手机用移动网络能访问 yhui.org 这个链接的zip。正巧大约一月前用家里宽带重装的 TinyTeX,也是慢的要死(具体时间记不清楚了,绝对大于十分钟),因为当时不着急用,所以也没管那么多,随他慢慢装。
                        话说别人的我不清楚, yhui. org 我这里一直可以直接访问,应该是没墙。只不过加载慢点而已。