![文本和图形的表格对齐](https://linux22.com/image/269084/%E6%96%87%E6%9C%AC%E5%92%8C%E5%9B%BE%E5%BD%A2%E7%9A%84%E8%A1%A8%E6%A0%BC%E5%AF%B9%E9%BD%90.png)
对于我正在准备的一份试卷,我想正确地构建一个首页标题,其中包含大学徽标和两个并排的文本块(用于课程、部门等)。我已经看到了一些可能的解决方案:
但没有一个能为我的情况提供合适的解决方案。我希望能够将两个文本分别与t
、垂直对齐c
,b
并将图片与第一个文本对齐。问题在于后一种对齐方式,因为它应该足够灵活,以便图形和第一个文本可以在t
、c
、处对齐b
。
需要明确的是,可能的输出包括:
- 图片与第一个文本居中对齐,最后一个文本与第一个文本顶部对齐;或者
- 全部在顶部、底部、中心对齐;甚至
- 图片与第一个文本顶部对齐,最后一个文本与第一个文本底部对齐。
\documentclass[10pt]{scrartcl}
\usepackage{lmodern}
\usepackage[a4paper,showframe]{geometry}
\usepackage{graphicx}
\DeclareGraphicsExtensions{.pdf}
\usepackage{array}
\usepackage{varwidth}
\usepackage{ragged2e}
\setlength{\fboxsep}{0pt}
\newcommand*{\mtab}[1]{\begin{tabular}[t]{@{}l@{}} #1 \end{tabular}}
\newcommand*{\lbox}[2][t]{\parbox[#1]{\linewidth}{\RaggedRight\fbox{\mtab{#2}}}}
\newcommand*{\rbox}[2][t]{\parbox[#1]{\linewidth}{\RaggedLeft\fbox{\mtab{#2}}}}
\newcommand*{\cbox}[2][t]{\parbox[#1]{\linewidth}{\Centering\fbox{\mtab{#2}}}}
\newcommand*{\Logo}{\includegraphics[width=\linewidth]{example-image}}
\begin{document}
\begingroup
\noindent
\begin{tabular}{@{}p{0.15\textwidth}p{0.5\textwidth}p{\dimexpr 0.35\textwidth-4\tabcolsep\relax}@{}}
\lbox{\raisebox{-0.5\height}{\Logo}} & \cbox[t]{aaa\\ bbb\\ ccc\\ ddd} & \rbox[t]{fff\\ hhh}
\end{tabular}
\endgroup
\par\bigskip
\begingroup
\noindent
\begin{tabular}{@{}p{0.6\textwidth}@{}p{0.2\textwidth}@{}p{0.2\textwidth}@{}}
Name: & Num: & Class:
\end{tabular}
\endgroup
\par\bigskip
Normal text here!
\end{document}
答案1
我不太明白你的定义。不需要 parbox 定义
然而,使用时\raisebox
您必须考虑\strutbox
图像的高度。
\documentclass[10pt]{scrartcl}
\usepackage{lmodern}
\usepackage[a4paper,showframe]{geometry}
\usepackage{graphicx}
%\DeclareGraphicsExtensions{.pdf}
\usepackage{array}
\usepackage{varwidth}
\usepackage{ragged2e}
\setlength{\fboxsep}{0pt}
\newcommand*{\mtab}[1]{\begin{tabular}[t]{@{}l@{}} #1 \end{tabular}}
\newcommand*{\lbox}[2][t]{\parbox[#1]{\linewidth}{\RaggedRight\fbox{\mtab{#2}}}}
\newcommand*{\rbox}[2][t]{\parbox[#1]{\linewidth}{\RaggedLeft\fbox{\mtab{#2}}}}
\newcommand*{\cbox}[2][t]{\parbox[#1]{\linewidth}{\Centering\fbox{\mtab{#2}}}}
\newcommand*{\Logo}{\includegraphics[width=\linewidth]{example-image}}
\begin{document}
\begingroup
\noindent
\begin{tabular}{@{}>{\RaggedRight}p{0.15\textwidth}>{\Centering}p{0.5\textwidth}>{\RaggedLeft}p{\dimexpr 0.35\textwidth-4\tabcolsep\relax}@{}}
\raisebox{\dimexpr-\height+\ht\strutbox+\fboxrule}{\Logo} &\fbox{\mtab{aaa\\ bbb\\ ccc\\ ddd}} & \fbox{\mtab{fff\\ hhh}}
\end{tabular}
\endgroup
\par\bigskip
\begingroup
\noindent
\begin{tabular}{@{}p{0.6\textwidth}@{}p{0.2\textwidth}@{}p{0.2\textwidth}@{}}
Name: & Num: & Class:
\end{tabular}
\endgroup
\par\bigskip
Normal text here!
\end{document}