我正在使用 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 源。
我认为目前还没有任何关于它的文档,至少我找不到它。