Sto scrivendo uno script python per analizzare il contenuto di Wordpress Export XML (wp xml) per generare un documento LaTex. Finora il wp xml viene analizzato tramite lxml.etree
e il codice genera un nuovo albero xml per essere elaborato da texml, che a sua volta genera il file tex.Convertire i tag HTML img in figure con didascalia in LaTeX
Attualmente estraggo ogni post insieme a determinati metadati (titolo, data di pubblicazione, tag, contenuto). I metadati non rappresentano alcun problema, ma la parte del contenuto è un po 'problematica. All'interno del wp xml il contenuto è incluso come una struttura CDATA in semplice HTML/Wordpress Markup. Per convertirlo in lattice, scelgo il pandoc per analizzare il contenuto. TeXml supporta in linea LaTeX, quindi il contenuto viene aggiunto come semplice LaTeX nell'albero.
ho deciso di utilizzare Pandoc in questo caso, come già converte la maggior parte dei tag html ben (a
, strong
, em
...), l'unico problema che ho è come si tratta con le immagini.
Io uso un sottoprocesso per interfacciarsi con Pandoc:
args = ['pandoc', '-f', 'html', '-t', 'latex']
p = Popen(args, stdout=PIPE, stdin=PIPE, stderr=PIPE)
tex_result = p.communicate(input=(my_html_string).encode('utf-8'))[0]
un post di esempio potrebbe assomigliare a questo
<strong>Lorem ipsum dolor</strong> sit amet, consectetur adipiscing elit.
<a href="http://link_to_source_image.jpg"><img class="alignnone size-medium wp-image-id" title="Title_text" src="http://link_to_scaled_down_version.jpg" alt="Some alt text" width="262" height="300" /></a>
Nam nulla ante, vestibulum a euismod sed, accumsan at magna. Cras non augue risus, vitae gravida quam.
ho bisogno di immagini con didascalie incorporate come figure ad esempio
\begin{figure}
\includegraphics{link_to_image.jpg}
\label{fig:some_label}
\caption{Some alt text}
\end{figure}
Pandoc sembra per convertire html img
tag in una semplice immagine inline, scartando tutti i testi di titolo o di alt.
\href{http://link\_to\_source\_image.jpg}{\includegraphics{http://link_to_scaled_down_version.jpg}}
ho sbirciare dentro la fonte e sembra che img
è trattata solo come elemento in linea. (pandoc parsing function). Non conosco Haskell, quindi è così lontano.
Se si converte il html all'interno di mark-down, però, mantiene i alt e il titolo e il risultato è simile a
![Some alt text](http://link_to_scaled_down_version.jpg "Title_text")
Con Markdown è possibile avere inline immagini o figure nel documento lattice risultante. Se si converte questo mark-down in lattice il risultato è
\begin{figure}[htbp]
\centering
\includegraphics{http://link_to_scaled_down_version.jpg}
\caption{Some alt text}
\end{figure}
Prima Pandoc sembrava una soluzione semplice per analizzare il contenuto, ma io sono un po 'bloccato come Pandoc inoltre non supporta lattice inline in html così ho potuto prima elaborare tutte le immagini e il resto tramite pandoc.
Ragazzi avete un'idea su come (meglio) elaborare i tag img
in html da incorporare in un ambiente di figure in lattice con didascalie?
Sì, questo è il trucco! Lo stavo testando incluso il tag in un paragrafo, ma non mi è venuto in mente di provarlo solo con l'immagine ... Grazie mille! – nitnatsnoc