Solía tikz
crear un entorno beamer
para usarlo en lugar de un tema. El problema es que estoy usando la overlay, remember picture
opción y requiere ejecutarla latex/lualatex
dos veces cada vez. Dado que los elementos para los que tikz
se utiliza son simples, puede haber alternativas a tikz
. ¿Si alguien pudiera proporcionar una alternativa a tikz
aquí...?
Al ajustar tmargin
la altura de la regla decorativa superior, el centrado vertical se ajusta con respecto a la parte blanca de la diapositiva.
Estoy tratando de obtener un efecto de sombreado claro en los bordes inferior y derecho de esa regla superior... así que si alguien puede sugerirme...
aquí está el código:
\documentclass{beamer}
\mode<presentation>
\newlength{\slw}\setlength{\slw}{160mm}
\newlength{\slh}\setlength{\slh}{90mm}
\newlength{\topH}\setlength{\topH}{11mm}
\geometry{verbose,papersize={\slw,\slh},tmargin=\topH}
\usepackage{tikz,fontsize}
\usetikzlibrary{calc}
\definecolor{entete}{HTML}{80e3ff}
\definecolor{bleufon}{HTML}{000090}
\setbeamercolor{normal text}{fg=bleufon}
\newlength{\rulewid}\setlength{\rulewid}{.6\slw}
\NewDocumentEnvironment{diap}{ m +b }
{
\begin{tikzpicture}[overlay, remember picture]
\fill[preaction={fill=black!20,transform canvas={shift={(2pt,-2pt)}}}]
[fill=entete]
(current page.north west) -- ++(\rulewid,0) [rounded corners=.5\topH]
-- ++(0,-\topH) [sharp corners] -- ++(-\rulewid,0)
-- cycle;
\node at (current page.north west)
[shift={($ (.3,-.5\topH) + (1pt,-1pt) $)},
anchor=west,font=\LARGEr,black!30] {#1};
\node at (current page.north west)
[shift={(.3,-.5\topH)},anchor=west,font=\LARGEr,bleufon] {#1};
\end{tikzpicture}
}
{ #2 } {}
\setlength{\parindent}{0pt}
\begin{document}
\begin{frame}
\begin{diap}{title}
content
\end{diap}
\end{frame}
\end{document}
Respuesta1
Su código no se compila. Ni \enttH
ni \rulewidth
están definidos. ¡Pruebe su código de ejemplo antes de publicar preguntas!
Habiendo dicho eso:
No me metería manualmente con la configuración de geometría. Beamer es muy capaz de cambiar la relación de aspecto de las diapositivas y calcular la altura del título.
En lugar de crear un nuevo entorno dentro de tus marcos, ajustaría la
frametitle
plantilla.No es necesario compilar dos veces cada vez. Siempre y cuando no elimines los archivos auxiliares, compila dos veces al principio y en el futuro compilar una vez será suficiente. Además, muchos otros elementos en latex/beamer requieren dos compilaciones inicialmente, por ejemplo, el toc, las referencias cruzadas, el número total de cuadros... es probable que de todos modos necesites múltiples compilaciones.
Puedes evitar la segunda compilación por completo si no utilizas las
remember picture, overlay
opciones. El título del marco está de todos modos en la parte superior de la página.TikZ ofrece muchas sombras diferentes. Usarlos parece más fácil que tu acción previa. Para recrear su efecto,
drop shadow
probablemente lo más parecido sea.No usaría el
fontsize
paquete si no usas también una fuente escalable.
\documentclass[aspectratio=169]{beamer}
\newlength{\topH}\setlength{\topH}{11mm}
\usepackage{tikz}
\usetikzlibrary{calc}
\definecolor{entete}{HTML}{80e3ff}
\definecolor{bleufon}{HTML}{000090}
\setbeamercolor{normal text}{fg=bleufon}
\newlength{\rulewidth}\setlength{\rulewidth}{.6\paperwidth}
\usetikzlibrary{shadows}
\makeatletter
\setbeamertemplate{frametitle}{
\nointerlineskip%
\@tempdima=\textwidth%
\advance\@tempdima by\beamer@leftmargin%
\advance\@tempdima by\beamer@rightmargin%
\vskip-1mm%
\hskip-\beamer@leftmargin%
\hskip-1mm%
\begin{tikzpicture}
\fill[drop shadow,fill=entete] (0,0) -- ++(\rulewidth,0) [rounded corners=.5\topH] -- ++(0,-\topH) [sharp corners] -- ++(-\rulewidth,0) -- cycle;
\node at (0,0) [shift={($ (.3,-.5\topH) + (1pt,-1pt) $)}, anchor=west,font=\LARGE,black!30] {\insertframetitle};
\node at (0,0) [shift={(.3,-.5\topH)},anchor=west,font=\LARGE,bleufon] {\insertframetitle};
\end{tikzpicture}
}
\makeatother
\makeatletter
\define@key{beamerframe}{c}[true]{% centered
\beamer@frametopskip=0pt plus 1fill\relax%
\beamer@framebottomskip=0pt plus 1fill\relax%
\beamer@frametopskipautobreak=0pt plus .4\paperheight\relax%
\beamer@framebottomskipautobreak=0pt plus .6\paperheight\relax%
}
\makeatother
\begin{document}
\begin{frame}
\frametitle{title}
content content content content content content content content
\end{frame}
\begin{frame}
content content content content content content content content
\end{frame}
\end{document}