如何在表格环境中使用 vfill 的等效功能?

如何在表格环境中使用 vfill 的等效功能?

我有一张有两列一行的表格。第一行很长,决定了表格的整体高度(如果需要,可以将其固定为\textheight)。第二列中有两张图片。我希望其中一张图片与第一列的顶部对齐,另一张图片与第二列的顶部对齐 - 类似于\vfill普通页面上的效果 - 请参见下面的示例。

\vfill似乎不起作用,大概是因为设置该列时没有定义表的高度?

我努力了:

  1. \measurepage使用宏计算页面上的剩余空间这个问题并插入使用\vspace- 不幸的是,这似乎产生的长度远远大于实际可用空间

  2. 放入 0 宽度(不可见)规则来\textheight固定列高,然后使用它\raisebox来将列内容上移。(这失败了)

还有其他方法吗

这是一个最小的例子

%% LyX 2.0.3 created this file.  For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[10pt,a4paper,oneside,english,oldfontcommands,a4paper]{memoir}
\usepackage{fontspec}
\setcounter{secnumdepth}{2}
\setcounter{tocdepth}{2}

\makeatletter

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
\pdfpageheight\paperheight
\pdfpagewidth\paperwidth


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
%packages
\usepackage{calc}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{colortbl}
\usepackage{multirow}
\usepackage{lipsum}



\newcommand\measurepage{\dimexpr\pagegoal-\pagetotal-\baselineskip\relax}

\makeatother

\usepackage{babel}
\begin{document}
\renewcommand{\tabularxcolumn}[1]{m{#1}}


\noindent\begin{tabularx}{\linewidth}{@{}X|p{0.2\linewidth}@{}}

\rule{\TX@col@width}{\textheight-\baselineskip} 

&
\begingroup\rule{\linewidth}{0.15\textheight} \newline Some text \vfill \rule{\linewidth}{0.15\textheight}\endgroup \tabularnewline  


 \end{tabularx} 

\end{document}

编辑:

这是一张展示我想要实现的效果的图片。两列表格,左侧的一列决定整体高度。右侧的两张图片应与左列内容的顶部和底部对齐。右列中的这些图片之间会有一些文本,长度可变。

到目前为止,我可以使图像底部对齐或顶部对齐,但不能使图像一张在顶部,一张在底部。

这就是我想要实现的

答案1

tabular不使用环境而只使用环境似乎更简单minipage。下面我使用该showframe包来显示边距的位置:

在此处输入图片描述

\documentclass{memoir}

\usepackage[demo]{graphicx}
\usepackage{showframe}

\newcommand{\DesiredHeight}{10.0cm}%
\begin{document}
\noindent
\begin{minipage}[b][\DesiredHeight]{0.8\linewidth}
\includegraphics[height=\DesiredHeight, width=0.8\textwidth]{leftImage}
\end{minipage}%
\begin{minipage}[b][\DesiredHeight]{0.2\linewidth}\noindent
\includegraphics[width=\linewidth]{topImage}
\par\noindent
Some text and some more text.
\vfill
\includegraphics[width=\linewidth]{bottomImage}
\end{minipage}%
\end{document}

答案2

\documentclass{memoir}
\usepackage{calc}
\usepackage{tabularx}
\renewcommand{\tabularxcolumn}[1]{m{#1}}

\begin{document}
\noindent
\begin{tabularx}{\linewidth}{@{} X | p{0.2\linewidth} @{} }
\rule{\linewidth}{\textheight-\baselineskip} 
&\vspace*{-3pt}%%%%%
\parbox[s][\textheight-\baselineskip]{\linewidth}{%
\rule{\linewidth}{0.15\textheight} \\
Some text \par\vfill 
\rule{\linewidth}{0.15\textheight}} \tabularnewline  
\end{tabularx} 

\end{document}

在此处输入图片描述

相关内容