在 beamer 演示文稿(无setspace
,无)中,我想在列中enumitem
使用环境。我希望第一行显示在同一基线上,与其他列的第一行相同。如所述itemize
tabular
\item
这里,\itemize
从新行开始,因此实现此目的的正确方法是垂直移动-\baselineskip
。但是,如果 被修改,则此方法不起作用baselinestretch
,例如\linespread{1.15}
:
\documentclass{beamer}
\usepackage{tikz}
\linespread{1.15}
\newcommand{\tikzmark}[2]{
\tikz[baseline=(#1.base), remember picture]{
\node(#1)[inner sep=0pt]{#2};
}
}
\begin{document}
\begin{frame}[t]{Title}
\begin{tabular}[t]{p{0.1\linewidth}p{0.8\linewidth}}
\tikzmark{left}{left text b} & \vspace*{-1\baselineskip}
\begin{itemize}
\item \tikzmark{right}{b number 1} \\ (with possibly two lines)
\item number 2
\end{itemize}
\end{tabular}
\tikz[overlay, remember picture]{
\draw[red, line width=0.05pt](left.south west)--(right.south east|-left.south west);
\draw[blue](right.south east)--(right.south east|-left.south east);
}
\end{frame}
\end{document}
答案1
一般来说,最好不要直接修改诸如\linespread
和 之类的低级 TeX 指令\baselineskip
。相反,可以考虑加载setspace
包并发出指令\setstretch{1.15}
。
谈到当前的紧急问题,由于 1/1.15=0.8696 或大约 0.87,您可能希望使用\vspace*{-0.87\baselineskip}
而不是\vspace*{-1\baselineskip}
来对齐环境第一列和第二列的第一行tabular
。
答案2
当我尝试在另一台机器上重现此问题时,我发现了一个非常简单的解决方案:问题不知何故是由于baselinestretch
在序言中修改了而引起的。使用
\AtBeginDocument{\linespread{1.15}}
代替
\linespread{1.15}
仅在文档内部更改它即可解决问题。当然,了解原因仍然很有趣。baselinestretch
通常不应该在序言中更改吗?