我想合并两个单元格,同时在合并的单元格中留出空隙,但却遇到错误。
怎样才能将$x \le 120$
和设置$y \le 200$
在两行而不被水平线分开?
以前我用过makecell
但无法调整行距。
\documentclass{article}
\usepackage[lmargin=1.5cm,rmargin=1.5cm]{geometry}
\usepackage{multirow}
\usepackage{tabularx}%
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\begin{document}
\begin{table}[b!]
\centering
\caption{Test table}\label{table:test1}
\setlength\extrarowheight{2pt}
\begin{tabular}{ | L{5cm} | C{5cm} |}
\hline
Parameter & Value \\
\hline \hline
cost & 5 \$ \\
\hline
number & 12 \\
\hline
condition & \multirow{2}{*}{$x \le 120$, $y \le 200$} \\
~&~\\
\hline
\end{tabular}
\end{table}
\end{document}
答案1
不需要multirow
吧?
\documentclass{article}
\usepackage[lmargin=1.5cm,rmargin=1.5cm]{geometry}
\usepackage{multirow}
\usepackage{tabularx}%
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\begin{document}
\begin{table}[b!]
\centering
\caption{Test table}\label{table:test1}
\setlength\extrarowheight{2pt}
\begin{tabular}{ | L{5cm} | C{5cm} |}
\hline
Parameter & Value \\
\hline \hline
cost & 5 \$ \\
\hline
number & 12 \\
\hline
condition & $x \le 120$, \\
& $y \le 200$ \\
\hline
\end{tabular}
\end{table}
\end{document}
但我不得不说,我认为规则越少看起来就越好。
\documentclass{article}
\usepackage[lmargin=1.5cm,rmargin=1.5cm]{geometry}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\usepackage{booktabs} % for \toprule, \midrule, \bottomrule
\usepackage{caption} % will add some space between caption and table
\begin{document}
\begin{table}
\centering
\caption{Test table}\label{table:test1}
\setlength\extrarowheight{2pt}
\begin{tabular}{ L{5cm} C{5cm} }
\toprule
Parameter & Value \\
\midrule
cost & \$5 \\
number & 12 \\
condition & $x \le 120$, \\
& $y \le 200$ \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案2
像这样?
您需要multirow
在正确的单元格/列中使用...
\documentclass{article}
\usepackage[lmargin=1.5cm,rmargin=1.5cm]{geometry}
\usepackage{multirow}
\usepackage{tabularx}%
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash}m{#1}}
\begin{document}
\begin{table}[b!]
\centering
\caption{Test table}\label{table:test1}
\renewcommand\arraystretch{1.2}
\begin{tabular}{ | L{5cm} | C{5cm} |}
\hline
Parameter & Value \\
\hline \hline
cost & 5 \$ \\
\hline
number & 12 \\
\hline
\multirow{2}*{condition} & $x \le 120$, \\
& $y \le 200$ \\
\hline
\end{tabular}
\end{table}
\end{document}
为了更好地放置标题,请尝试使用caption
包。
答案3
从语义上讲,我更喜欢使用aligned
环境来拆分方程。我在顶部添加了一些最小的填充和单元格底部,带有cellspace
,因此单元格内容垂直居中。这样,我不需要不对称的\extrarowheight
:
\documentclass{article}
\usepackage[lmargin=1.5cm,rmargin=1.5cm]{geometry}
\usepackage{caption, cellspace}%
\usepackage{array, amsmath}
\setlength\cellspacetoplimit{2pt}
\setlength\cellspacebottomlimit{2pt}
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}S{m{#1}}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}S{m{#1}}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}S{m{#1}}}
\begin{document}
\begin{table}[b!]
\centering
\caption{Test table}\label{table:test1}
\begin{tabular}{ | L{5cm} | C{5cm} |}
\hline
Parameter & Value \\
\hline \hline
cost & 5\,\$ \\
\hline
number & 12 \\
\hline
condition & $\begin{aligned} x & \le 120,\\y & \le 200 \end{aligned}$ \\
\hline
\end{tabular}
\end{table}
\end{document}