我正在嘗試做的表有問題。這是我目前擁有的程式碼:
\documentclass[12pt,letterpaper,french]{extarticle}
\usepackage[margin=.75in]{geometry}
\renewcommand{\l}{\left}
\renewcommand{\r}{\right}
\renewcommand{\d}{\displaystyle}
\newcommand{\virg}{\:,\:}
\renewcommand{\arraystretch}{2}
\usepackage{multirow}
\begin{document}
\begin{center}
\begin{tabular}{cc|c|c|}
\cline{3-4}
& & \multicolumn{2}{c|}{Individu 1} \\ \cline{3-4}
& & Colombe & Faucun \\ \hline
\multicolumn{1}{|c|}{\multirow{2}{*}{Individu 2}} & Colombe & \(\d\l(\frac{g}{2} \virg \frac{g}{2}\r)\) & \((g \virg 0)\) \\ \cline{2-4}
\multicolumn{1}{|c|}{} & Faucon & \((0 \virg g)\) & \(\d\l(\frac{g-c}{2} \virg \frac{g-c}{2}\r)\) \\ \hline
\end{tabular}
\end{center}
\end{document}
我想要的結果是一個包含分數的表格。但線條太窄,分數觸及頂部和底部的線條。
我嘗試將 arraystretch 調整為 2 (使用\renewcommand{\arraystretch}{2}
),但這會擾亂單元格中文字的垂直居中,因為它只會在文字頂部添加空間。有什麼辦法可以解決這個問題嗎?
注意:我不能使用書籤,因為我正在繪製的表格必須有垂直線。它應該看起來像這樣:
用word製作的,字體和間距不完全是我需要的,這就是我目前擁有的:
(用word製作的,字體和間距不完全是我需要的)
答案1
幫自己一個忙不重新定義\l
,\r
和\d
.您可能會發現它們是方便的快捷方式,但是如果需要這些命令的標準含義(與重音符號有關),您就會遇到很大的麻煩。
寬度的設定可以依照寬對的寬度來進行,但是只需要一點時間就能猜出哪個是好的。
\documentclass[12pt,letterpaper,french]{extarticle}
\usepackage[margin=.75in]{geometry}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{amsmath}
\usepackage{multirow,array}
%\usepackage{xparse} % not needed with LaTeX 2020-10-01 or later
\NewDocumentCommand{\pair}{s O{} >{\SplitArgument{1}{,}}m }{%
\IfBooleanTF{#1}
{\left(\makepair#3\right)}
{\mathopen{#2(}\makepair#3\mathclose{#2)}}%
}
\NewDocumentCommand{\makepair}{ m m }{%
#1\mspace{4mu}{,}\mspace{4mu}#2%
}
\newcommand{\adj}[1]{\ensuremath{\vphantom{#1|}}\ignorespaces}
\begin{document}
\begin{center}
\begin{tabular}{|c|c|w{c}{7em}|w{c}{7em}|}
\cline{3-4}
\multicolumn{2}{c|}{\adj{\Big}} & \multicolumn{2}{c|}{Individu 1} \\
\cline{3-4}
\multicolumn{2}{c|}{\adj{\Big}} & Colombe & Faucon \\
\hline
\multirow{3}{*}{Individu 2}
& \adj{\bigg} Colombe & \(\pair[\Big]{\dfrac{g}{2},\dfrac{g}{2}}\) & \(\pair{g,0}\) \\
\cline{2-4}
& \adj{\bigg} Faucon & \(\pair{0,g}\) & \(\pair[\Big]{\dfrac{g-c}{2},\dfrac{g-c}{2}}\) \\
\hline
\end{tabular}
\end{center}
\end{document}
什麼是\adj{\Big}
?我添加了一個類似的支柱\Big|
。對於具有大對的行,我使用了\adj{\bigg}
,因為括號已經是\Big
。
\pair{x,y}
另請注意比 更簡單的語法(x\virg y)
。
為什麼不使用\left
and \right
?仔細觀察你的輸出,你會發現頂行和底行大括號的大小是不同的。不管你信不信,原因是底行有減號。
一個不同的建議。
\documentclass[12pt,letterpaper,french]{extarticle}
\usepackage[margin=.75in]{geometry}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{amsmath}
\usepackage{booktabs,array}
%\usepackage{xparse} % not needed with LaTeX 2020-10-01 or later
\NewDocumentCommand{\pair}{s O{} >{\SplitArgument{1}{,}}m }{%
\IfBooleanTF{#1}
{\left(\makepair#3\right)}
{\mathopen{#2(}\makepair#3\mathclose{#2)}}%
}
\NewDocumentCommand{\makepair}{ m m }{%
#1\mspace{4mu}{,}\mspace{4mu}#2%
}
\begin{document}
\begin{center}
\begin{tabular}{c w{c}{7em} w{c}{7em}}
\toprule
Individu 2 & \multicolumn{2}{c}{Individu 1} \\
\cmidrule(lr){2-3}
& Colombe & Faucon \\
\midrule
Colombe & \(\pair[\Big]{\dfrac{g}{2},\dfrac{g}{2}}\) & \(\pair{g,0}\) \\
\addlinespace
Faucon & \(\pair{0,g}\) & \(\pair[\Big]{\dfrac{g-c}{2},\dfrac{g-c}{2}}\) \\
\bottomrule
\end{tabular}
\end{center}
\end{document}
答案2
像這樣?
\makegapedcells
一種方法是使用套件中定義的指令makecell
,該指令在單元格內容的上方/下方添加垂直空間:
\documentclass[12pt,letterpaper,french]{extarticle}
\usepackage[margin=.75in]{geometry}
\renewcommand{\l}{\left}
\renewcommand{\r}{\right}
\renewcommand{\d}{\displaystyle}
\newcommand{\virg}{\:,\:}
\renewcommand{\arraystretch}{2}
\usepackage{makecell, multirow}
\begin{document}
\begin{center}
\setcellgapes{5pt}
\makegapedcells
\begin{tabular}{cc|c|c|}
\cline{3-4}
& & \multicolumn{2}{c|}{Individu 1} \\ \cline{3-4}
& & Colombe & Faucun \\ \hline
\multicolumn{1}{|c|}{\multirow{2}{*}{Individu 2}} & Colombe & \(\d\l(\frac{g}{2} \virg \frac{g}{2}\r)\) & \((g \virg 0)\) \\ \cline{2-4}
\multicolumn{1}{|c|}{} & Faucon & \((0 \virg g)\) & \(\d\l(\frac{g-c}{2} \virg \frac{g-c}{2}\r)\) \\ \hline
\end{tabular}
\end{center}
\end{document}
附錄: 考慮到@Mico評論,我對上述解決方案進行了以下更改:
- 使用
amsmath
package for command\dfrac
,將其替換為\displaystyle
分數的定義。 \l
去掉,的定義\r
,最好寫成\left
和right
。- 為了使第三行和第四行的高度相等,將
\vphantom{-}
與第三行中的分數相加。有了它,機器人行中的分數高度變得相等。
新的MWE:
\documentclass[12pt,letterpaper,french]{extarticle}
\usepackage[margin=.75in]{geometry}
\usepackage{amsmath}
\newcommand{\virg}{\:,\:}
\usepackage{makecell, multirow}
\begin{document}
\begin{center}
\setcellgapes{5pt}
\makegapedcells
\begin{tabular}{cc|c|c|}
\cline{3-4}
& & \multicolumn{2}{c|}{Individu 1} \\ \cline{3-4}
& & Colombe & Faucun \\ \hline
\multicolumn{1}{|c|}{\multirow{4}{*}{Individu 2}}
& Colombe & \(\left(\dfrac{g}{2}\virg\dfrac{g\vphantom{-}}{2}\right)\)
& \((g\virg0)\) \\ \cline{2-4}
\multicolumn{1}{|c|}{}
& Faucon & \((0\ ,\ g)\)
& \(\left(\dfrac{g-c}{2}\virg\dfrac{g-c}{2}\right)\) \\ \hline
\end{tabular}
\end{center}
\end{document}
答案3
我認為解決這個問題的工具是cellspace
確保最小的列中單元格頂部和底部的垂直間距,帶有以字母為前綴的說明符S
(或C
如果加載siunitx
):
\documentclass[12pt,letterpaper,french]{extarticle}
\usepackage[margin=.75in]{geometry}
\usepackage{amsmath}
\usepackage{cellspace}
\setlength{\cellspacetoplimit}{5pt}
\setlength{\cellspacebottomlimit}{5pt}
\renewcommand{\l}{\left}
\renewcommand{\r}{\right}
\renewcommand{\d}{\displaystyle}
\newcommand{\virg}{\:,\:}
\renewcommand{\arraystretch}{2}
\usepackage{multirow}
\begin{document}
\begin{center}
\begin{tabular}{cc|Sc|Sc|}
\cline{3-4}
& & \multicolumn{2}{c|}{Individu 1} \\ \cline{3-4}
& & Colombe & Faucun \\ \hline
\multicolumn{1}{|c|}{\multirow{2}{*}{Individu 2}} & Colombe & \(\Bigl(\dfrac{g}{2} \virg \dfrac{g}{2}\Bigr)\) & \((g \virg 0)\) \\ \cline{2-4}
\multicolumn{1}{|c|}{} & Faucon & \((0 \virg g)\) & \(\Bigl(\dfrac{g-c}{2} \virg \dfrac{g-c}{2}\Bigr)\) \\ \hline
\end{tabular}
\end{center}
\end{document}
答案4
如果我正確理解您的要求,tabular
下面的第一個解決方案應該有效,因為所有四列具有完全相同的寬度,所有四行具有相同的高度。然而,我認為tabular
下面的第二個解決方案看起來(甚至)更好。
\documentclass[12pt,letterpaper,french]{extarticle}
\usepackage[margin=.75in]{geometry}
\usepackage{multirow,array,babel,amsmath}
\newcommand\myfrac{\Bigl( \frac{g-c}{2}, \frac{g-c}{2} \Bigr)}
\newlength\mylen
\settowidth\mylen{$\displaystyle\myfrac$}
\newcolumntype{C}{>{$\displaystyle}w{c}{\mylen}<{$}}
\newcommand\tallstrut{\vphantom{\biggl|}} % typographic struts
\newcommand\shortstrut{\smash[b]{\vphantom{\Bigl|}}}
\begin{document}
\begin{table}
\centering
\begin{tabular}{|w{c}{\mylen}|w{c}{\mylen}|C|C|}
\cline{3-4}
\multicolumn{1}{c}{} & & \multicolumn{2}{c|}{Individu 1$\tallstrut$} \\
\cline{3-4}
\multicolumn{1}{c}{} & & $Colombe$\tallstrut & $Faucon$\tallstrut \\
\hline
\multirow{3}{*}{Individu 2}
& Colombe & \Bigl( \frac{g}{2}, \frac{g}{2} \Bigr)\tallstrut & (g,0) \\
\cline{2-4}
& Faucon & (0,g)\tallstrut & \myfrac \\
\hline
\end{tabular}
\bigskip\bigskip
\begin{tabular}{|c|c|C|C|}
\cline{3-4}
\multicolumn{1}{c}{} & & \multicolumn{2}{c|}{Individu 1$\shortstrut$} \\
\cline{3-4}
\multicolumn{1}{c}{} & & $Colombe$\shortstrut & $Faucon$ \\
\hline
\multirow{3}{*}{Individu 2}
& Colombe & \Bigl( \frac{g}{2}, \frac{g}{2} \Bigr)\tallstrut & (g,0) \\
\cline{2-4}
& Faucon & (0,g)\tallstrut & \myfrac \\
\hline
\end{tabular}
\end{table}
\end{document}