5
votes

This question of how to include text that will appear in html but not pdf has been answered twice (LaTeX multicolumn block in Pandoc markdown and Pandoc markdown: Omit text in PDF version but include in HTML version) and I applied the solution recommended:

Here is the source:

My text.

<div>
This will be ignored in non-HTML output
</div>

Other text

The command I used was: pandoc essai.md --from=markdown-markdown_in_html_blocks -o essai.pdf

Yet the text between the <div>tags is still displayed in the pdf file.

Am I missing something obvious? Or has the behaviour of pandoc changed since 2013/2014 (my version is 1.19 of 2016)? If yes, what would the solution be?

2

2 Answers

6
votes

I know you asked for a solution that works with pandoc 1.19, but for completeness, here is one which is a bit cleaner but only works with pandoc 2.0 and later:

There is a new raw_attribute extension, which allows to do the following:

`text in html`{=html}
`text in pdf`{=latex}

It is enabled in pandoc markdown per default.

3
votes

I found an answer: add the -native_divs extension.

This way:

$ pandoc essai.md --from=markdown-markdown_in_html_blocks-native_divs -t latex
My text.

other text

My understanding is that pandoc has started interpreting <div> items as "native" elements, i.e. represented in the AST, which causes the interesting side effect that a <p> is added in html. This behaviour needs to be deactivated in order to obtain the desired effect.

If someone has a better solution or a better explanation, please let me know.