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

Pandoc converting HTML tables to PDF results in non-wrapped tables

我有一些 HTML 表格,在使用浏览器呈现时看起来通常是环绕的。但是当我尝试使用 pdftex 转换为 pdf 时,表格的边缘被截断并且没有换行。如何让 pandoc 包装 HTML 表?

和markdown问题不一样。表格是纯 html.

问题是,如果您希望单元格换行,LaTeX 需要明确指定列宽,因此您需要以某种方式手动指定这些列宽(在 markdown 中您会 do this using multiline or grid tables)。

Pandoc 的 HTML Reader 支持 col 元素上的相对 width 属性。

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 that modifies the document's AST and sets some arbitrary column widths that add up to 100%. Maybe you should also revive this old thread on pandoc-discuss,其中 jgm aka fiddlosopher 写道:

The main reason is that with more complex tables, we need information about relative column widths, which the HTML document lacks. But I think I'm becoming convinced that we should just guess at these.

或提交 feature request 申请。