nbconvert乳胶图形定位

时间:2018-12-06 03:12:37

标签: jupyter-notebook jupyter pandoc nbconvert

当我将笔记本转换为乳胶(然后为PDF)时,图像将移至页面底部。我发现在乳胶中,可以使用“ h”放置说明符将其保持在当前位置:

\begin{figure}[placement specifier]
... figure contents ...
\end{figure}

是否可以将nbconvert配置为使用它作为默认值,这样以后就不必手动处理了?

参考: https://en.wikibooks.org/wiki/LaTeX/Floats,_Figures_and_Captions

2 个答案:

答案 0 :(得分:0)

我认为您可以通过在模板中重新定义适当的块来获得所需的内容。

document_contents.tplx中,请注意,块data_pngdata_jpg等都调用相同的宏draw_figure

通过在自定义模板中重新定义图块以调用另一个也在我的自定义模板中定义的宏draw_figure_2,我执行了与您要执行的操作类似的操作。

添加类似

((*- block data_png -*))((( draw_figure_2(output.metadata.filenames['image/png']) )))((*- endblock -*))
((*- block data_jpg -*))((( draw_figure_2(output.metadata.filenames['image/jpeg']) )))((*- endblock -*))
((*- block data_svg -*))((( draw_figure_2(output.metadata.filenames['image/svg+xml']) )))((*- endblock -*))
((*- block data_pdf -*))((( draw_figure_2(output.metadata.filenames['application/pdf']) )))((*- endblock -*))


% copied macro draw_figure and made some naive changes; modify as needed
((* macro draw_figure_2(filename) -*))
((* set filename = filename | posix_path *))
((*- block figure scoped -*))
    \begin{figure}[h] % or whatever you want
    \begin{center}
    \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{((( filename )))}
    \end{center}
    \end{figure}
    { \hspace*{\fill} \\}
((*- endblock figure -*))
((*- endmacro *))

答案 1 :(得分:0)

好,我现在知道了。在我们的代码中,我们使用 在标记单元中,但似乎这从未调用 (((-块data_png-)) 但是那有什么用呢? 我们通过在标题中放置通用的float指令来绕过此问题,但我仍然感到困惑。