TeX 中的多行和对齐

TeX 中的多行和对齐

求助各位。有一张桌子,我甚至无法将其放在中间(垂直和水平)字段:检查项目、注释、未检查、电源电压 - 它们不在中间(水平)注释和检查项目应该垂直居中对齐

[代碼][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

相关内容