将某些内容移至表格单元格的底部,但不影响表格高度的计算

将某些内容移至表格单元格的底部,但不影响表格高度的计算

我正在尝试在两个单元格的顶部和底部生成线条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
}

在此处输入图片描述

相关内容