考慮以下mwe
特克斯
\documentclass{article}
\begin{document}
\begin{table}
\centering
\caption{my caption}
\label{mylabel}
\begin{tabular}{lc}
1 & 2\\
3 & 4
\end{tabular}
\end{table}
\end{document}
rst
當使用以下命令轉換檔案時
pandoc -o mwe.rst mwe.tex
然後我收到以下內容
mwe.rst
+-----+-----+
| 1 | 2 |
+-----+-----+
| 3 | 4 |
+-----+-----+
Table: my caption
但是,我希望輸出是
.. _mylabel:
.. table:: my caption
+-----+-----+
| 1 | 2 |
+-----+-----+
| 3 | 4 |
+-----+-----+
它做了三件事:給表格一個編號,給表格一個標題,並允許引用表格。
我如何調整以我想要的格式pandoc
輸出tabular
?
答案1
首先,您沒有向 pandoc 提供輸出格式,因此它輸出的是 markdown 而不是 RST:
$ pandoc -o mwe.rst mwe.tex -f latex -t rst
應該給出:
.. table:: my caption
+-----+-----+
| 1 | 2 |
+-----+-----+
| 3 | 4 |
+-----+-----+
其次,不幸的是pandoc本身並沒有表標籤的概念。因此,當它讀取表時,它會忽略標籤。
最好的方法是建立一個 pandoc 過濾器。使用排簫是一個很好的方法。
>> import panflute as pf
>> content = pf.convert_text(tex, input_format="latex")
>> content
[Table(TableRow(TableCell(Plain(Str(1))) TableCell(Plain(Str(2)))) TableRow(TableCell(Plain(Str(3))) TableCell(Plain(Str(4)))); alignment=['AlignLeft', 'AlignCenter'], width=[0, 0], rows=2, cols=2)]
>> content.insert(0, pf.RawBlock(".. _mylabel:", format="rst"))
...