我尝试longtable
在论文中使用其中一个,而其他所有都是使用环境创建的table
。tabular
我尝试寻求帮助访问此链接。但只longtable
使用一种类型的表()。
我的序言中的前几行(%
和之间%
)是从上面的链接复制而来的。如果我不使用它们,代码可以工作,但同时 之间不再有空格\hline\hline
。如果我只使用longtable
或 放longtable
第一行,代码就可以编译。但此摘录中表示的顺序代表了我论文中的顺序。
如果我不colortbl
分别xcolor
使用选项表,它可以正常工作。但我不知道如何在不使用此包的情况下为行着色。但我需要两行之间的空间来分隔不同的类别。
感谢您的帮助。
\documentclass{article}
%
\usepackage{color}
\makeatletter
\let\xx@begindocumenthook\@begindocumenthook
\let\xxhline\hline
\let\xx@xhline\@xhline
\usepackage{colortbl}
\let\hline\xxhline
\let\@xhline\xx@xhline
\let\@begindocumenthook\xx@begindocumenthook
\makeatother
\usepackage{longtable}
%
\usepackage[table]{xcolor}
%
\usepackage{subcaption}
%
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{multicol}
\usepackage{listings,color}
%
\begin{document}\color{black}
%
\begin{table}[H]
\centering
\begin{tabular}{|l|r|r|}
\hline
\rowcolor{lightgray}
\textbf{Component} & \multicolumn{1}{c|}{\textbf{Flight segment [\%]}} & \multicolumn{1}{c|}{\textbf{Passenger segment [\%]}} \\ \hline
1 & 20 & 80 \\ \hline \hline
2 & 10 & 90 \\ \hline
\end{tabular}
\caption{Caption 2}
\end{table}
%
\begin{center}
\begin{longtable}{|p{5cm}|c|p{4cm}|}
\hline
\rowcolor{lightgray}
\textbf{Mass component} & \multicolumn{1}{c|}{\textbf{Techfactor}} & \multicolumn{1}{c|}{\textbf{Reason}} \\ \hline
A lot of text & a lot of text & a lot of text \\ \hline
A lot of text & a lot of text & a lot of text \\ \hline
A lot of text & a lot of text & a lot of text \\ \hline \hline
A lot of text & a lot of text & a lot of text \\ \hline
A lot of text & a lot of text & a lot of text \\ \hline \hline
A lot of text & a lot of text & a lot of text \\ \hline
\caption{Caption 1}
\end{longtable}
\end{center}
%
Text text text.
%
%
\end{document}
答案1
- 如果问题只是绘制
\hline\hline
一个长表格,那么一个简单的解决方案是hhline{===}
(对于有三列的表格)来自包hhline
- 无关:
- 仅加载取代包及其选项调用
xcolor
的包就足够了;color
table
colortbl
- 长表格默认居中,因此封装它
\begin{center} ... \end{center}
是多余的; - 标题,尤其是长表格的标题,应该放在表格的顶部,而不是底部;
- 仅加载取代包及其选项调用
\documentclass{article}
\usepackage{longtable, makecell, multirow, tabularx}
\renewcommand\theadfont{\normalsize\bfseries}
\usepackage{hhline}
%
\usepackage[table]{xcolor}
%
\usepackage{subcaption}
%
\usepackage{multicol}
\usepackage{listings}
%
\begin{document}
%
\begin{longtable}{|p{5cm}|c|p{4cm}|}
\caption{Caption 1} \\
\hline
\rowcolor{lightgray}
\thead{Mass component} & \thead{Techfactor} & \thead{Reason} \\
\hline
A lot of text & a lot of text & a lot of text \\ \hline
A lot of text & a lot of text & a lot of text \\ \hline
A lot of text & a lot of text & a lot of text \\
\hhline{===}
A lot of text & a lot of text & a lot of text \\ \hline
A lot of text & a lot of text & a lot of text \\
\hhline{===}
A lot of text & a lot of text & a lot of text \\ \hline
\end{longtable}
%
Text text text.
%
\end{document}
答案2
我没有使用\hline
两次,而是定义了一种新的线型来完成此操作。这是一种解决方法 - 但提供了所需的行为。这是需要放入文档/序言中的新线型的代码:
\newcommand{\lline}[1]{\hline\multicolumn{#1}{c}{}\\[-1.3em]\hline}
因此\hline\hline
我使用而不是\lline
。
答案3
我确实使用了另一个技巧。我是德国人,所以请为我的语言道歉。如果你想在下一页继续你的标题,那么使用标题才是重要的
\begin{longtable}{p{4cm} | p{1.5cm} | p{1.7cm} | p{7.5cm}}
\caption{This is a wonderful caption}\\
\hline
\multicolumn{4}{c}{ } \\[-1,3em] %intresting part for ur question
\hline
\label{tab:wonduferful_longtable}
\textbf{column 1st header} & \textbf{column 2nd header} & \textbf{column 3rd header} & \textbf{column 4th header} \\
\hline
\endfirsthead
\textbf{column 1st header} & \textbf{column 2nd header} & \textbf{column 3rd header} & \textbf{column 4th header} \\
\hline
\endhead
blabla & blabla & blabla & blabla \\
blabla & blabla & blabla & blabla \\
blabla & blabla & blabla & blabla \\
\end{longtable}