2010-04-13 6 views
1

J'utilise la commande suivante BeamerLatex Beamer Commande pour faire image Diapositives

\newcommand{\imgslide}[2]{ 
     {\setbeamertemplate{background canvas}{ 
     \includegraphics [width=\paperwidth,height=\paperheight]{images/#1}} 
      \begin{frame}[plain] 
       \txtonimg{#2} 
      \end{frame} 
     } 
} 

Et je reçois des erreurs à plusieurs reprises.

Le même contenu lorsqu'il est écrit manuellement fonctionne bien.

Et la commande inclus dans la commande ci-dessus est:

\newcommand{\txtonimg}[1]{ 
\begin{center} 
\fcolorbox{red}{black}{ 
\textcolor{white} 
{#1} 
} 
\end{center} 
} 

L'erreur est:

] 
! Too many }'s. 
\endframe ->\egroup 
      \begingroup \def \@currenvir {frame} 
l.107  \end{frame} 

Tout semble bon pour moi, sur des tests répétés.

+0

Cela va sembler stupide, mais avez-vous expérimenté autour de différents espaces de votre '' newcommand'? J'ai eu des problèmes répétés avec cela simplement parce que LaTeX voulait ou ne voulait pas quelque chose sur une nouvelle ligne. –

+0

J'ai créé une présentation minimale avec vos commandes et un exemple d'image (dans http://interfix.arane.us/stackoverflow/2633624/ si vous voulez l'essayer sur votre machine) et LaTeX l'a compilé sans vous plaindre. – RTBarnard

+0

Quand obtenez-vous l'erreur: lorsque les macros sont en cours de définition, ou quand ils sont invoqués? Si ce dernier, quels paramètres leur passez-vous? –

Répondre

1

Beamer utilise beaucoup de \catcode tricherie, et il est probable que c'est ce qui cause vos problèmes. Comme je ne peux pas reproduire votre erreur sans un exemple minimal, je ne peux que spéculer (en général à l'avenir si vous voulez l'aide la plus efficace, fournissez un complet exemple exemple qui présente le problème - en faisant cela, vous aurez souvent réduisez-le vous-même, mais au moins vous vous assurez que les autres peuvent le reproduire fidèlement).

Essayez d'ajouter l'option fragile au cadre dans la définition, comme dans

\begin{frame}[plain,fragile]

Je ne suis pas sûr de ce que les compromis sont, mais cela provoque l'environnement frame à se comporter plus comme un environnement normal .