사용자 정의 제목 페이지 템플릿을 디자인할 때 날짜 필드가 비어 있는지 어떻게 감지합니까?

사용자 정의 제목 페이지 템플릿을 디자인할 때 날짜 필드가 비어 있는지 어떻게 감지합니까?

사용자 정의 제목 페이지를 만들려고 하는데 날짜 필드가 비어 있는지 여부를 감지하는 매크로를 작성할 수 없습니다. 그렇다면 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}

관련 정보