首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用fontspec包时包含tikz块的针织rmarkdown文件

使用fontspec包时包含tikz块的针织rmarkdown文件
EN

Stack Overflow用户
提问于 2019-06-21 21:22:48
回答 1查看 378关注 0票数 0

这是thisthis的后续问题。我正在尝试将一些TikZ代码包含到rmarkdown文件中。first question解决了在节点标签中使用符号的问题,而second question则添加了varwidth而不是minipage环境。

添加fontspec包带来了另一个我似乎无法解决的问题。每当我将包添加到列表中时,就会引发以下错误:

! Fatal Package fontspec Error: The fontspec package requires either XeTeX or (fontspec) LuaTeX. (fontspec)

(fontspec) You must change your typesetting engine to, (fontspec) e.g., "xelatex" or "lualatex"instead of (fontspec) "latex" or "pdflatex".

在前面的回答之后,代码由以下两个文件组成:

  • Title.Rmd
代码语言:javascript
复制
---
title: "Title"
author: "Me"
output:
  bookdown::pdf_document2:
    keep_tex: yes
    latex_engine: xelatex
---


```{tikz tikz-ex, echo=FALSE, fig.cap = "Funky tikz", fig.ext = 'pdf', cache=FALSE, eval=TRUE, engine.opts = list(template = "tikz2pdf.tex")}

图片库{

形状,

}

开始{tikzpicture}

节点stile{

开始{迷你页}{2.5cm}

P

开始{myBullets}

第一项

第二项

结束{myBullets}

结束{minipage}

};

结束{tikzpicture}

代码语言:javascript
复制
  • tikz2pdf.tex
代码语言:javascript
复制
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\usepackage[utf8]{inputenc}
\usepackage[skins]{tcolorbox}
\usepackage{
tikz,
enumitem,
xcolor
}

\usepackage{fontspec} % new adding to previous answers
\setromanfont{Times New Roman}

\begin{document}

\definecolor{BulletsColor}{rgb}{0, 0, 0.9}
\definecolor{myColor}{rgb}{0.98, 0.94, 0.9}
\newlist{myBullets}{itemize}{1}

\setlist[myBullets]{
  label=\textcolor{BulletsColor}{\textbullet},
  leftmargin=*,
  topsep=0ex,
  partopsep=0ex,
  parsep=0ex,
  itemsep=0ex,
  before={\color{BulletsColor}\itshape}
}

\tikzstyle {stile} = [
ellipse,
draw=BulletsColor,
fill=myColor,
thick,
inner sep=0pt,
text centered, 
align=center
]

\begin{preview}
%% TIKZ_CODE %%
\end{preview}

\end{document}

从上面的错误消息中,我了解到我处于pdflatex模式,而fontspec要求我处于xelatexlualatex模式。考虑到我的标题中有latex_engine: xelatex,下面的问题会折磨我:

  • 为什么在头中设置latex_engine: xelatex是不够的?
  • knitr块不关心头中的latex_engine: xelatex吗?如果是这样的话,我该如何解决呢?
  • 我遗漏了什么?

我一直在搜索,其中一个建议(对我来说并不太复杂)是确保全局/项目设置设置为weave rnw files using: knitrTypeset LateX into pdf using: XeLaTex。但是,这并没有真正帮助解决我的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-24 07:36:57

正如在https://stackoverflow.com/a/51143900/8416610中解释的那样,您必须告诉tinytex::latexmk在设置块中使用options(tinytex.engine = 'xelatex')而不是pdflatex

此外,为了与tikz2pdf.tex兼容,您应该更新您的XeTeX:

  • 从包pdftex中删除选项preview
  • 删除包inputenc

有了这些更改,您的文档就适合我了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56710620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档