
Ich habe eine longtable
mit abwechselnden rowcolor
und zwei mathematischen Spalten. Die Zeilenfarbe funktioniert wie vorgesehen, wenn der Inhalt der Zeile in einer einzigen Zeile steht und sowohl oberhalb als auch unterhalb des Zeileninhalts ein Füllzeichen vorhanden ist. Einige Einträge sind für beide Spalten gültig und stehen daher in der Mitte. Aber insgesamt sieht die Tabelle ziemlich hässlich aus :(
Aber wenn der Inhalt mehr als eine Zeile umfasst oder wenn ein Integralzeichen vorhanden ist, berührt die Zeilenfarbe den Inhalt und es gibt keine Polsterung. Ich habe versucht, sie zu erhöhen arraystretch
(es ist bereits 2 und macht keinen Unterschied), aber es hilft nicht. Ich habe auch versucht, makecell
sie zu verpacken, wie in einigen Antworten vorgeschlagen, aber das hat nicht so gut funktioniert extrarowheight
. Habe auch versucht, sie zu verpacken. Eine andere Sache, die ich versucht habe, ist, in jeder Zeile manuell Leerzeichen nach dem Zeilenumbruch einzufügen \\[5pt]
, aber das löst nur das Problem, dass die unteren Teile die nächste farbige Zeile und ihre Variable berühren. In einigen Fällen musste ich für ein besseres Aussehen 8pt oder 10pt hinzufügen. Der obere Teil des Inhalts wird verständlicherweise nicht davon beeinflusst, wenn nach der Zeile ein Leerzeichen hinzugefügt wird.
Bitte machen Sie Vorschläge, was getan werden kann. Andere Pakete longtable
und andere Tipps zur Verbesserung der Tabelle sind willkommen. Bonus, wenn alle Einträge in einer bestimmten Spalte ausgerichtet werden können.
MWE
\documentclass[twoside]{book}
\usepackage{geometry}
\geometry{paperwidth=205mm, paperheight=236mm, top=15mm,bottom=20mm, textheight=196mm, headsep=5mm, left=15mm, right=85mm, textwidth=95mm, marginpar=70mm,marginparsep=5mm}
\usepackage{amsmath}
\usepackage{fouriernc}
\usepackage{physics}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage[table,svgnames]{xcolor}
\usepackage{multicol}
\newcommand{\tbb}[1]{\textcolor{DarkSlateBlue}{{\textbf{#1}}}}
\newcolumntype{M}{>{$}p{4cm}<{$}} % math mode column
\begin{document}
\newgeometry{margin=15mm,inner=15mm,outer=15mm,marginparwidth=0cm,marginparsep=0mm}
%invoked newgeometry to fit the table in the given space, otherwise in the twoside mode the table runs into margin for even pages
{\everymath{\displaystyle}
\setlength{\tabcolsep}{8pt}
\renewcommand{\arraystretch}{2}
\rowcolors{3}{white}{DarkSlateBlue!30}
\begin{longtable}{p{5cm}MM}
\toprule
\tbb{Relation} & \tbb{\text{SI}} & \tbb{\text{Gaussian System}} \\
\midrule
Relation between $\vb{D}$ and $\vb{E}$ & \vb{D} = \varepsilon \varepsilon_{0} \vb{E} & \vb{D} = \varepsilon \vb{E} \\
Gauss theorem for vector $\vb{D}$ & \oint \vb{D} \, \dd \vb{S} = q & \oint \vb{D} \, \dd \vb{S} = 4 \pi q\\
Capacitance of a capacitor & \multicolumn{2}{c}{ $C = \frac{q}{U}$} \\
Capacitance of a parallel-plate capacitor & C = \frac{\varepsilon \varepsilon_{0}S}{h}& C = \frac{\varepsilon S}{4 \pi h} \\
Energy of system of charges & \multicolumn{2}{c}{ $W = \frac{1}{2} \sum q_{i} \varphi_{i} $} \\
Total energy of interaction & \multicolumn{2}{c}{ $W = \frac{1}{2} \int \rho \, \varphi \, \dd V $} \\
Energy of capacitor & \multicolumn{2}{c}{ $W = \frac{qU}{2} = \frac{CU^{2}}{2} = \frac{q^{2}}{2C} $} \\
Electric field energy density & w = \frac{\vb{E}\vdot \vb{D}}{2} & w = \frac{\vb{E}\vdot \vb{D}}{8 \pi}\\
\bottomrule
\end{longtable}
}
\clearpage
\restoregeometry
\end{document}
Antwort1
\documentclass{book}
\usepackage[margin=15mm]{geometry}
\usepackage{physics}
\usepackage[svgnames]{xcolor}
\usepackage{tabularray}
\begin{document}
\begin{longtblr}
[
caption = {title},
label = {key},
]
{
colspec = {X[1.5,l,m]X[l,m]X[l,m]},
hline{1,Z} = {wd=.08em},
hline{2} = {wd=.05em},
row{1} = {font=\bfseries,fg=DarkSlateBlue},
cell{4,6,7,8}{2} = {c=2}{halign=c},
row{even[2-Z]} = {bg=DarkSlateBlue!30},
cell{2-Z}{2-Z} = {mode=dmath},
}
Relation & SI & Gaussian System \\
Relation between $\vb{D}$ and $\vb{E}$ & \vb{D}=\varepsilon\varepsilon_{0}\vb{E} & \vb{D}=\varepsilon\vb{E} \\
Gauss theorem for vector $\vb{D}$ & \oint\vb{D}\,\dd\vb{S}=q & \oint \vb{D}\,\dd\vb{S}=4\pi q \\
Capacitance of a capacitor & C=\frac{q}{U} & \\
Capacitance of a parallel-plate capacitor & C=\frac{\varepsilon \varepsilon_{0}S}{h} & C=\frac{\varepsilon S}{4\pi h} \\
Energy of system of charges & W=\frac{1}{2}\sum q_{i}\varphi_{i} & \\
Total energy of interaction & W=\frac{1}{2}\int\rho\,\varphi\,\dd V & \\
Energy of capacitor & W=\frac{qU}{2}=\frac{CU^{2}}{2}=\frac{q^{2}}{2C} & \\
Electric field energy density & w=\frac{\vb{E}\vdot\vb{D}}{2} & w=\frac{\vb{E}\vdot\vb{D}}{8\pi} \\
\end{longtblr}
\clearpage
\restoregeometry
\end{document}
Antwort2
Als Ergänzung zur netten Antwort von Clara mit leicht verändertem Tabellenlayout:
- keine neue Geometrie für die Tabelle, die Tabelle kann gut in das vorhandene Tabellenlayout eingepasst werden
- größer
rowsep
- andere Möglichkeit zum "Zentrieren" von zweispaltigen Zellen
\documentclass[twoside]{book}
\usepackage{geometry} % set desired page layout
\usepackage{physics}
\usepackage[svgnames]{xcolor}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\clearpage
\begin{longtblr}[
caption = {title},
label = {key}]{colspec = {Q[l] X[l,mode=dmath] X[l,mode=dmath]},
column{2} = {colsep = 2em}, % <---
rowsep = 5pt, % <---
row{1} = {font=\bfseries, mode=text},
cell{4,6,7,8}{2} = {c=2}{preto=\hspace{8em},l}, % <---
row{even[2]} = {bg=DarkSlateBlue!30},
}
\toprule
Relation
& SI
& Gaussian System \\
\midrule
Relation between $\vb{D}$ and $\vb{E}$
& \vb{D}=\varepsilon\varepsilon_{0}\vb{E}
& \vb{D}=\varepsilon\vb{E} \\
Gauss theorem for vector $\vb{D}$
& \oint\vb{D}\,\dd\vb{S}=q
& \oint \vb{D}\,\dd\vb{S}=4\pi q \\
Capacitance of a capacitor
& C=\frac{q}{U}
& \\
Capacitance of a parallel-plate capacitor
& C=\frac{\varepsilon_{r} \varepsilon_{0}S}{h}
& C=\frac{\varepsilon S}{4\pi h} \\
Energy of system of charges
& W=\frac{1}{2}\sum q_{i}\varphi_{i}
& \\
Total energy of interaction
& W=\frac{1}{2}\int\rho\,\varphi\,\dd V
& \\
Energy of capacitor
& W=\frac{qU}{2}=\frac{CU^{2}}{2}=\frac{q^{2}}{2C}
& \\
Electric field energy density
& w=\frac{\vb{E}\vdot\vb{D}}{2}
& w=\frac{\vb{E}\vdot\vb{D}}{8\pi} \\
\bottomrule
\end{longtblr}
\end{document}
Antwort3
Eine Lösung basierend auf longtable
und cellspace
für zusätzlichen Abstand.
Es gibt ein paar Korrekturen an der Standardeinstellung von LaTeX. Zunächst habe ich die erste Zeile durch Hinzufügen einer unsichtbaren Linie gestreckt. Zweitens habe ich in der Zeile vor der letzten den Platz, der von hochgestellten Ziffern in Brüchen eingenommen würde, reduziert, indem ich Ausdrücke in \cramped
und einschließe \smash
.
\documentclass[twoside]{book}
\usepackage{geometry}
\usepackage{mathtools} % Required by \cramped{}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage[column=E]{cellspace}
\usepackage[table,svgnames]{xcolor}
\usepackage{fouriernc}
\usepackage{physics}
\setlength\cellspacetoplimit{3pt}
\setlength\cellspacebottomlimit{3pt}
\newcommand{\tbb}[1]{\textcolor{DarkSlateBlue}{{\textbf{#1}}}}
\newcolumntype{M}{>{$}E{l}<{$}} % math mode column
\newcolumntype{L}{E{l}}
\newcommand\dstrut[1][1]{%
\rule[-0.5\dimexpr#1\normalbaselineskip-1ex]{0pt}{#1\dimexpr\normalbaselineskip}}
\begin{document}
\begingroup
\centering
\everymath{\displaystyle}
\setlength{\tabcolsep}{8pt}
\rowcolors{3}{white}{DarkSlateBlue!30}
\begin{longtable}{LMM}
\toprule
\multicolumn{1}{l}{\tbb{Relation}} & \multicolumn{1}{l}{\tbb{\text{SI}}} & \multicolumn{1}{l}{\tbb{\text{Gaussian System}}} \\
\specialrule{\lightrulewidth}{3pt}{0pt}
\dstrut[1.5]%
Relation between $\vb{D}$ and $\vb{E}$ & \vb{D} = \varepsilon \varepsilon_{0} \vb{E} & \vb{D} = \varepsilon \vb{E} \\
Gauss theorem for vector $\vb{D}$ & \oint \vb{D} \, \dd \vb{S} = q & \oint \vb{D} \, \dd \vb{S} = 4 \pi q \\
Capacitance of a capacitor & \multicolumn{2}{E{c}}{$C = \frac{q}{U}$} \\
Capacitance of a parallel-plate capacitor & C = \frac{\varepsilon \varepsilon_{0}S}{h} & C = \frac{\varepsilon S}{4 \pi h} \\
Energy of system of charges & \multicolumn{2}{E{c}}{$W = \frac{1}{2} \sum q_{i} \varphi_{i} $} \\
Total energy of interaction & \multicolumn{2}{E{c}}{$W = \frac{1}{2} \int \rho \, \varphi \, \dd V $} \\
Energy of capacitor & \multicolumn{2}{E{c}}{$W = \frac{qU}{2} = \smash{\cramped{\frac{CU^{2}}{2} = \frac{q^{2}}{2C}}}$} \\
Electric field energy density & w = \frac{\vb{E}\vdot \vb{D}}{2} & w = \frac{\vb{E}\vdot \vb{D}}{8 \pi}\\
\specialrule{\heavyrulewidth}{0pt}{0pt}
\end{longtable}\par
\endgroup
\end{document}
Antwort4
Mit {NiceTabular}
von nicematrix
.
\documentclass{book}
\usepackage[margin=15mm]{geometry}
\usepackage{physics}
\usepackage[svgnames]{xcolor}
\usepackage{nicematrix}
\usepackage{booktabs}
\begin{document}
\everymath{\displaystyle}
\begin{NiceTabular}{X[3,l]X[2,l]X[2,l]}[cell-space-limits=3pt]
\CodeBefore
\rowcolors{2}{}{DarkSlateBlue!30}
\Body
\toprule
\RowStyle[bold,color=DarkSlateBlue]{}
Relation & SI & Gaussian System
\\
\midrule
Relation between $\vb{D}$ and $\vb{E}$ & $\vb{D}=\varepsilon\varepsilon_{0}\vb{E}$ & $\vb{D}=\varepsilon\vb{E}$ \\
Gauss theorem for vector $\vb{D}$ & $\oint\vb{D}\,\dd\vb{S}=q$ & $\oint \vb{D}\,\dd\vb{S}=4\pi q$ \\
Capacitance of a capacitor & \Block{1-2}{$C=\frac{q}{U}$} \\
Capacitance of a parallel-plate capacitor & $C=\frac{\varepsilon \varepsilon_{0}S}{h}$ & $C=\frac{\varepsilon S}{4\pi h}$ \\
Energy of system of charges & \Block{1-2}{$W=\frac{1}{2}\sum q_{i}\varphi_{i}$} \\
Total energy of interaction & \Block{1-2}{$W=\frac{1}{2}\int\rho\,\varphi\,\dd V$} \\
Energy of capacitor & \Block{1-2}{$W=\frac{qU}{2}=\frac{CU^{2}}{2}=\frac{q^{2}}{2C}$} \\
Electric field energy density & $w=\frac{\vb{E}\vdot\vb{D}}{2}$ &
$w=\frac{\vb{E}\vdot\vb{D}}{8\pi}$ \\
\bottomrule
\end{NiceTabular}
\end{document}
Sie benötigen mehrere Kompilierungen (da nicematrix
im Hintergrund PGF/Tikz-Knoten verwendet werden).