我无法让“Beda Maju”、“Beda Mundur”和“Beda Pusat”垂直居中。我该怎么做?
如果我改为,*
问题仍然没有解决。\multirow{2}{*}
\multirow{2}{2.5cm}
这是我的代码。
\begin{table}[h]
\centering
\caption{Tabel Turunan Numerik Beda Hingga}
\label{tabelbedahingga}
\resizebox{\textwidth}{!}{
\begin{tabular}{|c|c|c|c|}
\hline
\rowcolor{green!10}
\multicolumn{2}{|c|}{Beda Hingga}&Rumus&Orde Kesalahan\\
\hline
\multirow{2}{*}{Beda Maju}&Turunan Pertama&$y'_i =\dfrac{y_{i+1}-y_{i}}{h}$&$O(h)$\\
\cline{2-3}
&Turunan Kedua&$y''_i =\dfrac{y_{i+2}-2y_{i+1}+y_i}{h^2}$&$O(h)$\\
\hline
\multirow{2}{*}{Beda Mundur}&Turunan Pertama&$y'_i=\dfrac{y_{i}-y_{i-1}}{h}$&$O(h)$\\
\cline{2-3}
&Turunan Kedua&$y''_i =\dfrac{y_{i}-2y_{i-1}+y_{i-2}}{h^2}$&$O(h)$\\
\hline
\multirow{3}{*}{Beda Pusat} &Turunan Pertama&$y'_i=\dfrac{y_{i+1}-y_{i-1}}{2h}$&$O(h^2)$\\
\cline{2-3}
&\multirow{2}{*}{Turunan Kedua}&$y''_i =\dfrac{y_{i+2}-2y_{i}+y_{i-2}}{4h^2}$&$O(h^2)$\\
\cline{3-3}
&&$y''_i =\dfrac{y_{i+1}-2y_{i}+y_{i-1}}{h^2}$&$O(h^2)$\\
\hline
\end{tabular}
}
\end{table}
答案1
我想您希望多行内容垂直居中,这可以通过使用垂直移动可选参数进行反复试验来完成。
我使用该包给单元格添加了一些填充cellspace
,并使用该包在标题和表格之间添加了更合理的间距caption
。
\documentclass{article}
\usepackage{amsmath}
\usepackage{multirow, caption}
\usepackage{cellspace}
\setlength{\cellspacetoplimit}{4pt}
\setlength{\cellspacebottomlimit}{4pt}
\usepackage[table]{xcolor}
\begin{document}
\begin{table}[h]
\centering
\caption{Tabel Turunan Numerik Beda Hingga}
\label{tabelbedahingga}
\begin{tabular}{|c|c|Sc|Sc|}
\hline
\rowcolor{green!10}
\multicolumn{2}{|c|}{Beda Hingga}&Rumus&Orde Kesalahan\\
\hline
\multirow{2}{*}[-1.6ex]{Beda Maju}&Turunan Pertama&$y'_i =\dfrac{y_{i+1}-y_{i}}{h}$&$O(h)$\\
\cline{2-3}
&Turunan Kedua&$y''_i =\dfrac{y_{i+2}-2y_{i+1}+y_i}{h^2}$&$O(h)$\\
\hline
\multirow{2}{*}[-1.6ex]{Beda Mundur}&Turunan Pertama&$y'_i=\dfrac{y_{i}-y_{i-1}}{h}$&$O(h)$\\
\cline{2-3}
&Turunan Kedua&$y''_i =\dfrac{y_{i}-2y_{i-1}+y_{i-2}}{h^2}$&$O(h)$\\
\hline
\multirow{3}{*}[-3.5ex]{Beda Pusat} &Turunan Pertama&$y'_i=\dfrac{y_{i+1}-y_{i-1}}{2h}$&$O(h^2)$\\
\cline{2-3}
&\multirow{2}{*}[-1.7ex]{Turunan Kedua}&$y''_i =\dfrac{y_{i+2}-2y_{i}+y_{i-2}}{4h^2}$&$O(h^2)$\\
\cline{3-3}
&&$y''_i =\dfrac{y_{i+1}-2y_{i}+y_{i-1}}{h^2}$&$O(h^2)$\\
\hline
\end{tabular}
\end{table}
\end{document}
答案2
单元格内容的垂直居中并不是一个简单的问题。
前面的答案只是通过手动调整来解决问题。另一种方法可能是在语句中谎报行号\multirow
。如下所示。
这也解决了美观问题。但是,在我看来,这些并不是令人满意的解决方案,我希望有一种通用的方法来做到这一点。
\documentclass{article}
\usepackage{amsmath}
\usepackage{multirow,cellspace,caption}
\usepackage[table]{xcolor}
\usepackage{graphicx}
\setlength{\cellspacetoplimit}{4pt}
\setlength{\cellspacebottomlimit}{4pt}
\begin{document}
\begin{table}[h]
\centering
\caption{Tabel Turunan Numerik Beda Hingga}
\label{tabelbedahingga}
\begin{tabular}{|c|c|Sc|c|}
\hline
\rowcolor{green!10}
\multicolumn{2}{|c|}{Beda Hingga} & Rumus & Orde Kesalahan\\
\hline
\multirow{3}{*}{Beda Maju}
& Turunan Pertama & $y'_i =\dfrac{y_{i+1}-y_{i}}{h}$&$O(h)$\\
\cline{2-3}
& Turunan Kedua & $y''_i =\dfrac{y_{i+2}-2y_{i+1}+y_i}{h^2} $ & $O(h)$ \\
\hline
\multirow{3}{*}{Beda Mundur}
& Turunan Pertama & $y'_i=\dfrac{y_{i}-y_{i-1}}{h}$&$O(h)$\\
\cline{2-3}
& Turunan Kedua & $y''_i =\dfrac{y_{i}-2y_{i-1}+y_{i-2}}{h^2}$&$O(h)$\\
\hline
\multirow{5}{*}{Beda Pusat}
& Turunan Pertama & $y'_i=\dfrac{y_{i+1}-y_{i-1}}{2h}$&$O(h^2)$\\
\cline{2-3}
& \multirow{3}{*}{Turunan Kedua}
& $y''_i =\dfrac{y_{i+2}-2y_{i}+y_{i-2}}{4h^2}$&$O(h^2)$\\
\cline{3-3}
& & $y''_i =\dfrac{y_{i+1}-2y_{i}+y_{i-1}}{h^2}$&$O(h^2)$\\
\hline
\end{tabular}
\end{table}
\end{document}
答案3
如果你愿意换成另一个表格包,那么包卡路里将使构建您要求的表格变得容易:
\documentclass{article}
\usepackage{amsmath, nccmath, caption, CALS}
\usepackage[table]{xcolor}
\usepackage{nccmath}
\let\nc=\nullcell %Shortcuts
\let\sc=\spancontent
\begin{document}
\begin{table}
\centering
\caption{Tabel Turunan Numerik Beda Hingga}
\label{tabelbedahinggaga}
\begin{calstable}
% Define four columns relative to margin, makes it easy to find correct tabular width
\colwidths{{\dimexpr(\columnwidth/40* 7)\relax}
{\dimexpr(\columnwidth/40* 9)\relax}
{\dimexpr(\columnwidth/40* 13)\relax}
{\dimexpr(\columnwidth/40* 11)\relax}
}
% Set up a basic grid
\makeatletter
\def\cals@framers@width{0.8pt}
\def\cals@framecs@width{0.8pt}
\cals@setpadding{Ag}
\cals@setcellprevdepth{Al}
\def\cals@cs@width{0.4pt}
\def\cals@rs@width{0.4pt}
% Tabular starts
% R1 Heading
\thead{\bfseries
\brow
\def\cals@bgcolor{green!15} % Switch on colour
\nc{ltb}
\nc{rtb}\alignC\sc{\vfil Beda Hingga} % Horizontal centering the last until reset
\cell{\vfil Rumus}
\cell{\vfil Orde Kesalahan}
\def\cals@bgcolor{} % Switch off colour
\erow
\mdseries}
% R2
\brow
\nc{lrt}
\cell{\vfil Turunan Pertama}
\cell{\vfil $y'_i =\dfrac{y_{i+1}-y_{i}}{h}$}
\def\cals@borderB{0pt}
\cell{$O(h)$}
\let\cals@borderB\relax
\erow
%R3
\brow
\nc{lrb}\alignC\sc{\vfil Beda Maju}
\cell{\vfil Turunan Kedua}
\cell{\vfil $y''_i =\dfrac{y_{i+2}-2y_{i+1}+y_i}{h^2}$}
\cell{\vfil $O(h)$}
\erow
%R4
\brow
\nc{lrt}
\cell{\vfil Turunan Pertama}
\cell{\vfil $y'_i=\dfrac{y_{i}-y_{i-1}}{h}$}
\def\cals@borderB{0pt} % Switch on bottom border
\cell{\vfil $O(h)$}
\let\cals@borderB\relax % % Switch off bottom border
\erow
%R5
\brow
\nc{lrb}\alignC\sc{\vfil Beda Mundur}
\cell{\vfil Turunan Kedua}
\cell{\vfil $y''_i =\dfrac{y_{i}-2y_{i-1}+y_{i-2}}{h^2}$}
\cell{\vfil $O(h)$}
\erow
%R6
\brow
\nc{lrt}
\cell{\vfil Turunan Pertama}
\cell{\vfil $y'_i=\dfrac{y_{i+1}-y_{i-1}}{2h}$}
\def\cals@borderB{0pt} % Switch on bottom border
\cell{\vfil $O(h^2)$}
\let\cals@borderB\relax %% Switch off bottom border
\erow
%R7
\brow
\nc{lr}
\nc{lrt}
\cell{\vfil $y''_i =\dfrac{y_{i+2}-2y_{i}+y_{i-2}}{4h^2}$}
\def\cals@borderB{0pt} % Switch off bottom border.
\cell{\vfil $O(h^2)$}
\let\cals@borderB\relax % Switch on bottom border
\erow
%R8
\brow
\nc{lrb}\alignC\sc{\vfil Beda Pusat}
\nc{lrb}\sc{\vfil Turunan Kedua}
\cell{\vfil $y''_i =\dfrac{y_{i+1}-2y_{i}+y_{i-1}}{h^2}$}
\cell{\vfil $O(h^2)$}
\erow
\makeatother
\end{calstable}
\end{table}
\end{document}
请注意,通过定义打开和关闭颜色、线条、侧边距等的简单开关,可以删除许多代码行。根据文档中的示例,我定义了一个打开和关闭颜色的宏:
\def\green{\ifx\cals@bgcolor\empty % Colour switch (on-off)
\def\cals@bgcolor{green!15}
\else \def\cals@bgcolor{} \fi}
如果将\green
单元格放在单元格之前和之后,则会得到一个绿色单元格。如果将其放在行的开头和结尾,则会得到一个可以\rowcolour
工作的单元格。开启开关在所有行的所有单元格上起作用,直到关闭为止。请注意,您需要将行
\def\cals@bgcolor{}
第一次使用宏之前。
该宏可适用于打开和关闭边框和线条(装饰):
\def\bb{\ifx\cals@borderB\relax % Bottom border switch (on of)
\def\cals@borderB{0pt}
\else \let\cals@borderB\relax\fi}