fgg blog

pipe_table_and_md_to_pdf

Table of Contents

# three steps to produce good format of .pdf from .md

如果你的 markdown 文档不是全英文,如果你的表格是 pipe table 类型(简单来说就是用 “|” 这个符号来围成,洋人就管它叫 pipe table),然后表格中某些格子中的内容特别长,如果寄希望 直接用pandoc 默认命令进行文档格式转换,则大概率不会立即得到“美观”的pdf文档。需要进行一定 的处理:

  1. 放在 md 文档最开头的元数据(meta data):
---
output:
  pdf_document:
    latex_engine: xelatex
    keep_tex: true
    extra_dependencies: ["fontspec"]
header-includes:
  - \usepackage{xeCJK}
  - \usepackage{tabularx}
  - \usepackage{fontspec}
  - \setmainfont{Noto Sans CJK SC}
  - \setmonofont{Noto Sans Mono CJK SC}
---
  1. table_preamble.tex 文件
\usepackage{xeCJK}
\usepackage{tabularx}
  1. 命令行命令
pandoc your_cool.md -o document.pdf --pdf-engine=xelatex --include-in-header=table_preamble.tex

# table format expected

Image 1 Image 2

# table rendering testing

表1: 测试表1 (pipe table syntax)

|       | time       | describe                                                                            | s2c | w2c |
| --    | ----       | -------                                                                             | --  | --  |
| 80891 | 2022-03-21 | xx区xxxxxxxxx南路南十三巷6号旁,一暗渠直排污水至雨水沟,水质浑浊,气味难闻,底部... | H   | L   |
| 9191  | 2020-10-07 | 河段康陂路5号往上游900米河床有漂浮物,排出污水                                       | H   | L   |
| 765   | 2022-05-10 | 蔗基水闸口有大量漂浮物和死鱼                                                        | L   | H   |
timedescribes2cw2c
808912022-03-21xx区xxxxxxxxx南路南十三巷6号旁,一暗渠直排污水至雨水沟,水质浑浊,气味难闻,底部…HL
91912020-10-07河段康陂路5号往上游900米河床有漂浮物,排出污水HL
7652022-05-10蔗基水闸口有大量漂浮物和死鱼LH

表2: 测试表2 (tabularx table syntax)

\begin{tabularx}{\textwidth}{|X|X|X|}
\hline
Header 1 & Header 2 & Header 3 \\
\hline
Long content that should wrap & 非常长的一段话 非常长的一段话 非常长的一段话 非常长的一段话 非常长的一段话 非常长的一段话 南路南十三巷6号旁,一暗渠直排污水至雨水沟,水质浑浊,气味难闻,底部...  & More content \\
\hline
\end{tabularx}

\begin{tabularx}{\textwidth}{|X|X|X|} \hline Header 1 & Header 2 & Header 3 \ \hline Long content that should wrap & 非常长的一段话 非常长的一段话 非常长的一段话 非常长的一段话 非常长的一段话 非常长的一段话 南路南十三巷6号旁,一暗渠直排污水至雨水沟,水质浑浊,气味难闻,底部… & More content \ \hline \end{tabularx}