latex - 图标题在 nbconvert 中居中?

标签 latex jupyter-notebook

我在 ipython 笔记本中的图形下方有单元格,其中包含图形标题文本。我希望它们居中('中心')对齐。我在 Markdown 中使用“<中心>”,这正是我在笔记本中所追求的外观。但是当 nb-converting 到 latex 时,文本会被分流到左边。

那么有没有办法让 nbconvert 在转换为 latex 时识别 markdown 单元格中的文本对齐方式?

谢谢。

最佳答案

您实际上问了两个不同的问题:

  1. 有没有办法让 nbconvert 识别 markdown 单元格中的文本对齐
  2. nbconvert 中的图形标题(居中)

广告 1)
要将 markdown 转换为 latex ,使用 pandoc。不幸的是,如果将 markdown 转换为 latex,pandoc 会从 markdown 中删除原始 html(如果在将 markdown 转换为 html 时也会删除原始 latex)。 因此,使用 html 标签在 html 和 latex 中格式化输出并不是那么简单。这种格式化可以基于单元格元数据来实现,但目前这并不是那么微不足道。

广告 2)
然而,可以创建类似文本的标题来使用 html 和 latex 。 这里我们必须区分 pyout 或流数据的标题(例如 Ipython.display.Image)和 Markdown 图像。

pyout 和流

一种可能的方法是创建一个Caption

class Caption():
    def __init__(self,s):
        self.s = s
    def _repr_html_(self):
        return '<center>{0}</center>'.format(self.s)
    def _repr_latex_(self):
        return '\\begin{center}\n'+self.s+'\n\\end{center}'

在图像之后调用。请注意,两者都应使用 IPython.display.display 方法调用,例如作为 oneliner

display(Image('image.jpg'),Caption('Figure Caption'))

这种方法允许使用 python 处理标题文本,例如添加图形编号。
如果您想将这样的标题添加到 matplotlib 图,则需要克服错误的顺序,这会有点棘手。一种可能的方法是使用此代码段进行绘图

%matplotlib inline
plt.plot([1,2])
f=plt.gcf()
plt.close()
display(f,Caption('Plot'))

可能会注意到 IPython 1.x 的默认 latex 模板不能很好地使用这种方法,因为在这里,图像和标题只是松散耦合,因此,在 latex 编译期间可能会包含垂直空间。 latex_basic 模板效果更好。在 IPython master 中,默认模板工作正常。

Markdown 图片

Markdown 允许使用像

这样的图片
![Caption](/files/image)

当转换为 latex 时,pandoc 可以使用 Caption 部分并创建一个真正的 latex 标题。 类似地,当转换为 html 时,标题会嵌入到标题类中,以便使用 css 轻松设置样式。 但是,目前 IPython 需要一个“/files/”前缀,目前还没有删除,因此图像文件不会被 latex 找到。(现在已修复)
请注意,这些 Markdown 图像调用不会嵌入,而只会将图像链接到 ipynb 文件中,因此,图像必须保持可用。

关于latex - 图标题在 nbconvert 中居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20264205/

相关文章:

r -\Sexpr{} 在 .tex 文件中引用 R 对象

python - 读取 CSV 文件时获取 'SyntaxError: invalid character in identifier'

python - %在名称中带有空格的文件上运行

Python:如何使用列表检查 csv 列中是否没有值

latex - 根据节和小节的数字编号

php - latex 不能在 php exec() 中工作

java - 如何在 Mac 中从 Java 程序编译 LaTex 文件

latex - Tikz:从节点绘制边到另一边的标签

python - 从 Google Cloud Storage 加载保存的 CatBoost 模型 (.cbm)

jupyter-notebook - 如何卸载使用 pip3 安装的 Jupyter Notebook