LaTeX 为技术写作制作表格提供了相当不错的功能。但对于教育材料呢?需求非常不同,我从未见过任何关于这种需求的讨论或合适软件包的推荐。
下面的文档摘录是一个很好的简单示例。这不是用于显示信息的表格;这是供学生书写的表格。摆弄了一段时间的 LaTeX 后,我决定改用文字处理器,截取屏幕截图,并在 LaTeX 文件中包含图像。如果可能的话,我更愿意在 LaTeX 中创建表格。
那么为什么在文字处理器中执行此操作更容易?
- 轻松控制每个单元格的大小,这在学生在表格中书写时很重要。
- 轻松对齐,在这种情况下水平和垂直居中。
- 轻松对选定的单元格进行着色。
我不认为像这样的环境tabular
可以被强制优雅地处理这种用例,所以我的问题是这样的:
- 是否有一个 LaTeX 包允许简单的创建如上所示的简单表格?
答案1
tblr
环境的替代解决方案tabularray
包裹:
\documentclass{article}
\usepackage{xcolor}
\usepackage{tabularray}
\begin{document}
\begingroup
\mathversion{bold}
\noindent
$\begin{tblr}{
colspec = {*{8}{X[c]}},
hlines, vlines,
column{1} = {blue9},
row{1} = {blue9},
row{2-Z} = {1.2cm}, % Z stands for the last
}
& 0 & 1 & 2 & 3 & 4 & 5 & 6 \\
2^n & & & & & & & \\
3^n & & & & & & & \\
4^n & & & & & & & \\
5^n & & & & & & & \\
6^n & & & & & & & \\
\end{tblr}$
\endgroup
\end{document}
答案2
像这样吗?
\documentclass[12pt]{article}
\usepackage[table, svgnames]{xcolor}
\usepackage{tabularx}
\setlength{\extrarowheight}{2pt}
\begin{document}
\begin{tabularx}{\textwidth}{|>{\columncolor{LightBlue!30}\rule[-0.4\hsize]{0pt}{\hsize}\centering\boldmath$}X<{$}| *{7}{X|}}
\multicolumn{8}{@{}p{\textwidth}@{}}{\textbf{Question 2 } Complete each of the tables below $\pmod 7$} \\[2ex] \hline
\rowcolor{LightBlue!30}\multicolumn{1}{|c|}{} & \thead{0} & \thead{1} & \thead{2} & \thead{3} & \thead{4} & \thead{5} & \thead{6} \\ \hline
2^n & & & & & & & \\ \hline
3^n & & & & & & & \\ \hline
4^n & & & & & & & \\ \hline
5^n & & & & & & & \\ \hline
6^n & & & & & & & \\ \hline
\end{tabularx}
\end{document}
答案3
与。{NiceTabular}
nicematrix
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\mathversion{bold}
\renewcommand{\arraystretch}{1.4}
$\begin{NiceArray}{*{8}{c}}[hvlines,columns-width=5mm]
\CodeBefore
\rowcolor{lightgray}{1}
\columncolor{lightgray}{1}
\Body
& 0 & 1 & 2 & 3 & 4 & 5 & 6 \\
2^n \\
3^n \\
4^n \\
5^n \\
6^n
\end{NiceArray}$
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。
答案4
我接受了 LJR 的回答,并想在这里留下一个答案,其中包含示例代码,展示我最终如何实现我想要的。我剥离了大部分背景信息,只关注我想要实现的目标:轻松创建合适的表格。重要的是,最后一个表格较大,列较窄,并且只需在该表格上轻松进行此设置,而无需为每个表格单独设置宽度。
\documentclass[10pt,a4paper]{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tabularray}
\usepackage[margin=0.8in]{geometry}
\usepackage{multicol}
\usepackage{parskip}
\setlength\columnsep{30pt}
\newcommand{\question}[2]{
\textbf{Question\enspace#1}\quad#2
}
% Create a 'modtable' environment so that it is easy to
% include several like tables.
\NewTblrEnviron{modtable}
\SetTblrInner[modtable]{
colspec = {*{99}{X[c]}}, % 99 columns - we don't need to use them all
hlines, vlines, % all horizontal and vertical lines visible
columns = {8mm}, % set width for all columns...
column{1} = {7mm}, % ...but make the first one difference
row{1} = {6mm}, % set height for first row...
row{2-Z} = {8mm}, % ...and height for the rest
column{1} = {cyan9!30}, % background colour for first column and row
row{1} = {cyan9!30},
colsep = 0pt, % no row or column separation
rowsep = 0pt, % (it interferes with setting precise width/height)
}
\begin{document}
\begin{multicols}{2}
\question{1}{Complete each of the tables below.}
\medskip
{\small(mod 7)}
\begingroup
\mathversion{bold}
\quad
$\begin{modtable}{}
& 0 & 1 & 2 & 3 & 4 & 5 & 6 \\
2^n \\
3^n \\
4^n \\
5^n \\
6^n \\
\end{modtable}$
\endgroup
\medskip
{\small(mod 5)}
\begingroup
\mathversion{bold}
\quad
$\begin{modtable}{}
& 0 & 1 & 2 & 3 & 4 \\
2^n \\
3^n \\
4^n \\
\end{modtable}$
\endgroup
\medskip
{\small(mod 6)}
\begingroup
\mathversion{bold}
\quad
$\begin{modtable}{}
& 0 & 1 & 2 & 3 & 4 & 5 \\
2^n \\
3^n \\
4^n \\
5^n \\
\end{modtable}$
\endgroup
\columnbreak
\question{2}{Complete each of the tables below.}
\medskip
{\small(mod 8)}
\begingroup
\mathversion{bold}
\quad
$\begin{modtable}{}
& 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 \\
2^n \\
3^n \\
4^n \\
5^n \\
6^n \\
7^n \\
\end{modtable}$
\endgroup
\bigskip
{\small(mod 10)}
\begingroup
\mathversion{bold}
\quad
$\begin{modtable}{ column{2-Z} = {7mm} }
& 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \\
2^n \\
3^n \\
4^n \\
5^n \\
6^n \\
7^n \\
8^n \\
9^n \\
\end{modtable}$
\endgroup
\end{multicols}
\end{document}