Я пытаюсь создать пользовательский титульный лист, но не могу написать макрос, который определяет, пусто ли поле даты или нет. Если это так, то block
запись даты нужно просто обойти.
Изображение выше выглядит странно, так как заголовок блока даты отображается, но фактическая дата пуста. Конечно, я могу вручную удалить блок даты для такого случая, но я все равно хочу, чтобы это делалось автоматически. Я также хочу знать, как определить, пусто ли какое-то поле или нет.
\documentclass[aspectratio=169, xcolor={x11names}]{beamer}
\usecolortheme{rose}
\setbeamercolor{itemize item}{fg=black}
\useoutertheme[]{tree}
\useinnertheme{inmargin}
\setbeamersize{text margin left=2mm, text margin right=2mm}
\newlength{\sidebarWidth}
\setlength{\sidebarWidth}{0.2\paperwidth}
\setbeamersize{sidebar width left=\sidebarWidth, sidebar width right=0cm}
\usefonttheme{structurebold}
\title{The Main Title of The Presentation}
\subtitle{Short Title Goes here}
\author{Al-Motasem Aldaoudeyeh}
\institute{North Dakota State University}
\date{}
\setbeamertemplate{headline}{}
\setbeamertemplate{date}{nothing}
\setbeamercolor{block title}{fg=blue}
\setbeamerfont{title page}{shape=\bfseries}
% Custome title page
\setbeamertemplate{title page}{
\vspace*{\stretch{3}}
\begin{block}{}
\usebeamercolor[fg]{title page}\usebeamerfont{block title}\usebeamertemplate{block title}
\inserttitle
\end{block}
\begin{block}{}
\usebeamercolor[fg]{title page}\usebeamerfont{block title}\usebeamertemplate{block title}
\large \insertsubtitle
\end{block}
\vspace{\stretch{2}}
\begin{block}{Author}
\insertauthor
\end{block}
\begin{block}{Institute}
\insertinstitute
\end{block}
\begin{block}{Date}
\insertdate
\end{block}
\vspace{\stretch{5}}
}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\end{document}
решение1
Если дата действительно пустая (например, если ваш документ содержит \date{}
), то вы можете проверить это с помощью
\ifx\insertdate\empty%
\else%
\begin{block}{Date}
\insertdate
\end{block}
\fi
Обратите внимание: если ваш документ не содержит никаких \date
команд, по умолчанию будет отображаться текущая дата.
\documentclass[aspectratio=169, xcolor={x11names}]{beamer}
\usecolortheme{rose}
\setbeamercolor{itemize item}{fg=black}
\useoutertheme[]{tree}
\useinnertheme{inmargin}
\setbeamersize{text margin left=2mm, text margin right=2mm}
\newlength{\sidebarWidth}
\setlength{\sidebarWidth}{0.2\paperwidth}
\setbeamersize{sidebar width left=\sidebarWidth, sidebar width right=0cm}
\usefonttheme{structurebold}
\title{The Main Title of The Presentation}
\subtitle{Short Title Goes here}
\author{Al-Motasem Aldaoudeyeh}
\institute{North Dakota State University}
\date{}
\setbeamertemplate{headline}{}
\setbeamertemplate{date}{nothing}
\setbeamercolor{block title}{fg=blue}
\setbeamerfont{title page}{shape=\bfseries}
% Custome title page
\setbeamertemplate{title page}{
\vspace*{\stretch{3}}
\begin{block}{}
\usebeamercolor[fg]{title page}\usebeamerfont{block title}\usebeamertemplate{block title}
\inserttitle
\end{block}
\begin{block}{}
\usebeamercolor[fg]{title page}\usebeamerfont{block title}\usebeamertemplate{block title}
\large \insertsubtitle
\end{block}
\vspace{\stretch{2}}
\begin{block}{Author}
\insertauthor
\end{block}
\begin{block}{Institute}
\insertinstitute
\end{block}
\ifx\insertdate\empty%
\else%
\begin{block}{Date}
\insertdate
\end{block}
\fi
\vspace{\stretch{5}}
}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\end{document}
решение2
Вот ответкоторый работает для пустой или «белой» даты
\documentclass[aspectratio=169, xcolor={x11names}]{beamer}
% Added code:
\makeatletter
\newcommand{\AddDateBox}{\xdef\mystring{\insertdate}\sbox1{\hbox{\mystring}}\sbox2{\hbox{\space}}\ifdim\wd1=\wd2\relax\else\ifx\insertdate\empty\relax\else\begin{block}{Date}\insertdate\end{block}\fi\fi}
\makeatother
\usecolortheme{rose}
\setbeamercolor{itemize item}{fg=black}
\useoutertheme[]{tree}
\useinnertheme{inmargin}
\setbeamersize{text margin left=2mm, text margin right=2mm}
\newlength{\sidebarWidth}
\setlength{\sidebarWidth}{0.2\paperwidth}
\setbeamersize{sidebar width left=\sidebarWidth, sidebar width right=0cm}
\usefonttheme{structurebold}
\title{The Main Title of The Presentation}
\subtitle{Short Title Goes here}
\author{Al-Motasem Aldaoudeyeh}
\institute{North Dakota State University}
\date{}
\setbeamertemplate{headline}{}
\setbeamertemplate{date}{nothing}
\setbeamercolor{block title}{fg=blue}
\setbeamerfont{title page}{shape=\bfseries}
% Custome title page
\setbeamertemplate{title page}{
\vspace*{\stretch{3}}
\begin{block}{}
\usebeamercolor[fg]{title page}\usebeamerfont{block title}\usebeamertemplate{block title}
\inserttitle
\end{block}
\begin{block}{}
\usebeamercolor[fg]{title page}\usebeamerfont{block title}\usebeamertemplate{block title}
\large \insertsubtitle
\end{block}
\vspace{\stretch{2}}
\begin{block}{Author}
\insertauthor
\end{block}
\begin{block}{Institute}
\insertinstitute
\end{block}
\AddDateBox
\vspace{\stretch{5}}
}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\end{document}