我有一个 powerdot 样式,其中包括以下幻灯片定义:
\pddefinetemplate[slide]{blackslide}{
titlepos={.05\slidewidth,.93\slideheight},
titlewidth=.9\slidewidth,
titlefont=\bfseries\Large\color{pdcolor3}\raggedright,
textpos={.05\slidewidth,.90\slideheight},
textwidth=.9\slidewidth,
textheight=.85\slideheight,
textfont=\Huge\color{white}\centering,
}{%
\psframe[linestyle=none,linewidth=0pt,fillstyle=solid,fillcolor=black](0,0)(\slidewidth,\slideheight)%
}
这种样式本质上让我在幻灯片中看到大文本,水平居中。但这还不够,我偶尔想让文本垂直居中。我编写了一个命令来执行此操作:
\newcommand\bigslide[1]{%
\begin{blackslide}{}
\par\vspace*{\stretch{1}}%
#1
\vspace*{\stretch{1}}%
\par
\end{blackslide}
}
这是基于vplace
班级环境的代码memoir
。
不幸的是,这并不能完全解决问题——文本垂直对齐,但它会忽略下降部分。下面是一个最简单的例子:
\bigslide{This is some text}
\bigslide{Text that happens to have descenders}
第二张幻灯片的文字比第一张幻灯片的文字略高,因为间距是相对于框而不是基线。
所以我的问题是:无论文本是否有降部,也无论有多少行,我怎样才能让文本垂直对齐?
答案1
我不太明白你到底想要什么。不过,请尝试以下方法:
\documentclass{powerdot}
\pddefinetemplate[slide]{blackslide}{
titlepos={.05\slidewidth,.93\slideheight},
titlewidth=.9\slidewidth,
titlefont=\bfseries\Large\color{pdcolor3}\raggedright,
textpos={.05\slidewidth,.90\slideheight},
textwidth=.9\slidewidth,
textheight=.85\slideheight,
textfont=\Huge\color{white}\centering,
}{%
\psframe[linestyle=none,linewidth=0pt,fillstyle=solid,fillcolor=black](0,0)(\slidewidth,\slideheight)%
}
\newcommand\bigslide[1]{%
\begin{blackslide}{}
\rput(0,-0.5\textheight){\parbox{\textwidth}{\centering#1}}
\end{blackslide}}
\begin{document}
\bigslide{This is some text}
\bigslide{Text that happens to have descenders}
\end{document}