我需要将一些水平表格线加粗,因此我使用了 booktabs 包。但是,如果我使用\toprule
命令将线条加粗,我会得到奇怪的结果 - 粗线和垂直表格线之间有一些空格(请查看屏幕)
生成表格的代码如下所示
\begin{longtable}{|c|c|c|c|c|c|c|c|c|}
\caption{Wyniki rozpoznawania obrazów dla obrazu zapytania 022\_0007.jpg oraz kategorii $budda$}
\label{tab:budda}
\\
\toprule
\multicolumn{2}{|c|}{\textbf{Obraz zapytanie}} & \multicolumn{3}{|c|}{\textbf{Obraz przetwarzany}} & \multicolumn{4}{|c|}{\textbf{Wynik}} \\
\toprule
\textbf{Nazwa} & \textbf{N} & \textbf{Katalog} & \textbf{Nazwa} & \textbf{N} & \textbf{ $J_{b}$} & \textbf{$J_{a}$} & \textbf{Czas[s]} & \textbf{Gęstość} \\ \hline
...
..
..
\end{longtable}
PS 可以将水平线加粗吗?
编辑我决定辞去 booktabs 的职务,并使用了此处提供的解决方案 LaTeX 表格:如何使水平线变粗或变细(通常为 \hline)?(pluton 回答)现在我有了一条粗水平线,我也设法使垂直线变粗。然而问题是水平线的长度。我的表格的长度比页面的长度(从一个边距到另一个边距)稍大,我认为它使水平线看起来像这样
是否有可能以某种方式调整此命令
\def\hlinewd#1{%
\noalign{\ifnum0=`}\fi\hrule \@height #1 %
\futurelet\reserved@a\@xhline}
这样就可以调整加粗线的长度以适应表格的长度
这是可编译的代码片段
\documentclass[a4paper,12pt]{mwrep}
\usepackage[cp1250]{inputenc}
\usepackage[left=3.0cm,right=3cm,top=3.0cm,bottom=3.0cm]{geometry}
\usepackage{amsmath,amssymb}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{algorithmic}
\usepackage{tabularx}
\usepackage{longtable}
\usepackage[centerlast]{caption}
\usepackage{multirow}
\usepackage[section] {placeins}
\usepackage{booktabs}
\linespread{1.3}
\makeatletter
\def\hlinewd#1{%
\noalign{\ifnum0=`}\fi\hrule \@height #1 %
\futurelet\reserved@a\@xhline}
\makeatother
\begin{document}
\chapter{somechapter}
\section{somesection}
\small
\begin{longtable}{!{\vrule width 2pt} c!{\vrule width 2pt} c!{\vrule width 2pt} c!{\vrule width 2pt} c!{\vrule width 2pt} c!{\vrule width 2pt} c!{\vrule width 2pt} c!{\vrule width 2pt} c!{\vrule width 2pt} c!{\vrule width 2pt} }
\caption{something something somethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomething}
\label{tab:budda}
\\ \hlinewd{2pt}
\multicolumn{2}{!{\vrule width 2pt}c!{\vrule width 2pt}}{\textbf{Query image }} & \multicolumn{3}{c!{\vrule width 2pt}}{\textbf{Processed image}} & \multicolumn{4}{c!{\vrule width 2pt}}{\textbf{Outcome}} \\ \hlinewd{2pt}
\textbf{Name} & \textbf{N} & \textbf{Directory} & \textbf{Name} & \textbf{N} & \textbf{ $J_{b}$} & \textbf{$J_{a}$} & \textbf{time[s]} & \textbf{Density} \\ \hlinewd{2pt}
022\_0007.jpg & 193 & budda & 22\_0007.jpg & 193 & 25512.9 & 156.1 & 288.5 & 0.73 \\ \hline
\end{longtable}
\end{document}
答案1
我想我终于找到了让 booktabs 和 hrules 工作的解决方案,这就是为什么我要回答我自己的问题,我创建了自己的命令
\newcommand{\mytoprule}{\specialrule{2pt}{0em}{0em}}
\newcommand{\mybottomrule}{\specialrule{2pt}{0em}{0em}}
现在一切看起来都很好。
答案2
对于你的第二个问题:
有\midrule[width]
一个可选的线宽参数,并且至少应该在线的上方和下方留出相同的空间。
使用该命令,\cmidrule[width]{columns}
您可以添加一条具有定义宽度且跨越并非所有列的水平线。
看booktabs
文档了解更多信息。
据我所知,您不能轻易抑制垂直空间,因为它们是“哲学”的一部分booktabs
(根本不使用垂直线),并且它们造成了toprule
和之间的差异bottomrule
。
具有非常粗线条的中线的线条宽度示例:
\documentclass{article}
\usepackage{longtable, booktabs}
\begin{document}
\begin{longtable}{|c|c|c|c|c|c|c|c|c|}
\caption{Wyniki rozpoznawania obrazów dla obrazu zapytania 022\_0007.jpg oraz kategorii $budda$}
\label{tab:budda}
\\
\toprule
\multicolumn{2}{|c|}{\textbf{Obraz zapytanie}} & \multicolumn{3}{|c|}{\textbf{Obraz przetwarzany}} & \multicolumn{4}{|c|}{\textbf{Wynik}} \\
\toprule
\textbf{Nazwa} & \textbf{N} & \textbf{Katalog} & \textbf{Nazwa} & \textbf{N} & \textbf{ $J_{b}$} & \textbf{$J_{a}$} & \textbf{Czas[s]} & \textbf{Gęstość} \\ \hline
…\\
new line\\
\midrule[2 pt]
new line\\
\cmidrule[5pt]{1-5}\\
..
..
\end{longtable}
\end{document}
答案3
通过使用
\renewcommand{\arrayrulewidth}{2pt}%
您可以大大提高代码的可读性并产生所需的效果(当然,假设所有规则(垂直和水平)的宽度相同)。优点是它也可以与 一起使用longtable
。
\documentclass[a4paper,12pt]{mwrep}
...
\begin{document}
\renewcommand{\arrayrulewidth}{2pt}
\chapter{somechapter}
\section{somesection}
\small
\begin{longtable}{|c|c|c|c|c|c|c|c|c|}
\caption{something something somethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomethingsomething}
\label{tab:budda}
\\ \hline
\multicolumn{2}{|c|}{\textbf{Query image }} & \multicolumn{3}{c|}{\textbf{Processed image}} & \multicolumn{4}{c|}{\textbf{Outcome}} \\ \hline
\textbf{Name} & \textbf{N} & \textbf{Directory} & \textbf{Name} & \textbf{N} & \textbf{ $J_{b}$} & \textbf{$J_{a}$} & \textbf{time[s]} & \textbf{Density} \\ \hline
022\_0007.jpg & 193 & budda & 22\_0007.jpg & 193 & 25512.9 & 156.1 & 288.5 & 0.73 \\ \hline
\end{longtable}
\end{document}