如何使用Rmarkdown-PDF更改字体样式的字体,已发送错误:“未能找到包含Times New Roman的软件包”

时间:2019-04-26 15:56:12

标签: latex markdown r-markdown pdflatex xelatex

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

function createTable (tableData) { const table = document.createElement('table').appendChild( tableData.reduce((tbody, rowData) => { tbody.appendChild( rowData.reduce((tr, cellData) => { tr.appendChild( document .createElement('td') .appendChild(document.createTextNode(cellData)) ) return tr }, document.createElement('tr')) ) return tbody }, document.createElement('tbody')) ) document.body.appendChild(table) } createTable([ ['row 1, cell 1', 'row 1, cell 2'], ['row 2, cell 1', 'row 2, cell 2'] ])

我已经尝试过这些代码

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

font-family: Times New Roman

mainfont: Times New Roman

但是这些代码都不起作用。

谢谢!

1 个答案:

答案 0 :(得分:0)

如@RalfStubner所述,您可以使用TeX Gyre Termes嵌入Times New Roman之类的字体。

安装tex-gyre

要使用TeX Gyre Termes,您需要从CTAN安装tex-gyre软件包。如果您已安装@Yihui的TinyTeX,请在R控制台中键入以下代码。

tinytex::tlmgr_install("tex-gyre")

上面的代码等同于在bash中执行下面的代码。

tlmgr install tex-gyre

提供.tex文件以指定所需的字体

在YAML标头中设置mainfont:也应该起作用。但是,这里我展示了如何通过在YAML部分中包含一个.tex文件(例如说font-config.tex)来设置字体。通过font-config.tex文件,您可以配置更详细的选项,例如Scale=MatchUppercase

在以下font-config.texTeX Gyre Termes Times New Roman 中将其设置为主字体(\rmfamily)和TeX Gyre Heros,因此称为 Helvetica Arial 的字体被指定为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

在YAML标头中包含font-config.tex

您可以从YAML标头中调用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.