Pandoc 的默认 latex 输出非常适合我的用例,但我希望正文分为两列。我尝试编辑使用 生成的默认模板pandoc -D latex
,将前言更新为:
...
\usepackage{pgfpages, multicol}
\setbeamertemplate{caption}[numbered]
\setbeamertemplate{caption label separator}{: }
...
并将主要部分改为:
...
$if(has-frontmatter)$
\mainmatter
$endif$
\begin{multicols}{2}
$body$
\end{multicols}
...
但这让我出现以下错误:
Error producing PDF.
! LaTeX Error: Environment multicols undefined.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.79 \begin{multicols}
我尝试使用以下命令验证环境名称:
\documentclass[a4paper]{article}
\usepackage{multicol,lipsum}
\begin{document}
\begin{multicols}{2}
\lipsum
\end{multicols}
\end{document}
并且运行正常,但我对 Latex 或 Pandoc 不够熟悉,因此无法真正了解为什么muilticols
编辑 pandoc 模板时环境未定义。有人知道这是怎么回事吗?
答案1
您不需要multicol
两列文档,最好使用twocolumn
不会出现浮点问题的选项。
不幸的是,markdown 表被导出为长表,而不是浮点数,更糟糕的是,正如您所发现的,它们不能在多列或双列选项中使用。
但是,如果没有过滤器或扩展,使用 Quarto markdown(使用扩展保存 MWE .qmd
),您可以使用这些解决方法,每个解决方法都有其缺点:
---
format: pdf
keep-tex: true
classoption: twocolumn
include-in-header:
- text: \usepackage{lipsum}
---
See @tbl-foo and Table \ref{tbl-x} and @tbl-lt
# Option: Insert true LaTeX tabulars
\lipsum[1][1-3]
::: {#tbl-foo tbl-pos="h"}
```{=tex}
\begin{tabular}{|cc|}
a & b \\
\end{tabular}
```
This is the caption
:::
# Option: R/phyton generated tables
\lipsum[2][1-3]
```{r}
#| results: asis
#| echo: false
#| tbl-cap: This is a xtable
df <- data.frame(Foo=c(1,2,3),Bar=c("foo","bar","baz"))
library(xtable)
print(xtable(df, label="tbl-x"), floating=T, comment=F, table.placement = "h")
```
# Option 4: Redefine longtable
\lipsum[3][1-3]
```{=tex}
% of course, better in the preamble
\makeatletter
\let\oldlt\longtable
\let\endoldlt\endlongtable
\def\longtable{\@ifnextchar[\longtable@i \longtable@ii}
\def\longtable@i[#1]{\begin{table}[h]
\onecolumn
\begin{minipage}{.5\textwidth}
\oldlt[#1]
}
\def\longtable@ii{\begin{table}
\onecolumn
\begin{minipage}{.5\textwidth}
\oldlt
}
\def\endlongtable{\endoldlt
\end{minipage}
\twocolumn
\end{table}
}
\makeatother
```
| Col1 | Col2 | Col3 |
|------|------|------|
| foo | bar | baz |
| tic | tac | toe |
: This is the caption {#tbl-lt}
\lipsum[4-7]