Pandoc:如何在管道表格中添加顶部底部外的水平分隔线
实现贯穿整个表格的水平分隔线的方法
针对你的pandoc 2.9.2.1版本,以下是满足需求的几种实现方式:
1. 管道表格(PDF输出专用)
管道表格本身不支持原生跨列分隔线,但可以插入LaTeX原生命令来实现贯穿整个表格的分隔线,且样式和标题下方的分隔线完全一致:
My first table. | ABC | DEF | GHI | JKL | |:-----:|:-----:|:-----:|:-----:| | 1 | 123 | 456 | 789 | | 2 | 234 | 567 | 890 | | 3 | 345 | 678 | 901 | ```{=latex} \hline
| | 111 | 222 | 333 |
: Foo bar baz quux, mumble blurf.
- `{=latex}`代码块会被pandoc直接转为LaTeX命令,`\hline`是LaTeX表格的默认分隔线,会贯穿整个表格宽度,和标题下方自动生成的分隔线样式完全匹配。 - 注意:这种方法只适用于PDF输出(依赖LaTeX编译),如果需要输出HTML等其他格式,建议用Grid表格。 ## 2. Grid表格(跨格式兼容) Grid表格是pandoc原生支持的表格类型,能直接定义贯穿整个表格的分隔线,而且在不同输出格式下都能正常工作: ```markdown My first table. +-------+-------+-------+-------+ | ABC | DEF | GHI | JKL | +=======+=======+=======+=======+ | 1 | 123 | 456 | 789 | | 2 | 234 | 567 | 890 | | 3 | 345 | 678 | 901 | +-------+-------+-------+-------+ | | 111 | 222 | 333 | +-------+-------+-------+-------+ : Foo bar baz quux, mumble blurf.
- 表格中的
+-------+-------+-------+-------+行在编译时会被转为LaTeX的\hline(PDF)或HTML的表格边框线(HTML),天然实现贯穿整个表格的效果。 - 如果想要中间的分隔线和标题下方的样式完全一致,把中间的
+-------+...+替换成+=======+...+即可。
关于你尝试的EM DASH写法的问题
你用Unicode EM DASH模拟分隔线的方式,本质是把DASH当成了表格一行的单元格内容,pandoc会把每个列里的DASH解析成单独的单元格文本,所以生成的是分段的列内线,而不是贯穿整个表格的分隔线。这种写法不符合pandoc表格的规范,会导致对齐问题,不建议使用。
内容的提问来源于stack exchange,提问作者Robert Dodier
相关产品推荐
相关产品推荐

