使用 booktabs 包对 sphinx LaTeX 表格进行样式设置

使用 booktabs 包对 sphinx LaTeX 表格进行样式设置

我正在尝试改善 Sphinx 生成的 LaTeX 表格的外观。具体来说,我想使用 booktabs 顶部、中间和底部规则并隐藏垂直单元格分隔符。

此 rST 表:

+--------------+---+-----------+
|  simple text | 2 | 3         |
+==============+===+===========+
|  simple text | 2 | 3         |
+--------------+---+-----------+
|  simple text | 2 | 3         |
+--------------+---+-----------+

转换为:

\begin{savenotes}\sphinxattablestart
\centering
\begin{tabulary}{\linewidth}[t]{JJJ}
\hline
\sphinxstyletheadfamily 
simple text
&\sphinxstyletheadfamily

 
2
&\sphinxstyletheadfamily 
3
\\
\hline
simple text
&
2

&
3
\\
\hline
simple text
&
2
&
3
\\
\hline
\end{tabulary}
\par
\sphinxattableend\end{savenotes}

我希望它转换为:

\begin{savenotes}\sphinxattablestart
\centering
\begin{tabulary}{\linewidth}[t]{JJJ}
\toprule
\sphinxstyletheadfamily 
simple text
&\sphinxstyletheadfamily 
2
&\sphinxstyletheadfamily 
3
\\
\toprule
simple text
&
2
&
3
\\
\midrule
simple text
&
2
&
3
\\
\bottomrule
\end{tabulary}
\par
\sphinxattableend\end{savenotes}

我可以从 conf.py 加载 booktabs。

当前的 Sphinx 文档在这里https://www.sphinx-doc.org/en/master/latex.html意味着这个级别的控制不能通过 conf.py 获得,但是在页面底部有一个注释,暗示可以通过模板进行定制:

作为一项实验性功能,如果您的项目中有一个 _templates/latex.tex_t 文件,Sphinx 可以使用用户定义的 LaTeX 源模板文件。可以将其他文件 longtable.tex_t、tabulary.tex_t 和 tabular.tex_t 添加到 _templates/ 以配置表格渲染的某些方面(例如标题位置)。

并且有一个指向它的参数,我在conf.py中设置如下:

templates_path = '_templates'

我添加了来自https://github.com/sphinx-doc/sphinx/tree/3.x/sphinx/templates/latex

模板未被读取。

问题:

  1. 这是否可以通过模板实现?如果可以,如何实现?该功能在 Sphinx 1.6 中是实验性的,可能已被删除。
  2. 如果没有,是否有办法通过序言、sty 文件或其他方式重新定义表格以使用 booktabs?

非常感谢。

相关内容