PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : \frac oder \sfrac je nach beamer-Modus



Magger
21-01-2011, 09:58
Hallo, ich möchte in meinem Beamer-Dokument folgendes erreichen:

Bestimmte Brüche sollen in der beamer-Version als \sfrac-Brüche (also mit schrägem Bruchstrich) erscheinen, in der article-Version allerdings als normale \frac-Brüche (mit geradem Bruchstrich).

Ich habe mir dazu einen neuen Befehl \dsfrac zusammengebastelt, der das machen soll. Es funktioniert auch teilweise, leider gibt es aber ein paar Fehlermeldungen und ich komme nicht weiter.

Kann mir jemand anhand des unten gezeigten Minimalbeispiels helfen?



% entweder
%\documentclass{beamer}
% oder
\documentclass{scrartcl}
\usepackage{beamerarticle}

\usepackage{amsmath}
\usepackage{xfrac}

% spezieller Bruch, der einen \sfrac im presentation-Modus und einen
% \frac im article-Modus ergibt
\newcommand{\dsfrac}[2]{\mode<article>\frac{#1}{#2}\mode<presentation>\sfrac{#1}{#2}}

\begin{document}

\begin{frame}
\begin{equation}
a = \dsfrac{b}{c}
\end{equation}
\end{frame}

\end{document}

mechanicus
21-01-2011, 10:31
Hi,

mit mode klappt es nicht. mode ruft intern par auf, was ja ein wenig ungünstig ist :rolleyes:

Und wenn sollte die Anweisung

\mode<article>{\frac{#1}{#2}}
lauten


% entweder
\documentclass{beamer}
% oder
%\documentclass{scrartcl}
%\usepackage{beamerarticle}

\usepackage{amsmath}
\usepackage{xfrac}

% spezieller Bruch, der einen \sfrac im presentation-Modus und einen
% \frac im article-Modus ergibt
\makeatletter
\newcommand{\dsfrac}[2]{%
\def\tempa{article}
\ifx\beamer@currentmode\tempa\relax
\frac{#1}{#2}%
\else
\sfrac{#1}{#2}
\fi%
}
\makeatother

\begin{document}

\begin{frame}

\begin{equation}
a = \dsfrac{b}{c}
\end{equation}
\end{frame}

\end{document}

Gruß
Marco

Magger
21-01-2011, 11:30
Danke für die sehr gute Lösung des Problems.

Ich hatte auch schon die \mode{}-Variante ausprobiert. Die produzierte aber noch mehr Fehlermeldungen.