Pandoc 为我创建了一个宽度为 33% 的 table,为什么?

Pandoc creates me a table of width 33%, why?

降价:

| Symbol | Beschreibung |
|--------|--------------|
| ![Erfolgskriterium erfüllt](/assets/reports/audit/signal_ok.jpg) | Wenn ein Erfolgskriterium erfüllt ist, so wurden bei den Tests alle gefundenen Fälle richtig umgesetzt gefunden. Keine weiteren Massnahmen sind nötig. |
| ![Erfolgskriterium nicht erfüllt](/assets/reports/audit/signal_not_ok.jpg) | Wenn ein Erfolgskriterium nicht erfüllt ist, so wurden bei den Tests Fälle gefunden, die das Kriterium nicht in der verlangten Art und Weise erfüllen. Beispiele für Probleme werden aufgeführt. Nötige Massnahmen werden aufgeführt oder es wird zu weiterführenden Quellen verwiesen. |

结果:

<table style="width:33%;">
  <caption>Bewertungen und Symbole</caption>
  <colgroup>
    <col width="12%">
    <col width="20%">
  </colgroup>
<thead>
...

我希望 table 默认具有自动宽度。如何实现?

来自管道表上的Pandoc README

If a pipe table contains a row whose printable content is wider than the column width (see --columns), then the cell contents will wrap, with the relative cell widths determined by the widths of the separator lines.

markdown 的想法是让它在源代码中也看起来不错,例如,对于多行表格,您也可以控制列宽:

---------------------------------------------------------------
Symbol                   Beschreibung
------                   ---------------
![Erfolgskriterium       Wenn ein Erfolgskriterium erfüllt
erfüllt][ok]             ist, so wurden bei den Tests alle
                         gefundenen Fälle richtig umgesetzt
                         efunden. Keine weiteren Massnahmen
                         sind nötig.

![Erfolgskriterium       Wenn ein Erfolgskriterium nicht
nicht erfüllt][not_ok]   erfüllt ist, so wurden bei den Tests
                         Fälle gefunden, die das Kriterium
                         nicht in der verlangten Art und Weise
                         erfüllen. Beispiele für Probleme
                         werden aufgeführt. Nötige Massnahmen
                         werden aufgeführt oder es wird zu
                         weiterführenden Quellen verwiesen.
---------------------------------------------------------------

[ok]:     /assets/reports/audit/signal_ok.jpg
[not_ok]: /assets/reports/audit/signal_not_ok.jpg

如果您真的非常不想要列宽,则必须使用简单的表格,但它们不允许多行文本。或者写一个 pandoc 过滤器来删除宽度。

I'd like to have a table with auto width by default. How can this be achieved?

增加header行和内容行之间的分隔线的宽度。

Pandoc Manual: pipe_tables section 仅简要提及 table 分隔线如何影响相对列宽。

If a pipe table contains a row whose printable content is wider than the column width (see --columns), then the cell contents will wrap, with the relative cell widths determined by the widths of the separator lines.

通过实验,可以发现分隔线的 宽度 也会影响整体 table 宽度。

在我的例子中(pandoc 1.19.1),下面的降价使整体分隔线宽度比上面的问题示例增加了......

| Symbol | Beschreibung |
|----------------------|------------------------------------------------------------------|
| ![Erfolgskriterium erfüllt](/assets/reports/audit/signal_ok.jpg) | Wenn ein Erfolgskriterium erfüllt ist, so wurden bei den Tests alle gefundenen Fälle richtig umgesetzt gefunden. Keine weiteren Massnahmen sind nötig. |
| ![Erfolgskriterium nicht erfüllt](/assets/reports/audit/signal_not_ok.jpg) | Wenn ein Erfolgskriterium nicht erfüllt ist, so wurden bei den Tests Fälle gefunden, die das Kriterium nicht in der verlangten Art und Weise erfüllen. Beispiele für Probleme werden aufgeführt. Nötige Massnahmen werden aufgeführt oder es wird zu weiterführenden Quellen verwiesen. |

…生成如下htmltable…

<table>
  <colgroup>
    <col style="width: 25%" />
    <col style="width: 74%" />
  </colgroup>
<thead>
<tr class="header">
  <th>Symbol</th>
  <th>Beschreibung</th>
</tr>

… table 本身没有宽度限制。

结果 table,在这种情况下,跨越 window。而且,随着 window 宽度的变化,列内容可以很好地回流。

你可能会讨厌我。但是为什么不使用 javascript 删除 <colgroup>

这不是真正干净的方法,但在您强迫自己更改 table 样式之前,这可能会产生您不想要的其他副作用,使用这个简单的解决方案也可以。

而且它不会*用繁重的 table 语法来 *ck 你的降价。