Folgendes berücksichtigenmwe
mwe.tex
\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}
Beim Konvertieren der Datei in rst
verwenden Sie den folgenden Befehl
pandoc -o mwe.rst mwe.tex
dann erhalte ich folgendes
mwe.rst
+-----+-----+
| 1 | 2 |
+-----+-----+
| 3 | 4 |
+-----+-----+
Table: my caption
Ich möchte jedoch, dass die Ausgabe
.. _mylabel:
.. table:: my caption
+-----+-----+
| 1 | 2 |
+-----+-----+
| 3 | 4 |
+-----+-----+
Dies hat drei Auswirkungen: Die Tabelle erhält eine Nummer und eine Überschrift und kann referenziert werden.
Wie kann ich pandoc
die Ausgabe tabular
im gewünschten Format optimieren?
Antwort1
Erstens stellen Sie Pandoc nicht das Ausgabeformat zur Verfügung, sodass Markdown und nicht RST ausgegeben wird:
$ pandoc -o mwe.rst mwe.tex -f latex -t rst
sollte geben:
.. table:: my caption
+-----+-----+
| 1 | 2 |
+-----+-----+
| 3 | 4 |
+-----+-----+
Zweitens verfügt pandoc leider nicht über ein Konzept für Tabellenbeschriftungen. Beim Einlesen der Tabelle werden die Beschriftungen daher ignoriert.
Der beste Weg wäre, einen Pandoc-Filter zu erstellen.Panflöteist ein schöner Ansatz.
>> 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"))
...