.dtx
我的文件中出现以下错误:
) (./test.dtx
! Undefined control sequence.
l.35 % \rowcolors
{1}{colorrow}{colorbody}
我不明白,因为xcolor
和colortbl
都已加载,并且所有其他xcolor
命令都有效。
这是用于测试的文件的代码.dtx
:
% \iffalse
%<*driver>
\ProvidesFile{test.dtx}
%</driver>
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{test}
%
%<*driver>
\documentclass{ltxdoc}
\usepackage{test}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
%
\RequirePackage{colortbl}
\RequirePackage{xcolor}
%
\listfiles
\begin{document}
\DocInput{test.dtx}
\PrintChanges
\PrintIndex
\end{document}
%</driver>
% \fi
%
% \GetFileInfo{test.dtx}
%
% \colorlet{colorbody}{white!100}
% \colorlet{colorsubhead}{gray!30}
% \colorlet{colorhead}{gray!25}
% \colorlet{colorrow}{gray!15.0}
%
% \rowcolors{1}{colorrow}{colorbody}
% \begin{tabular}{*{2}{p{0.45\textwidth}}}
% content & content \tabularnewline
% content & content \tabularnewline
% content & content \tabularnewline
% \end{tabular}
%
% \StopEventually{}
% \clearpage
% \section{Implementation}
%
% \iffalse
%<*test.sty>
% \fi
%
% \subsection{Setup and packages}
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\ProvidesPackage{test}
% \end{macrocode}
%
% \begin{macrocode}
\RequirePackage{array}
\RequirePackage{colortbl}
\RequirePackage{xcolor}
% \end{macrocode}
%
% \iffalse
%</test.sty>
% \fi
%
% \Finale
\endinput
答案1
你应该更换
\RequirePackage{colortbl}
\RequirePackage{xcolor}
在第 16+17 行
\usepackage[table]{xcolor}
因为在文档前言中,包加载应该使用\usepackage
而不是\RequirePackage
,并且在第 59+60 行
\RequirePackage[table]{xcolor}
因为单独加载这两个包是不一样的。第 2.12 节“表格中的颜色“, 的彩色手册建议使用该选项,因为:
这些命令需要表选项。
“这些命令”是、、、、\rowcolors
和(这不是命令而是 TeX 计数器)。\rowcolors*
\showrowcolors
\hiderowcolors
\rownum