Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有大都市主题的rmarkdown幻灯片中的字体问题_R_R Markdown_Pandoc_Xelatex - Fatal编程技术网

带有大都市主题的rmarkdown幻灯片中的字体问题

带有大都市主题的rmarkdown幻灯片中的字体问题,r,r-markdown,pandoc,xelatex,R,R Markdown,Pandoc,Xelatex,我正在使用rmarkdown软件包制作带有大都会主题的PDF幻灯片。最近,我注意到方程开始出现不同的情况——它们使用不同的字体 *.Rmd文件的最小示例: --- output: beamer_presentation: theme: "metropolis" latex_engine: xelatex keep_tex: true --- ## Problem with font $$f(x_i\mid\mu,\sigma^2) = \exp\left\{-\f

我正在使用
rmarkdown
软件包制作带有大都会主题的PDF幻灯片。最近,我注意到方程开始出现不同的情况——它们使用不同的字体

*.Rmd
文件的最小示例:

---
output: 
  beamer_presentation:
    theme: "metropolis"
    latex_engine: xelatex
    keep_tex: true
---

## Problem with font
$$f(x_i\mid\mu,\sigma^2) = \exp\left\{-\frac{(x_i-\mu)^2}{2\sigma^2}\right\}$$
在RStudio中编织时,可产生:

这与使用Xeletex直接在LaTeX中编译同一张幻灯片时获得的结果不同:

\documentclass{beamer}
\usetheme{metropolis}

\begin{document}

\begin{frame}{Problem with font}

\[f(x_i\mid\mu,\sigma^2) = \exp\left\{-\frac{(x_i-\mu)^2}{2\sigma^2}\right\}\]

\end{frame}

\end{document}
产生:

这看起来差别不大,但在其他等式中,缺少了一些特殊字符,字体大小略有不同,影响了幻灯片的整体布局

经过一些调查,发现注释掉
rmarkdown
生成的tex文件中的这两行会使它变得更好:

  %\usepackage{unicode-math}
  %\defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
unicode数学包是(唯一)罪魁祸首吗?如何解决此问题并确保Metropolis使用正确的字体,而无需手动更改tex文件

提前感谢您的帮助

系统配置:

  • RStudio 1.2.1335
  • R降价1.15
  • pandoc 2.3.1(通过RStudio)
  • 1.2
  • 4.3
  • XeTeX 3.14159265-2.6-0.99991(TeX Live 2019)

    • 您看到的确实是unicode数学包的效果。有一种简单的方法可以解决这个问题,强制pandoc使用mathspec包。这可以通过在元数据中设置
      mathspec:true
      来实现

      ---
      mathspec: true
      output: …
      ---
      
      或者在调用pandoc时设置相应的变量

      ---
      output: 
        beamer_presentation:
          theme: "metropolis"
          latex_engine: xelatex
          pandoc_args: ["--variable=mathspec"]
      ---
      
      两者之间只有一个微小的、非常微妙的、几乎无关紧要的区别。我建议使用第一个版本,因为它更简单


      请参阅TeX StackExchange以了解。

      似乎出于某种原因,rmarkdown设置了pandoc
      mathspec
      变量?试着把它弄乱。我在默认模板(
      pandoc-dletex
      )中搜索了
      unicode数学
      ,结果。。。谢谢你的反馈。强制pandoc使用mathspec包解决了问题,正如@tarleb在下面建议的那样。这解决了我的问题,非常感谢!(我不知道unicode math和mathspec之间的差异。)