表环境之外的 toprule 的最佳替代方案

表环境之外的 toprule 的最佳替代方案

以下是我的问题的再现:

\documentclass[10pt]{article}

\usepackage[
    a4paper,
    top=2.5cm,
    bottom=2.5cm,
    left=2.5cm,
    right=2.5cm
]{geometry}

\usepackage{booktabs}

\begin{document}
\toprule
\vspace{7pt}
Foo
\vspace{7pt}
\toprule
\end{document}

这使得两行都出现错误\toprule

Misplaced \noalign

但是,overleaf 仍然会编译并显示 PDF(我不太明白):

使用 toprule

据我所知,这是因为我在表格环境之外使用它。

但是我怎样才能在表格之外实现完全相同的效果呢?

我发现这个答案,这会导致如下代码:

\documentclass[10pt]{article}

\usepackage[
    a4paper,
    top=2.5cm,
    bottom=2.5cm,
    left=2.5cm,
    right=2.5cm
]{geometry}

\usepackage{booktabs}

\begin{document}
\noindent\makebox[\textwidth]{\rule{\textwidth}{0.4pt}}
\vspace{7pt}
Foo \\
\noindent\makebox[\textwidth]{\rule{\textwidth}{0.4pt}}
\end{document}

但这并不会以相同的方式垂直对齐线:

使用规则

有人能告诉我如何以同样的方式做水平裁定吗外部一张桌子,就像?

答案1

您可以使用tabularx允许声明表格最终宽度的环境(\linewidth在本例中)。

\documentclass[10pt]{article}

\usepackage[
    a4paper,
    top=2.5cm,
    bottom=2.5cm,
    left=2.5cm,
    right=2.5cm
]{geometry}

\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{lipsum}

\begin{document}
\lipsum[66]
\begin{tabularx}{\linewidth}{l}
\toprule
Foo \\
\bottomrule
\end{tabularx}
\lipsum[66]
\end{document}

在此处输入图片描述

答案2

看看这是否给出了预期的结果:

\documentclass[10pt]{article}
\usepackage[a4paper,
            margin=2.5cm]{geometry}

\usepackage{lipsum}

\begin{document}
\lipsum[66]
\noindent\rule[1ex]{\textwidth}{0.4pt}
Foo\\
\rule{\textwidth}{0.4pt}
\lipsum[66]
\end{document}

在此处输入图片描述

附录: 使用tcolorbox

\documentclass[10pt]{article}
\usepackage[a4paper,
            margin=2.4cm]{geometry}
\usepackage{tcolorbox}
\tcbset{mybox/.style={%
colback=white,
boxrule=0pt,
colframe=black,
toprule=1pt, bottomrule=1pt,
boxsep=0mm,
arc=0mm,
left=0pt,right=0mm,top=3mm,bottom=3mm,
}}
\newtcolorbox{mybox}{mybox}

\usepackage{lipsum}

\begin{document}
\lipsum[66]
\begin{mybox}
Foo
\end{mybox}
\lipsum[66]
\end{document}

在此处输入图片描述

相关内容