4

I am using Jupyter Notebook nbconvert (Save as menu) to export as pdf via Latex. However, the pdf file is not in a good shape. For example, some wide tables are shown well. I would prefer to have a box for tables to be resized to the width of the page. Is there any style, template that I can use to have nice reports and how I may ask nbconverter to use that style?

Here is the Latex output:

enter image description here

I would like something like this:

enter image description here

4

2 回答 2

5

看起来 Pandas._repr_latex_()在 0.23 版本中获得了一种方法。您需要设置pd.options.display.latex.repr=True以激活它。

没有乳胶代表: 有乳胶代表:
没有乳胶代表

用乳胶代表

查看选项以使格式接近您想要的格式。为了完全匹配您想要的输出,您需要使用自定义乳胶模板。


编辑以提供有关模板的更多信息:

从这里开始了解有关模板的一般信息。.tplx您可以在与笔记本相同的路径中创建一个文件,并nbconvert在从命令行运行时将其指定为模板:!jupyter nbconvert --to python 'example.ipynb' --stdout --template=my_custom_template.tplx. jupyter_notebook_config.py或者,您可以通过修改目录中的文件,通过菜单指定在导出为 Latex 时使用的默认模板~.jupyter。如果此文件不存在,您可以通过从命令行运行命令来生成它jupyter notebook --generate-config。我的模板也位于~/.jupyter目录中,因此我将以下内容添加到我的jupyter_notebook_config.py

# Insert this at the top of the file to allow you to reference
# a template in the ~.jupyter directory
import os.path
import sys
sys.path.insert(0, os.path.expanduser("~") + '/.jupyter')
# Insert this at the bottom of the file:
c.LatexExporter.template_file = 'my_template' # no .tplx extension here
c.LatexExporter.template_path = ['.', os.path.expanduser("~") + '/.jupyter'] # nbconvert will look in ~/.jupyter

要了解模板的工作原理,请先查看null.tplx。这条线((*- for cell in nb.cells -*))在笔记本中的所有单元格上循环。下面的if语句检查每个单元的类型并调用适当的块。

其他模板扩展null.tplx. 每个模板定义(或重新定义)一些块。层次结构是null->display_priority->document_contents->base->style_*->article

您的自定义模板可能应该扩展article.tplx并将一些 Latex 命令添加到以您想要的方式设置表格的标题中。查看此博客文章,了解设置自定义模板的示例。

于 2018-09-25T15:44:43.033 回答
1

任何更改表格大小以适应页面宽度的设置?乳胶代码是这样的:\resizebox*{\textwidth}{!}{%

在此处输入图像描述

于 2018-09-26T15:04:49.020 回答