求助各位。有一张桌子,我甚至无法将其放在中间(垂直和水平)字段:检查项目、注释、未检查、电源电压 - 它们不在中间(水平)注释和检查项目应该垂直居中对齐
[代碼][1]
\begin{small}
\begin{longtable}{|M{25mm}|M{17mm}|M{17mm}|M{22mm}|M{20mm}|M{20mm}|M{22mm}|}
\hline
\multirow{3}{25mm}{ Check item} &
\multicolumn{2}{M{34mm}|}{ Device \mbox{IMEI.123456.12345}} &
\multicolumn{3}{M{62mm}|}{ XXX} &
\multirow{3}{22mm}{ Note} \\ \cline{2-6} &
\multirow{2}{15mm}{ norm} &
\multirow{2}{17mm}{ item number technique} &
\multicolumn{1}{M{22mm}|}{ normal conditions} &
\multicolumn{1}{M{20mm}|}{ plus 50 °С} &
\multicolumn{1}{M{20mm}|}{ minus 20 °С} &
\\ \cline{4-6}
&&& \multicolumn{3}{M{62mm}|}{ Supply voltage} &
\\ \cline{4-6}
&&& \multicolumn{1}{M{22mm}|}{ 2,2 V} &
\multicolumn{1}{M{20mm}|}{ 5 V} &
\multicolumn{1}{M{20mm}|}{ 5 V} &
\\ \cline{1-7}
\endfirsthead
\endhead
\multicolumn{1}{|M{25mm}|}{ 1 Operability RS-232C} &
\multicolumn{1}{M{17mm}|}{Compliant} &
\multicolumn{1}{M{17mm}|}{5.2.1} &&
\multicolumn{2}{M{40mm}|}{\multirow{2}*{not checked}} &
\\ \cline{1-4} \cline{7-7}
\multicolumn{1}{|M{25mm}|}{ 2 Operability RS-485} &
\multicolumn{1}{M{17mm}|}{Compliant} &
\multicolumn{1}{M{17mm}|}{5.2.2.1} &&
\multicolumn{2}{M{40mm}|}{} &
\\ \hline
\multicolumn{1}{|M{25mm}|}{ 3 Operability Ethernet} &
\multicolumn{1}{M{17mm}|}{Compliant} &
\multicolumn{1}{M{17mm}|}{5.2.2.2} &&&&
\\ \hline
\end{longtable}
\end{small}
非常感谢!我非常喜欢你澄清的内容!M{} 我使用了数组包,将单词置于单元格的中心。这不是真的吗?我考虑了你的建议。我一方面转身了,另一方面却没有转身。“检查项目”、“规范”、“项目编号”、“注释”移到了左边,“XXX”和“符合”则移到了右边。
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\begin{small}
\begin{longtable}{|C{25mm}|C{17mm}|C{17mm}|C{22mm}|C{20mm}|C{20mm}|C{22mm}|}
\hline
\multirow{6}{25mm}{Check item} &
\multicolumn{2}{C{34mm}|}{ Device \mbox{IMEI.123456.12345}} &
\multicolumn{3}{C{62mm}|}{ XXX} &
\multirow{6}{22mm}{ Note} \\ \cline{2-6} &
\multirow{4}{15mm}{ norm} &
\multirow{4}{17mm}{ item number technique} &
{ normal conditions} &
{ plus 50 °С} &
{ minus 20 °С} &
\\ \cline{4-6}
&&& \multicolumn{3}{C{62mm}|}{Supply voltage} &
\\ \cline{4-6}
&& &
{ 2,2 V} &
{ 5 V} &
{ 5 V} &
\\ \cline{1-7}
\endfirsthead
\endhead
{ 1 Operability RS-232C} &
{Compliant} &
{5.2.1} &&
\multicolumn{2}{C{40mm}|}{\multirow{4}*{not checked}} &
\\ \cline{1-4} \cline{7-7}
{ 2 Operability RS-485} &
{Compliant} &
{5.2.2.1} &&
\multicolumn{2}{C{40mm}|}{} &
\\ \hline
{ 3 Operability Ethernet} &
{Compliant} &
{5.2.2.2} &&&&
\\ \hline
\end{longtable}
\end{small}
\begin{longtable}{|M{25mm}|C{17mm}|C{17mm}|C{22mm}|C{20mm}|C{20mm}|C{22mm}|}
\hline
\multirow{6}*{ Check item} &
\multicolumn{2}{M{34mm}|}{ Device \mbox{IMEI.123456.12345}} &
\multicolumn{3}{C{62mm}|}{ \centering XXX} &
\multirow{6}*{Note} \\ \cline{2-6} &
\multirow{3}*{norm} &
\multirow{3}{17mm}{ \centering item number technique} &
\multicolumn{1}{M{20mm}|}{ normal conditions} &
{ plus 50 °С} &
{ minus 20 °С} &
\\ \cline{4-6}
&&& \multicolumn{3}{C{62mm}|}{\centering Supply voltage} &
\\ \cline{4-6}
&& &
{ 2,2 V} &
{ 5 V} &
{ 5 V} &
\\ \cline{1-7}
\endfirsthead
\endhead
{ 1 Operability RS-232C} &
{Compliant} &
{5.2.1} &&
\multicolumn{2}{P{40mm}|}{\multirow{3}*{\centering not checked}} &
\\ \cline{1-4} \cline{7-7}
{ 2 Operability RS-485} &
{Compliant} &
{5.2.2.1} &&
\multicolumn{2}{P{40mm}|}{} &
\\ \hline
{ 3 Operability Ethernet} &
{Compliant} &
{5.2.2.2} &&&&
\\ \hline
\end{longtable}
\end{small}
\clearpage
\SetEmptyPage
\end{document}
他又制作了一个小表格。结果如下:合并后的行没有居中对齐,而是向左移动。我错在哪里?
\begin{longtable}{|C{40mm}|C{40mm}|C{40mm}|C{40mm}|}
\caption{ } \label{instr:3} \\
\hline
\multicolumn{1}{|p{40mm}|}{Name of a power-supply circuit} &
\multicolumn{1}{p{40mm}|}{Power-supply circuit tension} &
\multicolumn{1}{p{40mm}|}{Current of consumption of a cell, А} &
\multicolumn{1}{p{40mm}|}{ Restriction on current, А} \\\hline
\endfirsthead
\multicolumn{4}{|p{160mm}|}
{\centering {Source PU1}} \\ \hline
<<5Ва>> & 5 В & 1 & 2 \\ \hline
<<5В>> & 5 В & 1 & 2 \\ \hline
\multicolumn{4}{|p{160mm}|} {\centering{Source PU2}} \\ \hline
<<2,7В>> & 2,2 & 1,2 & 2,2 \\ \hline
\end{longtable}
答案1
您的文件不完整,所以我不得不做出一些猜测。我猜那M{...}
是一m{...}
列。
让我们以“检查项目”为例。虽然它应该跨越 3 个逻辑行,但如果您查看输出,您会发现它占据了 6 个物理行。由于 multirow 不知道您的行有多高,因此您必须指定\multirow{6}
使其垂直居中。
笔记:您有很多规格,例如\multicolumn{1}{|M{25mm}|}
在已经有规格的列中|M{25mm}|
。这毫无意义,只会使表格更加复杂。至于水平居中,有两种方法。(1)添加\centering
。
\multirow{6}{25mm}{\centering Check item}
(顺便说一句,如果你有最新版本multirow
(2.0 版或更高版本),你不必重复,25mm
但你可以写=
)(2)把它放在一c
列中:
\multicolumn{1}{|c|}{\multirow{6}{*}{Check item}}
您可以对其他条目执行相同操作,只需计算每种情况下有多少物理行。
对于“未选中”条目,还有一个问题,即使你这样做了
\multirow{4}*{not checked}}
问题是,该行中的参考点是该行中第一个单元格的第二行,因为您使用了m{...}
列。这意味着行的基线(参考点)是最后一行。如果从这一行算起,只有 3 个物理行。所以你需要
\multirow{3}*{not checked}}
我不知道你为什么要使用m{...}
列;通常这样做是因为其功能被误解了。我建议使用p{...}
列并选择\multirow{4}
。并实现水平居中:
\multicolumn{2}{c|}{\multirow{4}*{not checked}}
该\centering
命令不能使用*
宽度说明符;您必须提供实际宽度,或=
使用最近的multirow
。