Considere o seguintemwe
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}
Ao converter o arquivo rst
usando o seguinte comando
pandoc -o mwe.rst mwe.tex
então recebo o seguinte
mwe.rst
+-----+-----+
| 1 | 2 |
+-----+-----+
| 3 | 4 |
+-----+-----+
Table: my caption
No entanto, gostaria que a saída fosse
.. _mylabel:
.. table:: my caption
+-----+-----+
| 1 | 2 |
+-----+-----+
| 3 | 4 |
+-----+-----+
que faz três coisas: dá um número à tabela, dá uma legenda à tabela e permite que a tabela seja referenciada.
Como posso ajustar pandoc
a saída tabular
no formato desejado?
Responder1
Primeiramente, você não está fornecendo o formato de saída para o pandoc e, portanto, ele está gerando markdown em vez de RST:
$ pandoc -o mwe.rst mwe.tex -f latex -t rst
deveria dar:
.. table:: my caption
+-----+-----+
| 1 | 2 |
+-----+-----+
| 3 | 4 |
+-----+-----+
Em segundo lugar, infelizmente o pandoc não possui inerentemente um conceito de rótulos de tabela. Então, quando lê na tabela, ignora o rótulo.
O melhor caminho seria criar um filtro pandoc. Usandoflauta pané uma boa abordagem.
>> 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"))
...