Ich habe ein Problem mit einer Tabelle, die ich gerade erstellen möchte. Dies ist der Code, den ich derzeit habe:
\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}
Das gewünschte Ergebnis ist eine Tabelle, die Brüche enthält. Die Linien sind jedoch viel zu schmal und die Brüche berühren die Linien oben und unten.
Ich habe versucht, den Arraystretch auf 2 einzustellen (mit \renewcommand{\arraystretch}{2}
), aber dadurch wird die vertikale Zentrierung des Textes in der Zelle durcheinandergebracht, da nur Platz über dem Text hinzugefügt wird. Gibt es eine Möglichkeit, dieses Problem zu beheben?
Hinweis: Ich kann keine Booktabs verwenden, da die Tabelle, die ich zeichne, vertikale Linien haben muss. Sie sollte so aussehen:
In Word erstellt, die Schriftart und der Abstand sind nicht genau das, was ich brauche. Und das hier habe ich derzeit:
(In Word erstellt, die Schriftart und der Abstand entsprechen nicht genau meinen Anforderungen)
Antwort1
Tun Sie sich selbst einen Gefallen undnichtredefine \l
, \r
und \d
. Sie finden das vielleicht als praktische Tastenkombinationen, aber Sie werden in große Schwierigkeiten geraten, wenn Sie die Standardbedeutung dieser Befehle (die mit Akzenten zu tun haben) benötigen.
Die Einstellung der Breiten könnte auf Grundlage der Breite des breiten Paars erfolgen, es dauert jedoch einen Moment, das Richtige zu erraten.
\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}
Was ist \adj{\Big}
? Ich füge eine Strebe wie hinzu \Big|
. Für die Zeilen mit den großen Paaren habe ich verwendet \adj{\bigg}
, da die Klammern bereits sind \Big
.
Beachten Sie auch die Syntax \pair{x,y}
, die einfacher ist als (x\virg y)
.
\left
Warum nicht und verwenden \right
? Schauen Sie sich Ihre Ausgabe genau an und Sie werden feststellen, dass die Größen der großen Klammern in der oberen und unteren Reiheanders. Der Grund dafür ist, ob Sie es glauben oder nicht, das Minuszeichen in der unteren Zeile.
Ein anderer Vorschlag.
\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}
Antwort2
So was?
Eine Möglichkeit besteht darin, die \makegapedcells
im makecell
Paket definierte Anweisung zu verwenden, die vertikalen Abstand über/unter dem Zellinhalt hinzufügt:
\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}
Nachtrag: Unter Berücksichtigung des Kommentars von @Mico nehme ich die folgenden Änderungen an der obigen Lösung vor:
- Verwenden Sie
amsmath
das Paket für den Befehl\dfrac
, durch den Ihre bei Brüchen zu verwendende Definition ersetzt wird\displaystyle
. - Entfernen Sie die Definition für
\l
,\r
, es ist besser,\left
und zu schreibenright
. - Um die dritte und vierte Reihe gleich hoch zu machen,
\vphantom{-}
wird zum Bruch in der dritten Reihe addiert. Mit wird die Höhe der Brüche in den unteren Reihen gleich hoch.
Neues 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}
Antwort3
Ich denke, das Werkzeug der Wahl für dieses Problem istcellspace
das gewährleistet, dassminimalvertikaler Abstand am oberen und unteren Rand von Zellen in Spalten mit Spezifizierer, der mit dem Buchstaben beginnt S
(oder C
wenn Sie laden 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}
Antwort4
Wenn ich Ihre Anforderungen richtig verstehe, tabular
sollte die erste Lösung unten funktionieren, da alle vier Spalten genau die gleiche Breite und alle vier Zeilen die gleiche Höhe haben. Ich denke jedoch, dass die zweite tabular
Lösung unten (noch) besser aussieht.
\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}