将HTML表格转换为PDF的Pandoc会导致非包装表格

时间:2015-10-27 05:26:27

标签: pandoc

我有一些HTML表格,当用浏览器呈现时通常会被包裹。但是当我尝试使用pdftex转换为pdf时,表格在边缘被截止并且没有被包裹。如何制作pandoc包装HTML表格?

与降价问题不同。这些表格是纯HTML。

1 个答案:

答案 0 :(得分:3)

问题是,如果你想让单元格换行,LaTeX需要明确指定列宽,所以你需要以某种方式手动指定它们(在markdown中你会do this using multiline or grid tables)。

Pandoc的HTML阅读器支持width元素的相对col属性。

pandoc -f html -t latex << EOF
> <table>
>   <colgroup>
>     <col width="10%">
>     <col width="90%">
>   </colgroup>
>   <tr>
>     <td>3476896</td>
>     <td>My first HTML</td>
>   </tr>
> </table>
> 
> EOF

\begin{longtable}[c]{@{}ll@{}}
\toprule
\begin{minipage}[t]{0.09\columnwidth}\raggedright\strut
3476896
\strut\end{minipage} &
\begin{minipage}[t]{0.85\columnwidth}\raggedright\strut
My first HTML
\strut\end{minipage}\tabularnewline
\bottomrule
\end{longtable}

注意LaTeX输出中的\columnwidth

如果您无法控制HTML,则可以编写Pandoc filter来修改文档的AST,并设置一些任意列宽,最多可达100%。也许你也应该恢复this old thread on pandoc-discuss jgm aka fiddlosopher写道:

  

主要原因是表格更复杂,   我们需要有关相对列宽的信息,   这是HTML文档所缺乏的。但我想我是   我们确信我们应该猜测这些。

或者提交feature request来申请。