我正在尝试改善 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
模板未被读取。
问题:
- 这是否可以通过模板实现?如果可以,如何实现?该功能在 Sphinx 1.6 中是实验性的,可能已被删除。
- 如果没有,是否有办法通过序言、sty 文件或其他方式重新定义表格以使用 booktabs?
非常感谢。