我正在尝试制作如下所示的凯莱表问题,但我不需要标签,例如,在顶部(容量)和左侧(w 和 v)。我只想重现完全相同的表格,而不在侧面添加“额外”位。
我忘了说我想要一个 5x5 的表格(表格内有 25 个条目),但仍然带有“外部”标题。
我成功做到了这一点。不过,我认为这太冗长了:
\[
\begin{tabular}{>{$}l<{$}|*{6}{>{$}l<{$}}}
~ & 1 & a & a^2 & a^3 & a^4 \\
\hline\vrule height 12pt width 0pt
1 & 1 & a & a^2 & a^3 & a^4 \\
a & a & a^2 & a^3 & a^4 & a^5 \\
a^2 & a^2 & a^3 & a^4 & a^5 & a^6 \\
a^3 & a^3 & a^4 & a^5 & a^6 & a^7 \\
a^4 & a^4 & a^5 & a^6 & a^7 & a^8 \\
\end{tabular}
\]
编辑:
\setlength\extrarowheight{3pt}
\noindent\begin{tabular}{c | c c c c c}
& 1 & a & a^2 & a^3 & a^4 \\
\cline{1-6}
1 & 1 & a & a^2 & a^3 & a^4 \\
a & a & a^2 & a^3 & a^4 & a^5 \\
a^2 & a^2 & a^3 & a^4 & a^5 & a^6 \\
a^3 & a^3 & a^4 & a^5 & a^6 & a^7 \\
a^4 & a^4 & a^5 & a^6 & a^7 & a^8 \\
\end{tabular}
答案1
基本上我刚刚回答你链接的问题并更改了几行以适应您的需要。
这是代码,后面是您将获得的输出以及对正在发生的事情的简要说明。
下面的代码生成了 2 个表格,一个表格的ANYTHING
左上角有内容,第二个表格中有一个空格(只是不要在“参数”列中放置任何内容)。
\documentclass[10pt]{article}
\usepackage{array}
\begin{document}
\setlength\extrarowheight{3pt}
\noindent\begin{tabular}{c | c c c c c}
ANYTHING & 0 & 1 & 2 & 3 & 4 \\
\cline{1-6}
0 & 0 & 0 & 0 & 0 & 0 \\
1 & 0 & 0 & $a^2$ & 25 & 25 \\
2 & $a^2$ & 0 & 20 & 25 & 25 \\
2 & 0 & $a^2$ & 20 & 25 & 25 \\
2 & 0 & 0 & 20 & 25 & 25 \\
\end{tabular}
\noindent\begin{tabular}{c | c c c c c}
& 0 & 1 & 2 & 3 & 4 \\
\cline{1-6}
0 & 0 & 0 & 0 & 0 & 0 \\
1 & 0 & 0 & $a^2$ & 25 & 25 \\
2 & $a^2$ & 0 & 20 & 25 & 25 \\
2 & 0 & $a^2$ & 20 & 25 & 25 \\
2 & 0 & 0 & 20 & 25 & 25 \\
\end{tabular}
\end{document}
它是如何工作的?表格由环境完成{tabular}
,它需要参数作为列数(或行数……只需阅读文档即可了解更多信息),该参数由参数指定{c | c c c c c}
:6 列,由第一列和第二列之间的一条线分隔。'c' 代表居中这意味着该列将与中心对齐,如果您愿意,可以将其更改为l
(左)或r
(右)。
然后在表格中,所有条目都通过使用 来分隔&
,并且\cline
将您希望它跨越的列数作为参数:从第 1 列到第 6 列。
该命令\setlength\extrarowheight{3pt}
增加了一些额外的行高(多么令人惊讶!)。
{array}
需要根据长度进行包装\extrarowheight
。
答案2
您的输入几乎很好,但您可以做得更好。
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\begin{document}
This is a Cayley table
\[
\begin{array}{l|*{5}{l}}
& 1 & a & a^2 & a^3 & a^4 \\
\hline
1 & 1 & a & a^2 & a^3 & a^4 \\
a & a & a^2 & a^3 & a^4 & a^5 \\
a^2 & a^2 & a^3 & a^4 & a^5 & a^6 \\
a^3 & a^3 & a^4 & a^5 & a^6 & a^7 \\
a^4 & a^4 & a^5 & a^6 & a^7 & a^8 \\
\end{array}
\]
This is the same, but with some more spacing,
\[
\setlength{\extrarowheight}{3pt}% local setting
\begin{array}{l|*{5}{l}}
& 1 & a & a^2 & a^3 & a^4 \\
\hline
1 & 1 & a & a^2 & a^3 & a^4 \\
a & a & a^2 & a^3 & a^4 & a^5 \\
a^2 & a^2 & a^3 & a^4 & a^5 & a^6 \\
a^3 & a^3 & a^4 & a^5 & a^6 & a^7 \\
a^4 & a^4 & a^5 & a^6 & a^7 & a^8 \\
\end{array}
\]
\end{document}
对于array
,每个单元格都假定处于数学模式。 的设置\extrarowheight
不会传播到 的其他实例array
,因为\[...\]
形成了一个组。
答案3
这里需要一些自动化
\documentclass{article}
\usepackage{amsmath, amssymb}
\usepackage{array}
\usepackage{xinttools}
\usepackage{bnumexpr}
\begin{document}
This is a Cayley table
\[
\begin{array}{l|*{5}{l}}
& 1 & a & a^2 & a^3 & a^4 \\
\hline
1 & 1 & a & a^2 & a^3 & a^4 \\
a & a & a^2 & a^3 & a^4 & a^5 \\
a^2 & a^2 & a^3 & a^4 & a^5 & a^6 \\
a^3 & a^3 & a^4 & a^5 & a^6 & a^7 \\
a^4 & a^4 & a^5 & a^6 & a^7 & a^8 \\
\end{array}
\]
This is the same, but with some more spacing,
\[
\setlength{\extrarowheight}{3pt}% local setting
\begin{array}{l|*{5}{l}}
& 1 & a & a^2 & a^3 & a^4 \\
\hline
1 & 1 & a & a^2 & a^3 & a^4 \\
a & a & a^2 & a^3 & a^4 & a^5 \\
a^2 & a^2 & a^3 & a^4 & a^5 & a^6 \\
a^3 & a^3 & a^4 & a^5 & a^6 & a^7 \\
a^4 & a^4 & a^5 & a^6 & a^7 & a^8 \\
\end{array}
\]
Again, but illustrating that $a=4$ generates a cyclic sub-group of order
$5$ of $(\mathbb{Z}/11\mathbb{Z})^*$:
\[
\setlength{\extrarowheight}{3pt}% local setting
\begin{array}{c|*{5}{c}}
& 1 & a & a^2 & a^3 & a^4 \\
\hline
\xintFor #1 in {0, 1, 2, 3, 4}:
{\ifnum #1=0 1\else a^{#1}\fi
\xintFor #2 in {0, 1, 2, 3, 4}:
{%
&\thebnumexpr 4^(#1+#2) /: 11\relax
}%
\\
}%
\end{array}
\]
and $a=2$ generates the full group:
\[
\setlength{\extrarowheight}{3pt}% local setting
\begin{array}{c|*{10}{c}}
& 1 & a \xintFor*#1 in {23456789}:{&a^{#1}}\\
\hline
\xintFor* #1 in {0123456789}:
{\ifnum #1=0 1\else a^{#1}\fi
\xintFor* #2 in {0123456789}:
{%
&\thebnumexpr 2^(#1+#2) /: 11\relax
}%
\\
}%
\end{array}
\]
\end{document}
答案4
和\foreach
:
\documentclass{article}
\usepackage{etoolbox}
\usepackage{tikz}
\tikzset{mynode/.style={anchor=base,
inner sep=0pt,
text height=12pt, text depth=6pt, text width=18pt, text centered}}
\newcommand{\CayleyTable}[2][a]{%
\vcenter{\hbox{\begin{tikzpicture}
\pgfmathsetmacro\tot{int(#2-1)}
\foreach \i in {0,1,...,\tot}
{
\node[mynode] (hh-\i) at (\i *24pt,24pt) {\ifnumequal{\i}{0}{$1$}{\ifnumequal{\i}{1}{$#1$}{${#1}^{\i}$}}};
\node[mynode] (vv-\i) at (-24pt-\pgflinewidth,-\i *24pt) {\ifnumequal{\i}{0}{$1$}{\ifnumequal{\i}{1}{$#1$}{${#1}^{\i}$}}};
}
\foreach \myrow in {0,1,...,\tot}
{\foreach \mycol in {0,1,...,\tot}
{\pgfmathsetmacro\myplus{\myrow+\mycol}\pgfmathsetmacro\myexp{int(mod(\myplus,#2))}
\node[mynode] at (\myrow*24pt,-\mycol*24pt) {\ifnumequal{\myexp}{0}{$1$}{\ifnumequal{\myexp}{1}{$#1$}{${#1}^{\myexp}$}}};}}
\draw ([yshift=-2pt]hh-\tot.south east) -- ([yshift=-2pt]hh-0.south west) -- ++(-24pt, 0);
\draw ([xshift=2pt]vv-\tot.south east) -- ([xshift=2pt]vv-0.north east) -- ++(0,24pt);
\end{tikzpicture}}}%
}
\begin{document}
\[
\CayleyTable{3}
\]
\[
\CayleyTable[x]{4}
\]
\[
\CayleyTable[y]{5}
\]
\end{document}