我遇到了以下问题:我需要将可变长度的内容放入固定大小的 parbox 中,然后使用 clipbox 命令进行裁剪。并希望内容垂直居中。只要内容适合 parbox,一切就都正常。但如果文本长度超过可用空间,则垂直居中对齐与 clipbox 命令结合会导致我的文本被裁剪。请参见下图。
这是演示该问题的代码:
\documentclass{scrartcl}
\usepackage{calc}
\usepackage{pstricks}
\begin{document}
\begin{pspicture}(0,0)(\textwidth,\textheight)
\newlength{\yPosition}
\setlength{\yPosition}{\textwidth-5cm}
\rput[lt](2cm,\yPosition){%
\fbox{
\clipbox{%
\parbox[t][1cm][c]{5cm}{%
short text
}%
}%
}
}
\addtolength{\yPosition}{-2cm}
\rput[lt](2cm,\yPosition){%
\fbox{
\clipbox{%
\parbox[t][1cm][c]{5cm}{%
% short text
long text long text long text long text long text long text long text long text
}%
}%
}
}
\end{pspicture}
\end{document}
所以,我的问题是:如果内容超出大小,是否可以使 parbox 内容顶部对齐;如果内容适合,是否可以居中对齐?
提前致谢
答案1
我使用以下代码让它工作。我将内部 parbox 位置改为顶部,并用 填充文本前后的空间\vspace*{\fill}
。这样,短文本垂直居中,长文本顶部对齐并正确裁剪。
\documentclass{scrartcl}
\usepackage{calc}
\usepackage{pstricks}
\begin{document}
\begin{pspicture}(0,0)(\textwidth,\textheight)
\newlength{\yPosition}
\setlength{\yPosition}{\textwidth-5cm}
\rput[lt](2cm,\yPosition){%
\fbox{
\clipbox{%
\parbox[t][1cm][t]{5cm}{%
short text
}%
}%
}
}
\addtolength{\yPosition}{-2cm}
\rput[lt](2cm,\yPosition){%
\fbox{
\clipbox{%
\parbox[t][1cm][t]{5cm}{%
\vspace*{\fill}
long text long text long text long text long text long text long text long text
\vspace*{\fill}
}%
}%
}
}
\end{pspicture}
\end{document}