テーマの代わりに使用するtikz
環境を で作成していました。問題は、 オプションを使用しており、毎回 2 回実行する必要があることです。が使用される要素は単純なので、 の代替手段があるかもしれません。 の代替手段を提供できる方はいらっしゃいますか?beamer
overlay, remember picture
latex/lualatex
tikz
tikz
tikz
上部の装飾罫線の高さに設定することでtmargin
、スライドの白い部分を基準に垂直方向の中央揃えが調整されます。
上部の定規の下端と右端に薄い陰影効果をつけたいのですが、どなたか提案していただけないでしょうか?
コードは次のとおりです:
\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}
答え1
コードはコンパイルされません。も定義されてい\enttH
ません\rulewidth
。 質問を投稿する前に、サンプル コードをテストしてください。
そうは言っても:
ジオメトリ設定を手動で変更することはお勧めしません。Beamer は、スライドのアスペクト比を変更したり、見出しの高さを計算したりする機能が非常に優れています。
フレーム内に新しい環境を作成する代わりに、
frametitle
テンプレートを調整します。毎回 2 回コンパイルする必要はありません。補助ファイルを削除しない限り、最初に 2 回コンパイルすれば、その後は 1 回コンパイルするだけで十分です。また、latex/beamer の他の多くの要素 (toc、相互参照、合計フレーム数など) も、最初に 2 回のコンパイルが必要です。いずれにしても、複数回のコンパイルが必要になる可能性があります。
オプションを使用しない場合は、2 回目のコンパイルを完全に回避できます
remember picture, overlay
。フレームタイトルはいずれにしてもページの上部にあります。TikZ にはさまざまな影が用意されています。それらを使用するのは、あなたの事前のアクションよりも簡単そうです。効果を再現するには、おそらく が
drop shadow
最も近いでしょう。fontsize
スケーラブルなフォントも使用しない場合は、このパッケージは使用しないでください。
\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}