Markdown编写文章,使用Pandoc生成Word文件,调整格式,输出PDF。

与本方案类似,可参照博客:

https://www.trickyedecay.me/2020/08/04/use-pandoc-to-convert-markdown-to-docx/#%E4%B8%80%E3%80%81%E6%9C%80%E7%AE%80%E5%8D%95%E7%9A%84%E6%96%B9%E6%A1%88

Markdown文件添加配置

Md文档头部添加YAML配置:

作者关键词日期摘要引用Bib文件和样式(这里采用的是国标样式

---
title: Experiment 8:HBase Shell and Java API
 author:
  - 张一鸣
 - 3019234068
keywords: [Hadoop, HBase, ZooKeeper]
date: May, 4, 2022
bibliography: biblio.bib
csl: /Users/gakki/Documents/project/styles/chinese-gb7714-2005-numeric.csl
abstract: |
Abstract:
The construction of HBase Environment, and running JAVA API Examples.
 ---

变量文件统一存储在 /Users/gakki/variables.yaml ,元数据配置统一存储在 /Users/gakki/metadata.yaml.

样式文档在 `/Users/gakki/templ.docx `

使用pandoc命令生成Word文档:

pandoc --filter mermaid-filter --filter pandoc-crossref \
-d "/Users/gakki/variables.yaml" --metadata-file="/Users/gakki/metadata.yaml" \
--citeproc --reference-doc "templ_bigdata.docx" \
实验八-HBase.md -o ./PDF/Hadoop8.docx

过滤器

mermaid

使用mermaid-filter 能为mermaid生成图片,使用方式如下:

```{.mermaid #fig:Jupyterla caption="Jupyter记事本分配图"}
graph TD
A[Master]-->D[Jupyter I]
B[Slave1]-->E[Jupyter II]
C[Slave2]-->F[Jupyter III]
```

在这里添加标题 caption="Jupyter记事本分配图" ,并添加图片索引 #fig:Jupyterla

crossref

使用交叉索引可以将Md文档中的章节、图片、表格、代码块加上索引标识,并按章节编号,输出标题。

具体见官方文档 http://lierdakil.github.io/pandoc-crossref/

  • 章节:
# 第一章 {#sec:section1}

如[@sec:section1]所示,...
  • 图片:
![图片标题](./assets/pic.png){#fig:figure1}

如[@fig:figure1]所示,...
  • 表格:
| 姓名   | 服务器        | 端口号 | VPN账户   | VPN密码     | 集群节点                                         | VPS账户 | VPS密码    |
| ------ | ------------- | ------ | --------- | ----------- | ------------------------------------------------ | ------- | ---------- |
| 曲嘉伟 | 211.81.51.133 | 1030   | bduser061 | Huawei1234@ | c07,172.18.3.7; c08,172.18.3.8;  c09,172.18.3.9; | root    | Huawei1234 |
| 张一鸣 | 211.81.51.133 | 1030   | bduser062 | Huawei1234@ | c07,172.18.3.7;  c08,172.18.3.8; c09,172.18.3.9; | root    | Huawei1234 |
| 崔兴   | 211.81.51.133 | 1030   | bduser063 | Huawei1234@ | c07,172.18.3.7;  c08,172.18.3.8; c09,172.18.3.9; | root    | Huawei1234 |
| 徐冕   | 211.81.51.133 | 1030   | bduser064 | Huawei1234@ | c07,172.18.3.7;  c08,172.18.3.8; c09,172.18.3.9; | root    | Huawei1234 |
| 马子航 | 211.81.51.133 | 1030   | bduser065 | Huawei1234@ | c07,172.18.3.7;  c08,172.18.3.8; c09,172.18.3.9; | root    | Huawei1234 |

: 登录信息表 {#tbl:rowde}
  • 代码块:
```python
a=1+1
print(a)
```

: 程序1 {#lst:program1}

如[@lst:program1]所示,...

引用文献

需要有 $\LaTeX$ 环境,我使用MacOS上的 LaTeX Workshop环境。

引用文献存储在 ./biblio.bib 下:

@webpage{hadoop-forget,
    date-added = {2022-04-26 23:33:54 +0800},
    date-modified = {2022-04-26 23:34:36 +0800},
    title = {无法停止hadoop集群(stop-all.sh)},
    url = {https://markix.blog.csdn.net/article/details/85849326?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&utm_relevant_index=2}}

@webpage{cite2,
    date-added = {2022-04-26 20:58:43 +0800},
    date-modified = {2022-04-26 21:04:26 +0800},
    keywords = {Markdown, LaTeX, Pandoc, .bib},
    title = {Markdown、.bib、LaTeX + Typora、Pandoc 管理论文参考文献},
    url = {https://blog.csdn.net/qq_39564555/article/details/112496861},
    bdsk-url-1 = {https://blog.csdn.net/qq_39564555/article/details/112496861}}

在Markdown文档中引用时,直接输入:

如[@hadoop-forget]所示,...

在 $\LaTeX$ 文档中引用时,输入:

\cite{hadoop-forget}