rmarkdown 文档中的条形码输出

rmarkdown 文档中的条形码输出

我想要一个像这个答案中给出的条形码无法生成 code128 条形码

它还不能与pdflatex引擎一起工作 - 必须将其更改为引擎,并且在 YAML 标头中xelatex完成(希望如此?!)。latex_engine: xelatex

所以我建立了我的放射科文件

---
geometry: paperheight=8cm,paperwidth=12cm,margin=0.5cm
output: pdf_document
    latex_engine: xelatex
fontsize: 10pt
header-includes:
  - \pagenumbering{gobble}
  - \usepackage{pst-barcode,pstricks-add}
params:
  barCodeNumber: 12345678
---

```{=latex}
\psset{unit=1in}
\begin{pspicture}(3.5,1.2)
    \psbarcode{`r params[["barCodeNumber"]]`}{includetext}{code128}
\end{pspicture}
```

但不幸的是它失败了并出现以下错误消息(render("C:/Users/tueftla/R/Test.Rmd") ):

Error in yaml::yaml.load(..., eval.expr = TRUE) : 
Scanner error: mapping values are not allowed in this context at line 3, column 17

我必须更改什么?我必须做哪种更改,才能不显示条形码号码?

任何提示都值得赞赏,并提前致谢。

答案1

您的问题在于 YAML 标头规范。请参阅本节3.3.7.1 LaTeX 引擎)关于如何指定 LaTeX 引擎。具体来说,您需要

output:
  pdf_document:
    latex_engine: xelatex

您缺少pdf_document与其相关的“选项”后面的冒号。

---
geometry: paperheight = 8cm, paperwidth = 12cm, margin = 0.5cm
output:
  pdf_document:
    latex_engine: xelatex
fontsize: 10pt
header-includes:
  - \pagenumbering{gobble}
  - \usepackage{pst-barcode,pstricks-add}
params:
  barCodeNumber: 12345678
---

```{=latex}
\psset{unit=1in}
\begin{pspicture}(3.5,1.2)
    \psbarcode{`r params[["barCodeNumber"]]`}{includetext}{code128}
\end{pspicture}
```

在此处输入图片描述

答案2

仅供参考,这将是从您的 RMD 文件复制的有效 .tex 文件,并使用 XeLaTeX 进行编译:

\documentclass[10pt,a4paper]{article}
\usepackage{pst-barcode,pstricks-add}

\begin{document}
\psset{unit=1in}
\begin{pspicture}(3.5,1.2)
    \psbarcode{`r params[["barCodeNumber"]]`}{includetext}{code128}
\end{pspicture}

\begin{pspicture}(3.5,1.2)
    \psbarcode{12345678}{includetext}{code128}
\end{pspicture}
\end{document}

正如您所见,它按字面意思接受了 3 个参数中的第一个参数:

结果

因此,针对您的问题,关键问题是:

  • 第一个参数 r params[["barCodeNumber"]] 会被替换吗?
  • 如果是,用什么?
  • 以及:为什么你的 R 系统应该(成功)取代它?

如..所示,如果您发布 YAML 文件,那将会很有帮助。

答案3

更好的方法是使用:

  • 使用较新的 Quarto 语法/格式。Xelatex 是此处的默认 LaTeX 引擎,因此至少这是您预先节省的。

  • 尽可能避免复杂的内联 R 代码和复杂的内联 R 输出,您就会很高兴。

平均能量损失

---
format: pdf
geometry:
- margin=0.5cm
- paperheight=8cm
- paperwidth=12cm
header-includes:
- \usepackage{pst-barcode,pstricks-add}
- \pagenumbering{gobble}
params:
  barCodeNumber: 12345678
---

```{r}
#| echo: false

x <- params$barCodeNumber

```

```{=latex}
\psset{unit=1in}
\begin{pspicture}(3.5,1.2)
\psbarcode{`{r} x`}{includetext}{code128}
\end{pspicture}
```

但是,使用旧版 Rmarkdown 也可以这样做:

---
geometry: paperheight=8cm,paperwidth=12cm,margin=0.5cm
output: 
  pdf_document: 
    latex_engine: xelatex
fontsize: 10pt
header-includes:
  - \usepackage{pst-barcode,pstricks-add}
  - \pagenumbering{gobble}  
params:
  barCodeNumber: 12345678
---


```{r}
#| echo: false

x <- params$barCodeNumber

```


```{=latex}
\psset{unit=1in}
\begin{pspicture}(3.5,1.2)
    \psbarcode{`r x`}{includetext}{code128}
\end{pspicture}
```

相关内容