我正在尝试在两个单元格的顶部和底部生成线条tabular
。这两个单元格中都有一些文本,我想从中取出较大的单元格来确定两个单元格的宽度,这就是tabular
解决方案。
下一步是生成线条,例如通过使用\hrule
。对于较大的单元格,输出符合预期:在tabular
单元格的最顶部和最底部各有一条线。对于较小的单元格,我打算使用\hfil
或\hfill
将第二个单元格移至\hrule
底部,但\hfil
似乎被丢弃了。我该怎么做才能在第一个表格单元格的底部生成一条线,以便两条线水平对齐?
\documentclass{extarticle}
%\usepackage{multicol}
\usepackage{lipsum}
\usepackage[a4paper]{geometry}
\usepackage{xcolor}
\begin{document}
\begin{tabular}{p{\dimexpr.5\linewidth-2\tabcolsep}p{\dimexpr.5\linewidth-2\tabcolsep}}
\textcolor{gray}{\hrule height .5pt depth .5pt}
\bigskip
\textsc{K E Y W O R D S}
\hfil %\hfill
\textcolor{gray}{\hrule height .5pt depth .5pt}
& \textcolor{gray}{\hrule height .5pt depth .5pt}
\bigskip \textsc{A B S T R A C T}
\lipsum[2]
\textcolor{gray}{\hrule height .5pt depth .5pt}\\
\end{tabular}
%\begin{multicols}{3}
%
%\end{multicols}
\end{document}
答案1
您无法使用 自动创建高度相同的单元格。这是方便使用的tabular
情况。\valign
\documentclass{article}
\usepackage{lipsum}
\usepackage[a4paper,showframe]{geometry}
\usepackage{xcolor}
\usepackage{microtype}
\newcommand{\keyabs}[2]{%
\noindent
\valign{%
\hrule height 1pt
\vskip .5ex
\hsize=\dimexpr.5\linewidth-2\tabcolsep
##\vfil
\vskip .5ex
\hrule height 1pt
\cr
\noindent\textls{KEYWORDS} #1\cr
\noalign{\hfill}
\noindent\textls{ABSTRACT} #2\cr
}\par
}
\begin{document}
\keyabs{something}{\lipsum[2]}
\end{document}
\valign
是“转置”的,\halign
其基础tabular
是构建于其上。该showframe
选项仅显示页边距(细线)。
如果你想要浅灰色规则,请将代码更改为
\newcommand{\keyabs}[2]{%
\noindent
\valign{%
\hsize=\dimexpr.5\linewidth-2\tabcolsep
\hbox to\hsize{\color{lightgray}\leaders\hrule height 1pt\hfill}\nointerlineskip
\vskip 0.5ex
##\vfil\nointerlineskip
\vskip 0.5ex
\hbox to\hsize{\color{lightgray}\leaders\hrule height 1pt\hfill}
\cr
\noindent\textls{KEYWORDS} #1\cr
\noalign{\hfill}
\noindent\textls{ABSTRACT} #2\cr
}\par
}