使用多行时无法放置中心

使用多行时无法放置中心

我无法让“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}

相关内容