这涉及到我的以下问题。
\documentclass[11pt,table,a5paper]{article}
\usepackage{array,ragged2e}
\usepackage{graphicx}
\usepackage[framemethod=TikZ]{mdframed}
\usepackage{lipsum}
\usepackage[top=2cm, bottom=2cm, outer=1cm, inner=2.1cm,twoside, headsep=26pt]{geometry}
\usepackage{ifthen}
\usepackage{wrapfig}
\usepackage{comment}
\usepackage{parskip}
\usepackage{framed}
\usepackage{sidecap}
\usepackage{longtable}
\usepackage{multirow}
\begin{document}
\newcommand{\nsr}{\rule[-1.3cm]{0pt}{2.2cm}}
\newcommand{\dsr}{\rule[-3.5cm]{0pt}{4cm}}
\small
{\renewcommand{\arraystretch}{1.8}\begin{longtable} {|p{2.7cm}|p{1.0cm}|p{2.4cm}|p{1.0cm}|p{1.3cm}|p{0.8cm}|}
\hline
\rowcolor{green} \textbf{ \textcolor{white}{ColA}} &\textbf{ \textcolor{white}{ColB}} &\textbf{ \textcolor{white}{ColC}} &\textbf{ \textcolor{white}{ColD}} &\textbf{ \textcolor{white}{ColE}} &\textbf{ \textcolor{white}{ColF}} \\
\endfirsthead
\rowcolor{green} \textbf{ \textcolor{white}{ColA}} &\textbf{ \textcolor{white}{ColB}} &\textbf{ \textcolor{white}{ColC}} &\textbf{ \textcolor{white}{ColD}} &\textbf{ \textcolor{white}{ColE}} &\textbf{ \textcolor{white}{ColF}} \\
\endhead
\hline
\rowcolor[RGB]{243,182,185}
\dsr Brainy Person & \dsr 3.38& \multirow{1}{*}{\parbox{2.5cm} {\textcolor{black}{This is Very first line,~\\
~\\
This is Second line,~\\
~\\
This is IIIrd line,}}}
&\dsr2.36 & \dsr 0.62 & \dsr 18 \\\cline{1-2} \cline{4-6}
\hline
\nsr Kingestionisation Quesiton Queeneinsteen & \nsr 1.46& \multirow{3} {*}{\parbox{2.5cm}{\textcolor{black}{This is First line~\\
~\\
This is Second line,~\\
~\\
This is Third line~\\
~\\
This is Fourth line}}}
& \nsr 1.02 & \nsr 0.62 & \nsr 13 \\\cline{1-2} \cline{4-6}
\nsr Foolish Perosn & \nsr 1.16 &
& \nsr 0.81 & \nsr 0.62 & \nsr 45 \\\cline{1-2} \cline{4-6}
\nsr Attacking Person Rob & \nsr 1.02 &
& \nsr 0.71 & \nsr 0.52 & \nsr 31 \\\cline{1-2} \cline{4-6}
\hline
\rowcolor{red}
Datset
& 24
& \multicolumn{2}{c|}{Normal Value}
& 23
& 342 \\
\hline
\end{longtable}}
\end{document}
https://i.stack.imgur.com/5KtKX.png
在上面的例子中,第一列中的名字被包裹在一个单元格中,但每个名字(名字、第二个名字和姓氏)相距很远。即被多行分隔。我该如何解决这个问题?
答案1
通常, 的参数\multirow
设置为右边不规则。但是,您已将文本打包在 中\parbox
,这将尝试将文本扩展到给定的宽度。不要使用 ,而要\parbox
使用 的宽度参数\multirow
。语法是
\multirow{nrows}{width}{text}
您可以使用width=*
来表示使用自然宽度text
,但放入text=\parbox{2.5cm}{....}
。相反,您可以写
\multirow{nrows}{2.5cm}{....}
这解决了中间一列的问题。
在第一列中,问题在于您添加的规则、命令\nsr
或\dsr
。这些规则出现在段落的第一行文本中,因此会为该行增加深度,将其推离段落的下一行。我猜您放置这些规则是为了帮助分隔表格。在您的情况下,只需将它们放在行中的一个位置,因此只需将它们添加到不会有多行的最后一列即可。
如果您希望为行着色,则需要将 放在\multirow
其底行并指定负数nrows
。此外,由于您的行异常高/深,您必须添加调整:
\multirow{nrows}{width}[adjust]{test}
规则的颜色也会有问题。您可以使用\hhline
以下建议Cellcolor 覆盖部分水平线(\cline)。
\documentclass[11pt,table,a5paper]{article}
\usepackage{array,ragged2e}
\usepackage[framemethod=TikZ]{mdframed}
\usepackage[top=2cm, bottom=2cm, outer=1cm, inner=2.1cm, twoside, headsep=26pt]{geometry}
\usepackage{longtable}
\usepackage{multirow}
\begin{document}
\newcommand{\nsr}{\rule[-1.3cm]{0pt}{2.2cm}}
\newcommand{\dsr}{\rule[-3.5cm]{0pt}{4cm}}
{\small
\renewcommand{\arraystretch}{1.8}
\begin{longtable}{|p{2.7cm}|p{1.0cm}|p{2.4cm}|p{1.0cm}|p{1.3cm}|p{0.8cm}|}
\hline
\rowcolor{green} \textbf{\textcolor{white}{ColA}} &\textbf{\textcolor{white}{ColB}} &\textbf{\textcolor{white}{ColC}} &\textbf{\textcolor{white}{ColD}} &\textbf{\textcolor{white}{ColE}} &\textbf{\textcolor{white}{ColF}} \\
\endhead
\hline
\rowcolor[RGB]{243,182,185}
Brainy Person & 3.38&
\multirow{1}{2.5cm}{\textcolor{black}{This is Very first line\\[2ex]
This is Second line\\[2ex]
This is IIIrd line}}
&2.36 & 0.62 & \dsr 18 \\
\hline
Kingestionisation Quesiton Queeneinsteen & 1.46&
\multirow{3}{2.5cm}{\textcolor{black}{This is First line\\[2ex]
This is Second line\\[2ex]
This is Third line\\[2ex]
This is Fourth line}}
& 1.02 & 0.62 & \nsr 13 \\\cline{1-2} \cline{4-6}
Foolish Person & 1.16 &
& 0.81 & 0.62 & \nsr 45 \\\cline{1-2} \cline{4-6}
Attacking Person Rob & 1.02 &
& 0.71 & 0.52 & \nsr 31 \\\cline{1-2} \cline{4-6}
\hline
\rowcolor{red}
Datset
& 24
& \multicolumn{2}{c|}{Normal Value}
& 23
& 342 \\
\hline
\end{longtable}}
\end{document}
您应该注意标题代码中的多余空格(\textbf{ Col}
),这些空格会导致对齐不佳。
{|>{\raggedright}p{2.7cm}...
如果您希望第一列右侧参差不齐,那么您可以使用而不是仅仅 来开始表格格式规范{p{2.7cm}...
。
如果不能保证所有单元格都是单行,则可以添加单独的列来保存规则。
\documentclass[11pt,table,a5paper]{article}
\usepackage{array,ragged2e}
\usepackage[framemethod=TikZ]{mdframed}
\usepackage[top=2cm, bottom=2cm, outer=1cm, inner=2.1cm, twoside, headsep=26pt]{geometry}
\usepackage{longtable}
\usepackage{multirow}
\usepackage{hhline}
\begin{document}
\newcommand{\nsr}{\rule[-1.3cm]{0pt}{2.2cm}}
\newcommand{\dsr}{\rule[-3.5cm]{0pt}{4cm}}
{\small
\setlength{\arrayrulewidth}{1pt}
\setlength{\minrowclearance}{1pt}
\renewcommand{\arraystretch}{1.8}
\begin{longtable}{|p{2.7cm}|p{1.0cm}|p{2.4cm}|p{1.0cm}|p{1.3cm}|p{0.8cm}|}
\hline
\rowcolor{green} \textbf{\textcolor{white}{ColA}} &\textbf{\textcolor{white}{ColB}} &\textbf{\textcolor{white}{ColC}} &\textbf{\textcolor{white}{ColD}} &\textbf{\textcolor{white}{ColE}} &\textbf{\textcolor{white}{ColF}} \\
\endhead
\hline
\rowcolor[RGB]{243,182,185}
Brainy Person & 3.38&
\multirow{1}{2.4cm}[-6pt]{\textcolor{black}{This is Very first line\\[2ex]
This is Second line\\[2ex]
This is IIIrd line}}
&2.36 & 0.62 & \dsr 18 \\
\hline
\rowcolor{teal}
Kingestionisation Quesiton Queeneinsteen & 1.46&
& 1.02 & 0.62 & \nsr 13 \\
\hhline{-->{\arrayrulecolor{teal}}->{\arrayrulecolor{black}}|---}
\rowcolor{teal}
Foolish Person & 1.16 &
& 0.81 & 0.62 & \nsr 45 \\
\hhline{-->{\arrayrulecolor{teal}}->{\arrayrulecolor{black}}|---}
\rowcolor{teal}
Attacking Person Rob & 1.02 &
\multirow{-3}{2.4cm}[80pt]{\textcolor{black}{This is First line\\[2ex]
This is Second line\\[2ex]
This is Third line\\[2ex]
This is Fourth line}}
& 0.71 & 0.52 & \nsr 31 \\\cline{1-2} \cline{4-6}
\hline
\rowcolor{red}
Datset
& 24
& \multicolumn{2}{c|}{Normal Value}
& 23
& 342 \\
\hline
\end{longtable}}
\end{document}