覆盖 Sphinx 中的表

覆盖 Sphinx 中的表

我正在使用 sphinx 生成文档。它通过 latex 生成的表格非常丑陋,所以我想给它们一些全局样式。我想要实现的是

  • 始终为 100% 宽度
  • 标题行颜色
  • 粗体标题文字
  • 也许需要更多间距

因此,sphinx 所做的就是写出如下表格:

\begin{tabulary}{\linewidth}{|L|L|L|}
\hline
\textsf{\relax 
Nummer
} & \textsf{\relax 
Name
} & \textsf{\relax 
Bemerkungen
}\\
\hline
0
 & 
Allgemeines
 & 
Enthält Meta-Informationen zum Dossier
\\
[...]
\hline\end{tabulary}

我的方法是这样的(针对标题行颜色):

\RequirePackage{tabu}

\definecolor{tablehead}{rgb}{0.7294117647058823, 0.6823529411764706, 0.6235294117647059}

\renewenvironment{tabulary}[2]{\bgroup\begin{tabu} to \textwidth{#2}
    \rowcolor{tablehead}
}%
{\end{tabu}\egroup}

这会导致以下错误:

! Missing # inserted in alignment preamble.
<to be read again> 
                   &
l.294 \hline\end{tabulary}

? x

答案1

就其本身而言,该L列类型是无用的tabu

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{tabu,tabulary}
\usepackage[table]{xcolor}

\definecolor{tablehead}{rgb}{0.7294117647058823, 0.6823529411764706, 0.6235294117647059}

% redefine the L column type
\newcolumntype{L}{X[l]<{\strut}}

\renewenvironment{tabulary}[3]
 {\noindent\tabu to \textwidth{#2}\hline\rowcolor{tablehead}}
 {\endtabu}


\begin{document}

\begin{tabulary}{\linewidth}{|L|L|L|}
\hline
\textsf{Nummer} & \textsf{Name} & \textsf{Bemerkungen}\\
%\hline
0
 & 
Allgemeines
 & 
Enthält Meta-Informationen zum Dossier
\\
\hline
\end{tabulary}

\end{document}

在此处输入图片描述

注意,否则我们必须先吞下它\hline,然后用手放置它,因为之后这是非法的\rowcolor

答案2

从 sphinx 1.6.5 开始,你可以添加文件

_templates/latex.tex_t
_templates/longtable.tex_t
_templates/tabular.tex_t
_templates/tabulary.tex_t

并很好地覆盖了所有内容。你可以从github或来自 sphinx 源。

我认为目前还没有任何关于它的文档,至少我找不到它。

相关内容