【问题标题】:nbconvert latex figure positioningnbconvert 乳胶图形定位
【发布时间】:2018-12-06 03:12:37
【问题描述】:

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

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

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

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

【问题讨论】:

标签: jupyter-notebook jupyter pandoc nbconvert


【解决方案1】:

我认为你可以通过在模板中重新定义适当的块来得到你想要的。

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 *))

【讨论】:

  • 谢谢 - 这看起来很有用。但是,将您的代码复制到我的模板文件后,我收到一条错误消息:jinja2.exceptions.UndefinedError: 'output' is undefined when running jupyter nbconvert --to latex toplevel.ipynb --template latex-template.tplx 有什么想法吗?
  • 好的,我尝试添加((*- extends 'article.tplx' -*)),它会停止错误但也不输出修改后的乳胶代码。
  • @ThorstenAltenkirch 我无法复制您遇到的问题。您可以尝试替换“data_priority”(请参阅​​nbconvert.readthedocs.io/en/latest/customizing.html)以检查是否正在使用模板。只需将此行添加到您的模板中:((*- block data_priority -*)) data_priority was here ((*- endblock -*)),您应该会看到所有输出都被文本“data_priority was here”替换。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-02
  • 1970-01-01
  • 2014-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多