# Beamer does not restore roman style for emph inside emph

It seems that \em and \emph do not alternate between itshape and normal shape. How can this be restored?

Test case:

\documentclass{beamer}
\begin{document}
\frame{\em abc \emph{def \emph{ghi} jkl} mno}
\end{document}


With "article" it works as expected.

This is beamer 2011/09/12 development version 3.20.

-
Almost certainly this is one of the many things that Till didn't allow for when writing beamer, I guess here as it likely use cases are pretty rare. –  Joseph Wright Jan 5 '13 at 9:47
Before anything else, remember that a change between rm and it shapes isn't as visible on a presentation as on a paper, that's why beamer defines the command \alert. About your problem, nesting emph commands should be used to over-emphasize a part of text, not to make the text back to its default level of emphasization, so defining a second emphasize command for that purpose would be a solution. In case what you want is simply to come back to the default level, the natural way of doing so is to close the macro and open a second one. –  T. Verron Jan 5 '13 at 10:00
The problem is not on the use of \em and \emph. It is just for nested \emphs. –  Guido Jan 5 '13 at 10:02
@JosephWright I frequently rely on nested \emphs. –  Marc van Dongen Jan 5 '13 at 10:49
@T.Verron Creating a second command defeats the purpose. If, for some reason, you decide to remove the top-level emphasis command, you have to change the status of the second-level command to top-level command. If the second-level command is visible, this may not be a problem and you may spot it. However, if it's the result of a macro call, you may very well not notice it. –  Marc van Dongen Jan 5 '13 at 10:51

beamerbaseoverlay.sty contains

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

so \emph only produces italic shape. However, \em is not changed and you can write

\documentclass{beamer}

\begin{document}
\frame{\em abc {\em def {\em ghi} jkl} mno}
\end{document}


giving

which produces the shapes you expect, but is not overloaded with the overlay options beamer provides in its modified \emph. Theses options mean that you can write \emph<3>{text} to print the text on all slides but italise it only on slide 3. If you are willing to forego this functionality and just want \emph to behave like {\em ...} then you can put

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


in your preamble. Added: As you comment, the above may be combined to get the overlay behaviour via:

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


As other posters note, often one would prefer to use beamer commands such as \alert for extra contrast in presentations.

-
Thanks, I have chosen to reimplement \emph with \renewcommand<>{\emph}[1]{{\only#2{\em}#1}} because (i) I want \emph and I consider it a bug that Beamer turns the feature off without saying, and (ii), yet I want to use the <> features. –  akim Jan 6 '13 at 11:09