Comando inverter fontsize em setbeamerfont

Comando inverter fontsize em setbeamerfont

Quero personalizar o frametitle em uma apresentação do beamer. Tenho um problema com o espaçamento entre linhas, então uso a versão size*.

A declaração é size*={<fontsize in pt>}{<baselineskip>}. No entanto, não quero corrigir o tamanho da fonte do frametitle, então preciso converter o tamanho da fonte (por exemplo, \huge) para pt.

Aqui está um exemplo:

\setbeamerfont{frametitle}{%
  size*={%
    \fontsize2pt{\huge}%
  }{1.5ex},%
  shape=\scshape%
}

Existe uma maneira fácil de fazer isso?

Responder1

Usando \f@sizevocê pode construir um comando que permite obter o valor em ptunidades da fonte atual; você pode então usar esse valor para sua definição. Utilize \myfontsizepara obter o ptvalor do tamanho da fonte declarado no argumento obrigatório; esse comprimento é armazenado no \myftsizequal você pode usar no primeiro argumento de size*:

\documentclass{beamer}

\newlength\myftsize
\makeatletter
\newcommand\myfontsize[1]{%
  \begingroup
  #1
  \global\setlength\myftsize{\f@size pt}%
  \endgroup
}
\makeatother

\myfontsize{\huge}
\setbeamerfont{frametitle}{%
  size*={\myftsize}{1.5ex},
  shape=\scshape
}

\begin{document}

\begin{frame}
\frametitle{Test frame}
test
\end{frame}

\end{document}

insira a descrição da imagem aqui

informação relacionada