Latex 中 table 中文本的垂直对齐(背面)
Vertical Alignment of text in a table in Latex (Overleaf)
我在背面有以下示例代码来生成 table。
\documentclass[hidelinks,a4paper,12pt,oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[margin=1in]{geometry}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{array}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\usepackage{stackengine}
\newcommand\xrowht[2][0]{\addstackgap[0.5\dimexpr#2\relax]{\vphantom{#1}}}
\title{table}
\begin{document}
\maketitle
\begin{table}[ht]
\footnotesize
\centering
\begin{tabular}{|P{0.75cm}|P{1.25cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{1cm}|P{1cm}|P{1cm}|P{1cm}|P{0.75cm}|}
\hline\xrowht[()]{15pt}
\multirow{2}{*}{Test} & \multirow{2}{*}{Name} & \multicolumn{3}{c|}{Domain} & \multirow{2}{*}{Cell} & \multicolumn{4}{c|}{MLR} & \multirow{2}{*}{$C_1$} & \multirow{2}{*}{$C_2$}\
\cline{3-5}\cline{7-10}\xrowht[()]{15pt}
No & & x & y & z & Size & $\dot{m_t}$ & $\dot{m}_{in}$ & $\dot{m}_{out}$ & $\dot{m}_{avg}$ & & \
\hline\xrowht[()]{15pt}
1 & Mass1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 \
\hline\xrowht[()]{15pt}
2 & Mass2 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & \multicolumn{2}{c|}{0.1} & 0.1 & 0.1 & 0.1 \
\hline
\end{tabular}
\vspace{0.5cm}
\caption{Tests}
\end{table}
\end{document}
这给了我,
问题: 我无法将 table 中的文本垂直对齐到居中或任何其他位置。例如,文本“测试编号”、“名称”、“单元格大小”、“C1”和“C2”应该垂直居中对齐。此外,我看到使用 \hline\xrowht[()]{15pt}
给我不同的框宽度,参见“域”和“MLR”框。任何人都可以帮助我以正确的方式设置这个 table 吗?
谢谢大家
与其手动修改 table 的行高,不如更改 \arraystretch
,所有单元格将自动居中
其他几点:
与其在标题上方手动添加 space,不如查看 caption
包
请查看 http://betterposters.blogspot.com/2012/08/the-data-prison.html or https://www.inf.ethz.ch/personal/markusp/teaching/guides/guide-tables.pdf 以获得一些关于漂亮 table 布局的指南。把你的数据关进监狱绝对不是一个好的设计
不要将 multi-letter 表达式如 avg
或 out
放入数学模式。这将完全弄乱字距
\documentclass[hidelinks,a4paper,12pt,oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[margin=1in]{geometry}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{array}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\usepackage{caption}
\title{table}
\begin{document}
\maketitle
\begin{table}[ht]
\renewcommand{\arraystretch}{2}
\footnotesize
\centering
\begin{tabular}{|P{0.75cm}|P{1.25cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{1cm}|P{1cm}|P{1cm}|P{1cm}|P{0.75cm}|}
\hline
\multirow{2}{0.75cm}{\centering Test\ No} & \multirow{2}{*}{Name} & \multicolumn{3}{c|}{Domain} & \multirow{2}{0.75cm}{\centering Cell\ Size} & \multicolumn{4}{c|}{MLR} & \multirow{2}{*}{$C_1$} & \multirow{2}{*}{$C_2$}\
\cline{3-5}\cline{7-10}
& & x & y & z & & $\dot{m_t}$ & $\dot{m}_{in}$ & $\dot{m}_{out}$ & $\dot{m}_{avg}$ & & \
\hline
1 & Mass1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 \
\hline
2 & Mass2 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & \multicolumn{2}{c|}{0.1} & 0.1 & 0.1 & 0.1 \
\hline
\end{tabular}
% \vspace{0.5cm}
\caption{Tests}
\end{table}
\end{document}
我在背面有以下示例代码来生成 table。
\documentclass[hidelinks,a4paper,12pt,oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[margin=1in]{geometry}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{array}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\usepackage{stackengine}
\newcommand\xrowht[2][0]{\addstackgap[0.5\dimexpr#2\relax]{\vphantom{#1}}}
\title{table}
\begin{document}
\maketitle
\begin{table}[ht]
\footnotesize
\centering
\begin{tabular}{|P{0.75cm}|P{1.25cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{1cm}|P{1cm}|P{1cm}|P{1cm}|P{0.75cm}|}
\hline\xrowht[()]{15pt}
\multirow{2}{*}{Test} & \multirow{2}{*}{Name} & \multicolumn{3}{c|}{Domain} & \multirow{2}{*}{Cell} & \multicolumn{4}{c|}{MLR} & \multirow{2}{*}{$C_1$} & \multirow{2}{*}{$C_2$}\
\cline{3-5}\cline{7-10}\xrowht[()]{15pt}
No & & x & y & z & Size & $\dot{m_t}$ & $\dot{m}_{in}$ & $\dot{m}_{out}$ & $\dot{m}_{avg}$ & & \
\hline\xrowht[()]{15pt}
1 & Mass1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 \
\hline\xrowht[()]{15pt}
2 & Mass2 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & \multicolumn{2}{c|}{0.1} & 0.1 & 0.1 & 0.1 \
\hline
\end{tabular}
\vspace{0.5cm}
\caption{Tests}
\end{table}
\end{document}
这给了我,
问题: 我无法将 table 中的文本垂直对齐到居中或任何其他位置。例如,文本“测试编号”、“名称”、“单元格大小”、“C1”和“C2”应该垂直居中对齐。此外,我看到使用 \hline\xrowht[()]{15pt}
给我不同的框宽度,参见“域”和“MLR”框。任何人都可以帮助我以正确的方式设置这个 table 吗?
谢谢大家
与其手动修改 table 的行高,不如更改 \arraystretch
,所有单元格将自动居中
其他几点:
与其在标题上方手动添加 space,不如查看
caption
包请查看 http://betterposters.blogspot.com/2012/08/the-data-prison.html or https://www.inf.ethz.ch/personal/markusp/teaching/guides/guide-tables.pdf 以获得一些关于漂亮 table 布局的指南。把你的数据关进监狱绝对不是一个好的设计
不要将 multi-letter 表达式如
avg
或out
放入数学模式。这将完全弄乱字距
\documentclass[hidelinks,a4paper,12pt,oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[margin=1in]{geometry}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{array}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\usepackage{caption}
\title{table}
\begin{document}
\maketitle
\begin{table}[ht]
\renewcommand{\arraystretch}{2}
\footnotesize
\centering
\begin{tabular}{|P{0.75cm}|P{1.25cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{1cm}|P{1cm}|P{1cm}|P{1cm}|P{0.75cm}|}
\hline
\multirow{2}{0.75cm}{\centering Test\ No} & \multirow{2}{*}{Name} & \multicolumn{3}{c|}{Domain} & \multirow{2}{0.75cm}{\centering Cell\ Size} & \multicolumn{4}{c|}{MLR} & \multirow{2}{*}{$C_1$} & \multirow{2}{*}{$C_2$}\
\cline{3-5}\cline{7-10}
& & x & y & z & & $\dot{m_t}$ & $\dot{m}_{in}$ & $\dot{m}_{out}$ & $\dot{m}_{avg}$ & & \
\hline
1 & Mass1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 \
\hline
2 & Mass2 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & \multicolumn{2}{c|}{0.1} & 0.1 & 0.1 & 0.1 \
\hline
\end{tabular}
% \vspace{0.5cm}
\caption{Tests}
\end{table}
\end{document}