【问题标题】:Pandoc: Change font family to sans while converting from Markdown to HTMLPandoc:从 Markdown 转换为 HTML 时将字体系列更改为 sans
【发布时间】:2020-11-27 07:50:46
【问题描述】:

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

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 包之后)。我能找到的最接近的答案是this one

我试图只在 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

基于mb21's answer,由于Pandoc 1.12.x (source) 可以向Pandoc 提供更多元数据,添加a YAML block code

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

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

我仍然看不出从 Markdown 代替 LaTeX 和使用 HTML 代替 PDF 在这方面的根本区别。

【问题讨论】:

    标签: html command-line markdown pandoc font-family


    【解决方案1】:

    更新:这在 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

    【讨论】:

      【解决方案2】:

      基于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 在同一在线命令上提供整个样式。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-26
        • 2013-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-23
        • 2014-06-01
        • 1970-01-01
        相关资源
        最近更新 更多