How to change font style font with Rmarkdown-PDF , already sent error : " Failed to find a package that contains Times New Roman"

How to change font style font with Rmarkdown-PDF , already sent error : " Failed to find a package that contains Times New Roman"

这是我的第一份 Markdown 报告,我尝试直接将其写在 PDF 上。我需要使用 Times New Roman 字体,但导出失败:

Package fontspec Error: The font "Times New Roman" cannot be found.

我已经尝试过这些代码

font-family: Times New Roman

mainfont: Times New Roman


header-includes:

- \usepackage{fontspec}

- \setmainfont{Times New Roman}

但其中 none 个代码有效。

谢谢!

正如@RalfStubner 已经提到的,您可以使用 TeX Gyre Termes 来嵌入像 Times New Roman.

这样的字体

安装tex-gyre

为了使用 TeX Gyre Termes,您需要从 CTAN. If you have installed @Yihui's TinyTeX 安装 tex-gyre 包,在 R 控制台输入以下代码。

tinytex::tlmgr_install("tex-gyre")

上面的代码相当于在你的 bash.

中执行下面的代码
tlmgr install tex-gyre

提供 .tex 文件来指定您想要的字体

在 YAML header 中设置 mainfont: 也应该有效。但是,在这里我展示了如何通过将 .tex 文件(例如 font-config.tex 包含到 YAML 部分来设置字体。通过 font-config.tex 文件,您可以配置更详细的选项,如 Scale=MatchUppercase

下面font-config.texTeX Gyre TermesTimes New Roman设置为主要字体(\rmfamily)和TeX Gyre Heros、so-called HelveticaArial 被指定为 san serif 字体 (\sffamily)。将文件保存在当前目录中。

font-config.tex

\usepackage{fontspec}

%rmfamily
\setmainfont[Scale=MatchUppercase]{TeX Gyre Termes} %Times New Roman

%sffamily
\setsansfont[Scale=1]{TeX Gyre Heros} %So called Helvetica, Arial

font-config.tex 包含到 YAML header

您可以从 YAML header 调用 font-config.tex,如下所示。

---
title: "The definitive MWE"
subtitle: "Oh, yeah"
author: "CLR"
output:
  bookdown::pdf_document2:
    number_sections: true
    latex_engine: xelatex #or lualatex
    keep_tex: true
    includes:
      in_header: 
        - font-config.tex
---

*Hellow world!* in Times New Roman.

\textsf{Hellow world!} in Helvetica.