
Как проверить пустой KOMAvar?
Я хочу скрыть значок почты, когдаизemailпусто.
\documentclass[refline=nodate]{scrlttr2}
\usepackage{lipsum,marvosym}
\setkomavar{fromname}{David}
\setkomavar{fromemail}{}
\setkomavar{place}{here}
\setkomavar{backaddress}{}
\usekomavar[\edef\komaemail]{fromemail} % Defining a variabel komaemail
\makeatletter
\setkomavar{fromaddress}{Road 17\\9900 place \hfill \usekomavar{place},~\usekomavar{date}\\[.3em]
\ifx \@komaemail \@empty\relax\else % Testing for komaemail
\hspace*{-1.3em}\Letter ~ \usekomavar{fromemail}
\fi
}
\makeatother
\begin{document}
\begin{letter}{%
Name \\
Adress \\
Some place
}
\opening{No, just a regular mistake. Kif might! Why would a robot need to drink?}
\lipsum[2]
\closing{Out.}
\end{letter}
\end{document}
решение1
Просто используйте
\Ifkomavarempty{fromemail}{true-code}{false-code}
например.
\documentclass[refline=nodate]{scrlttr2}
\usepackage{lipsum,marvosym}
\setkomavar{fromname}{David}
\setkomavar{fromemail}{}
\setkomavar{place}{Here}
\setkomavar{backaddress}{}
\usekomavar[\edef\komaemail]{fromemail}
\setkomavar{fromaddress}{Road 17\\9900 Place \hfill
\usekomavar{place},~\usekomavar{date}\\[.3em]
\Ifkomavarempty{fromemail}{}{\usekomavar{fromemail}}%
\Ifkomavarempty{place}{}{Hello, place is not empty!}%xo
}
\begin{document}
\begin{letter}{%
Name \\
Adress \\
Some place
}
\opening{No, just a regular mistake. Kif might! Why would a robot need
to drink?}
\lipsum[2]
\closing{Out.}
\end{letter}
\end{document}
Ваш \edef
не устанавливает переменную кома.