在 powerdot 中垂直居中文本,考虑基线

在 powerdot 中垂直居中文本,考虑基线

我有一个 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}

在此处输入图片描述 在此处输入图片描述

相关内容