【发布时间】:2017-03-22 10:36:58
【问题描述】:
我正在使用sphinx 来生成我们的公司手册。在我们的旧手册中,我们希望保留某种表格样式。
表格样式由具有深绿色背景标题的表格组成,然后是几行浅绿色背景行,然后是几行白色背景。
Sphinx 生成我的 LaTeX 输入文件,然后使用 PdfLatex 将其制成 PDF。可以在 LaTeX 表以 :raw-role: 开头之前包含 LaTeX 特定的 cmets。
输入RST文件:
.. role:: raw-role(raw)
:format: latex
:raw-role:`\firstRow`
=== === ===
A B C
=== === ===
1A 1B 1C
2A 2B 2C
3A 3B 3C
4A 4B 4C
=== === ===
会变成:
\firstRow
\noindent\begin{tabulary}{\linewidth}{|L|L|L|}
\hline
\sphinxstylethead{\relax
A
\unskip}\relax &\sphinxstylethead{\relax
B
\unskip}\relax &\sphinxstylethead{\relax
C
\unskip}\relax \\
\hline
1A
&
1B
&
1C
\\
\hline
2A
&
2B
&
2C
\\
\hline
3A
&
3B
&
3C
\\
\hline
4A
&
4B
&
4C
\\
\hline\end{tabulary}
我现在需要一个名为 \firstRow 的命令,它可以修改 \tabulary 环境的行为,使标题具有深绿色背景,下面的第一行具有浅绿色背景,而其余行具有白色背景。
如果其他一切都失败了,仍然有可能使用pandoc 之类的工具自动替换 RST 文件中单元格的内容。
例如,可以将 RST 文件中的1A 替换为:raw-role:'\background{green}' 1A,然后将其转换为sphinx。
我发现有趣的是,如果是 sphinx HTML 目标,则可以通过使用包含 firstRow 类的改编 style.css 以及类似 .. rst-class:: firstRow 的命令来轻松解决问题,其中 firstRow表示具有一个浅绿色背景的表格样式。
不幸的是,LaTeX 目标错过了类似于 style.css 的内容。
【问题讨论】:
标签: latex python-sphinx pandoc pdflatex