Pandoc Markdown to PDF image position
Although Bruno's solution for forcing the figures into the specified position works, it also removes the captions specified in the .md
file from the resulting .pdf
.
To prevent the floating of figures but keep the captions:
1. Create a .tex
file with the following content:
\usepackage{float}
\let\origfigure\figure
\let\endorigfigure\endfigure
\renewenvironment{figure}[1][2] {
\expandafter\origfigure\expandafter[H]
} {
\endorigfigure
}
This will prevent LaTeX from floating the figures.
2. Adapt the pandoc call
Assuming you have named the newly created .tex
file disable_float.tex
, just add the -H disable_float.tex
to your pandoc
call:
pandoc -H disable_float.tex input.md -o output.pdf
Props to this answer on SO and this comment on github.
Did you try to deactivate the implicit_figures
as in
pandoc -f markdown-implicit_figures -t pdf myfile.md
To solve the size problem you could also try to fix the size within the markdown file with an attribute. Something like that can do the trick:
![Caption text](/path/to/image){ width=50% }
An alternative to @apitsch's answer achieving the same result: an image at the point called in text (although not entirely "in-line" with the text), with its caption.
Do this:
In your pandoc
--include-in-header
template (disable_float.tex
in @apitsch's answer) use, instead% Override default figure placement To be within the flow of the text rather % than on it's own page. \usepackage{float} \makeatletter \def\fps@figure{H} \makeatother
For other default positioning schemes see: https://www.overleaf.com/learn/latex/Inserting_Images#Positioning. E.g. in place of
H
you could specifyt
.In your markdown source you'll probably also want to specify a height attribute. In the latex context this is height of
\textheight
(almost the height of the page).![Caption for my image](MyImage.jpg){height=55%}