[Tex/LaTex] \emph gets lost in beamer class when used within italic or bold text

beamerboldemphasisitalicitemize

I use the beamerclass in Latex. Using \emph has worked fine so far. Now I want to use \emphwithin a bold (\textbf) and an italic (\textit) sentence. However, the output seems to ignore the emphases. The sentences are in bold and italic font, respectively, but no emphasized words are distinguishable from the rest (or make the difference so marginal that I cannot see it; my eyes are not that good…):

bold and italic text with emphases

Is the problem about the beamer class here? Or about the fact I use a list (\itemize).

Here's my MWE:

\documentclass{beamer}
\mode<presentation>
{
\usetheme{Berlin}      
\usecolortheme{default} 
\usefonttheme{default} 
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{caption}[numbered]
} 

\usepackage[ngerman, english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{hyperref}
\usepackage{tikz}
\usetikzlibrary{trees,shapes}


\begin{document}
\begin{frame}
blah blah
\begin{itemize}
\item blah normal without any bold or italics \emph{emph blah!} blah blah
\item \textbf{bold blah blah \emph{emph blah!} blah blah}
\item \textit{italic blah \emph{emph blah!} blah blah}
\end{itemize}
\end{frame}

\end{document}

Thank you for any advice!

Best Answer

If I do

\show\emph

I get

> \emph=macro:
->\beamer@sort {\beamerx@\emph }{1}.

and discover that, eventually, the macro \beamerx@\emph (where the second backslash is part of the name) expands to

> \beamerx@\emph=\long macro:
#1#2->{\only #2{\itshape }#1}.

which explains the behavior: you get \itshape notwithstanding.

Indeed, we find in beamerbaseoverlay.sty the definition

\newcommand<>{\emph}[1]{{\only#2{\itshape}#1}}

and you can restore the LaTeX behavior of switching to upright when \emph is used in slanted context by adding

\renewcommand<>{\emph}[1]{{\only#2{\em}#1}}

to your preamble.

\documentclass{beamer}
\mode<presentation>
{
\usetheme{Berlin}
\usecolortheme{default}
\usefonttheme{default}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{caption}[numbered]
}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman, english]{babel}
\usepackage{tikz}
\usetikzlibrary{trees,shapes}

\renewcommand<>{\emph}[1]{{\only#2{\em}#1}}

\begin{document}
\begin{frame}
blah blah
\begin{itemize}
\item blah normal without any bold or italics \emph{emph blah!} blah blah
\item \textbf{bold blah blah \emph{emph blah!} blah blah}
\item \textit{italic blah \emph{emph blah!} blah blah}
\end{itemize}

\end{frame}

\end{document}

Note. I added \usepackage[T1]{fontenc} as it's necessary for German and solves part of the problem, because in the font family corresponding to Computer Modern T1 there is slanted boldface. I also changed utf8x into utf8 (the former option corresponds to a largely unmaintained and overly complex package).

enter image description here

On the other hand, you should keep in mind that you're doing a presentation, so such finer details are unlikely to be noticed by the audience or they may be distracting: keep it as simple as possible.