Pandoc:在从 Markdown 转换为 HTML 时将字体系列更改为 sans

Pandoc: Change font family to sans while converting from Markdown to HTML

我成功地得到了一个漂亮的格式化文本,我可以使用以下方法粘贴到任何地方:

cat myFile.md | pandoc -s -f markdown -t html | xclip -selection clipboard -t text/html

xclip 是 X 选择(剪贴板)的命令行界面。使用 ... -t html -o myFile.html 也能正常工作。

我正在尝试更改字体系列,从默认的 Serif 字体系列更改为其他 Sans-serif 字体系列。我找到了很多 LaTex、PDF 和 DOC 示例,但没有一个适用于这种情况。尝试了很多字体(从 fc-list : family 中列出,即使在安装 texlive-xetex 包之后也是如此)。我能找到的最接近的答案是 .

我试图在 CLI 上只使用某些参数,试图避免像 --css source/styles.css.

这样的事情

在 Ubuntu 18.04.

上使用 pandoc 1.19.2.4

有些--variable我试过了:

-V fontfamily:arev
-V fontfamily:Ubuntu
-V fontfamilyoptions:sfdefault
-V "mainfont:DejaVuSans"
-V mainfont="DejaVu Sans Serif"
-V "sansfont:DejaVuSans"

编辑 1:

基于, since Pandoc 1.12.x (source) is possible to provide more metadata to Pandoc adding a YAML block code

在较新的 Pandoc 版本中,我还添加了一个标题键以避免出现“[警告] 此文档格式需要一个非空元素。”。

---
title: My File
header-includes: |
  <style>
    body {
      font-family: "Liberation Sans";
    }
  </style>
---

我仍然看不出从 Markdown 而不是 LaTeX 到 HTML 而不是 PDF 在这方面的根本区别。

更新:这在 pandoc 2.11 中是可能的。详情见MANUAL,但例如:

---
mainfont: sans-serif
---

my markdown

旧答案:你说的字体变量只针对LaTeX/PDF输出。要设置 HTML 的样式,您需要 CSS。例如,您可以将其放入降价文件中:

---
header-includes: |
  <style>
    body {
      font-family: sans-serif;
    }
  </style>
---

my markdown

或者您可以:

此外:pandoc 1.19 很古老,请参阅 https://pandoc.org/installing.html

另一种基于 mb21's one 的解决方案是使用单独的 YAML 文件,--metadata-file 选项中包含该代码,例如metadata.yaml.

我提供标题--metadata

cat myFile.md | pandoc -s -f markdown -t html --metadata-file metadata.yaml --metadata title="My File" -o myFile.html

一个metadata.yaml内容示例:

---
header-includes: |
  <style>
    body {
      font-family: "DejaVu Sans";
    }
  </style>
---

AFAIK 无法仅通过 --metadata 在同一个 on-liner 命令上提供整个样式。

将剪贴板转换为格式化呈现文本的另一个非常有用的在线工具是(在 Mac 上使用 pbpaste):

xsel -b | pandoc -s -f markdown -t html | xclip -selection clipboard -t text/html