我正在尝试使用以下代码在学术简历中列出一篇论文
\begin{tabular*}{0.97\textwidth}{p{.8\textwidth} @{\extracolsep{\fill}}r}
\small{A very long paper title with author names and other bibliographic information that spills over onto the next line.} &
\begin{tabular}{r}
2024 \\ \small{Expected}
\end{tabular}
\end{tabular*}
它几乎可以工作,但是“非常长...”和“2024”的行没有垂直对齐。
我该如何解决这个问题?我尝试过各种不同的想法,比如使用\makecell{Some really \\ longer text}
第二列,但还是出现了同样的问题。有些资料说使用[t]
intabular
应该可以将文本对齐到顶部,但当我尝试时,它就坏了。
答案1
(在 OP 提供了有关所需布局的更多信息后更新了此答案)
我会劝告反对字体大小经常变化。相反,我建议您改用双列tabularx
环境,将其目标宽度设置为,在第一列\textwidth
使用(又名 flushleft)(并将其可用宽度设置为)和第二列使用 (又名 flushright);其宽度是作为 LaTeX 残差计算的。\RaggedRight
0.8\textwidth
\RaggedLeft
\documentclass{article}
\usepackage{tabularx} % for 'tabularx' env. and 'X' col. type
\usepackage{ragged2e} % for '\RaggedRight' and '\RaggedLeft' macros
\begin{document}
\noindent
\begin{tabularx}{\textwidth}{@{}
>{\RaggedRight\small}p{0.8\textwidth}
>{\RaggedLeft\small}X @{}}
A very long paper title with author names and other bibliographic information that spills over onto the next line. &
2024\newline Expected \\ % <-- use '\newline' to force a line break *within* an X-type column
\end{tabularx}
\end{document}
答案2
为什么0.97\textwidth
?无论如何,使用t
op 对齐的表格。
\documentclass{article}
\usepackage{showframe}
\begin{document}
\noindent
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}p{.8\textwidth}r@{}}
\small
A very long paper title with author names and other bibliographic
information that spills over onto the next line. &
\begin{tabular}[t]{@{}r@{}}
2024 \\ \small Expected
\end{tabular}
\end{tabular*}
\end{document}
具有更好的语法。
\documentclass{article}
\usepackage{showframe}
\NewDocumentCommand{\paper}{mmO{}}{%
\par\noindent
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}p{.8\textwidth}r@{}}
\small #1 & \begin{tabular}[t]{@{}r@{}} #2 \\ \small #3 \end{tabular}
\end{tabular*}\par
}
\begin{document}
\paper{A very long paper title with author names and other bibliographic
information that spills over onto the next line.}{2024}[Expected]
\end{document}
我以前showframe
只是用来显示相对于边距的位置。一旦您移除生产版本的包装,这些线条就会消失。
答案3
- 如果我理解正确的话,您不需要包
multirow
。只需在第二列中写入两行文本(借助makecell
包并将列对齐X
类型从更改p
为m
:
\documentclass{article}
\usepackage{tabularx}
\usepackage{makecell}
\usepackage{lipsum}
\begin{document}
\lipsum[66]
\bigskip
\begin{table}[!htb]
\renewcommand\tabularxcolumn[1]{m{#1}}
%\small
\begin{tabularx}{\textwidth}{@{} X l @{}}
A very long paper title with author names and other bibliographic information that spills over onto the next line.
& \makecell{2024 \\ Expected}
\end{tabularx}
\end{table}
\end{document}
答案4
尝试一下:
使用array
包:它允许更高级的列格式。
将右列设置为m{2cm}
:它垂直居中“2024”和“预期”文本。
用于multirow
标题:这将标题对齐到两行,并以“2024”居中。
\documentclass{article}
\usepackage{array}
\usepackage{multirow}
\begin{document}
\begin{tabular*}{0.97\textwidth}{@{}p{.8\textwidth} @{\extracolsep{\fill}}m{2cm}@{}}
\multirow{2}{.8\textwidth}{\small{A very long paper title with author names and other bibliographic information that spills over onto the next line.}} &
\begin{tabular}[t]{@{}r@{}}
2024 \\ \small{Expected}
\end{tabular}
\end{tabular*}
\end{document}