我正在使用 Markdown 通过 xelatex 和 pandoc 创建 PDF。这是我的命令行:
pandoc -s combined.markdown --from markdown+table_captions+auto_identifiers --filter mermaid-filter.cmd --pdf-engine=xelatex -o combined.pdf
我的文档包含下表:
Table: Groups and Access Rights - Global
| Group Name | Type | Config / Func | Default Act | Reqs | Derog | ADC | Haz | Chg | BS | Risks | MMSP Status |
| :-------------------------- | --------- | --------------- | ----------- | -------- | -------- | -------- | -------- | -------- | ---------- | -------- | ----------- |
| CPxxx Risk Managers | \gls{ps} | X | CPxxx Home | | | | | | | | |
(etc)
它非常宽,所以我想以横向方式呈现它。我尝试使用 {rotating}、{lscape} 和 {pdflscape},但它们都看起来像这样:
有什么办法可以实现这一点吗?这与包裹的顺序有关吗?
答案1
我找到了以下解决方案:
---
title: "Doc-Title"
lang: "de"
colorlinks: true
header-includes:
- |
```{=latex}
\usepackage{pdflscape}
\newcommand{\blandscape}{\begin{landscape}}
\newcommand{\elandscape}{\end{landscape}}
```
...
在您的 markdown 中使用:
\blandscape
|header1|header2|header3|
|:------|:------|------:|
|LINE1 | VAL 1 | 1.00 |
|Line2 | val 2 | 2.07 |
|Line3 | val 3 | 3.14 |
\elandscape
答案2
你可以在 Markdown 中使用 LaTeX 块,但不能在 LaTeX 中使用 markdown。
在 markdown 到 LaTeX 的转换中,命令参数或 LaTeX 环境中的内容会被忽略(另一方面,请注意 Markdown 表已转换为 LaTeX longtable
,在某些情况下无法使用(例如,在两列文档中)。
一种解决方案可能是首先仅导出 Markdown 表,然后\input
在旋转环境中复制并粘贴(或)LaTeX 代码(仅限 longtable)。
另外更方便的是,用Markdown语法来编写嵌套环境:
---
output:
pdf_document: default
header-includes:
- \usepackage{lscape}
---
::::::::{.landscape data-latex=""}
11 12 13
-- -- --
21 22 23
31 32 33
::::::::
删除 LaTeX 输出中不相关的代码,以上内容应等同于:
\documentclass{article}
\usepackage{lscape,longtable,booktabs}
\begin{document}
\begin{landscape}
\begin{longtable}[]{@{}lll@{}}
\toprule
11 & 12 & 13\tabularnewline
\midrule
\endhead
21 & 22 & 23\tabularnewline
31 & 32 & 33\tabularnewline
\bottomrule
\end{longtable}
\end{landscape}
\end{document}