我使用 tcolorbox 定义 mytables,但是不起作用。
\documentclass{book}
\usepackage{array,tabularx}
\usepackage[table]{xcolor}
\usepackage{amsmath,amsfonts,amssymb,amsthm}
\usepackage{tcolorbox}
\usepackage{colortbl}
\tcbuselibrary{listings,skins,theorems,xparse,fitting}
\newtcolorbox{mytables}{%
width=\linewidth,
enhanced,
fonttitle=\bfseries\large,
fontupper=\normalsize\sffamily,
colback=yellow!10!white,
colframe=red!50!black,
colbacktitle=green,
coltitle=black,
center title}
\begin{document}
\begin{mytables}[tabularx={|X|},title=My table]
a b c d e f g h i j k l m n o p q r s t u v w x y z \\\hline
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \\\hline
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
\end{mytables}
\end{document}
输出:
答案1
语法\newtcolorbox
如下:
\newtcolorbox[⟨init options⟩]{⟨name⟩}[⟨number⟩][⟨default⟩]{⟨options⟩}
其中[⟨number⟩]
,是新环境应该具有的参数数量,[⟨default⟩]
是第一个参数的默认值。由于您没有[1][]
在代码中包含,因此第一个参数不是预期的,从而导致出现错误消息。为了不仅告知tcolorbox
需要mytables
可选参数,而且为了使用您在此处添加的任何代码,我还添加了#1
环境的定义mytables
。
我还添加了一个替代方案,其中我使用\tcbset
并定义了一种可以在常规tcolorbox
环境中使用的新样式。 两种方法均产生以下输出:
对序言中的软件包有一些小的评论:使用\usepackage[table]{xcolor}
已经加载colortbl
,因此不需要\usepackage{colortbl}
。同样,tabularx
加载array
,因此不需要明确加载后者。最后,amssymb
内部加载amsfonts
,因此您可以省略后者。
\documentclass{book}
\usepackage{tabularx}
\usepackage[table]{xcolor}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{tcolorbox}
\tcbuselibrary{listings,skins,theorems,xparse,fitting}
\newtcolorbox{mytables}
[1][] % <----------- added
{%
width=\linewidth,
enhanced,
fonttitle=\bfseries\large,
fontupper=\normalsize\sffamily,
colback=yellow!10!white,
colframe=red!50!black,
colbacktitle=green,
coltitle=black,
center title,
#1 %<------------- added
}
\tcbset{mytables/.style={%
width=\linewidth,
enhanced,
fonttitle=\bfseries\large,
fontupper=\normalsize\sffamily,
colback=yellow!10!white,
colframe=red!50!black,
colbacktitle=green,
coltitle=black,
center title}}
\begin{document}
\begin{mytables}[tabularx={|X|},title=My table]
a b c d e f g h i j k l m n o p q r s t u v w x y z \\\hline
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \\\hline
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
\end{mytables}
\begin{tcolorbox}[mytables,tabularx={|X|},title=My table]
a b c d e f g h i j k l m n o p q r s t u v w x y z \\\hline
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \\\hline
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
\end{tcolorbox}
\end{document}