Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

For the next few semesters I'll be making a lot of beamer presentations with a lot slides that are just a frame title and a figure. I am trying to make a command to make a lot faster to code and easier to read. Here is my first attempt:

\usepackage{graphicx}

\newcommand {\framedgraphic}[2] {
\begin{frame}{#1}
    \begin{figure}
        \begin{center}
            \includegraphics{#2}
        \end{center}
    \end{figure}
\end{frame}
}

In this past I've have scaled manually with something like

\includegraphics[height=0.7\textheight]{table3a.png}

Through trial and error I have to find the right scaling to make the figure fill the slide. Is there a way I can automatically do this scaling without adding more arguments to my command? Including covering both wide and tall figures? Thanks!

BTW, here I'm using graphicx but I'm not really wed to it. I am just getting started in TeX and would love to learn any new ways of thinking of this problem.

share|improve this question
    
I know that problem. The available height depends on the used beamer style. The fame title (and sub-title if present) counts as part of \textheight. AFAIK there is no length which stores the rest of the height. –  Martin Scharrer Feb 24 '11 at 16:32
2  
Note that the figure environment is for floating figures, which doesn't make sense in a presentation. They are not required for \includegraphics to work. Simply remove them here. –  Martin Scharrer Feb 24 '11 at 16:55
2  
Beamer defines \headheight and \footheight, but it seems that \textheight-\headheight-\footheight is bigger then the actual height you have available. –  Caramdir Feb 24 '11 at 17:15
1  
figure is not a floating environment inside beamer –  Herbert Feb 24 '11 at 21:41
9  
Not more than \includegraphics[width=.95\textwidth,height=\myheight,keepaspectratio]{image} where \myheight = \textheight - some guessed value. –  Martin Scharrer Feb 24 '11 at 22:53

1 Answer 1

up vote 22 down vote accepted

Martin's comment had the fix. Here's what I'm using:

\newcommand {\framedgraphic}[2] {
    \begin{frame}{#1}
        \begin{center}
            \includegraphics[width=\textwidth,height=0.8\textheight,keepaspectratio]{#2}
        \end{center}
    \end{frame}
}
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.