以下是我的问题的再现:
\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(我不太明白):
据我所知,这是因为我在表格环境之外使用它。
但是我怎样才能在表格之外实现完全相同的效果呢?
我发现这个答案,这会导致如下代码:
\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}