PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fedora 9, Beamer und TeXLive (Problem 2)



DanielDD
02-07-2008, 17:29
Hallo Leute,

hier ist noch ein File, welches man mit tetex/beamer unter Fedora 6
kompilieren kann, mit texlive/beamer unter Fedora 9 jedoch nicht.

Ich habe das File stark reduziert, um den Fehler anschaulich darzustellen.
Der Hintergrund ist: Ich habe ein Vorlesungsskript mit Folien. Beim
Kompilieren der Folien werden Beispiele nicht fortlaufend numeriert.
Stattdessen werden die labels aus dem Vorlesungsskript importiert.
Dadurch ist die Numerierung synchron, auch wenn einige Beispiele
nur in dem Vorlesungsskript, aber nicht in den Folien auftreten.

Ich verwende derartige Konstruktionen in etlichen Vorlesungsskripten,
die lassen sich jetzt alle nicht mehr kompilieren..... Ich kann nicht alle
zwei Jahre neue Skripte schreiben, nur weil es jetzt andere Tex-Pakete
gibt.

Das Interessante ist: wenn man in Zeile 9 testlabel durch einen
undefinierten label ersetzt, dann klappt das kompilieren,
(bis auf eine Warnung).

Hat jemand eine Idee, wie man so etwas auch mit texlive/beamer
unter Fedora 9 kompilieren kann?

\documentclass{beamer}
\newenvironment{beispiel}[1]{Beispiel~\ref{#1}}{}
\newlabel{testlabel}{{1.1}{1}}

\begin{document}
\mode<all>

\begin{frame}
\begin{beispiel}{testlabel}
test
\end{beispiel}
\end{frame}

\mode*
\end{document}

Stefan_K
02-07-2008, 18:13
Hallo Daniel,

evtl. hat das beamer-Paket bei einem Versionssprung die Behandlung von Referenzen verändert, was dir nun auffällt. beamer redefiniert nämlich \ref (ersichtlich im logfile: LaTeX Info: Redefining \ref on input line x. In beamerbaseoverlay.sty wird \ref verändert, um hyperlinks zu erzeugen, die originale Definition wird in \beamer@origref gesichert.
Wenn Du keine hyperlinks benötigst, sollte es also damit klapen:

\makeatletter
\newenvironment{beispiel}[1]{Beispiel~\beamer@origref{#1}{}}{}
\makeatother

Viele Grüße,

Stefan

voss
02-07-2008, 19:33
hier ist noch ein File, welches man mit tetex/beamer unter Fedora 6
kompilieren kann, mit texlive/beamer unter Fedora 9 jedoch nicht.


wo ist denn das Problem, dass du dir von sourceforge einfach das
aktuelle beamer holst und installierst, zusammen mit pgf??

Herbert

DanielDD
03-07-2008, 11:14
wo ist denn das Problem, dass du dir von sourceforge einfach das aktuelle beamer holst und installierst, zusammen mit pgf??


Ich weiss nicht, ob das hilft. Das Problem ist doch, dass ich meine alten Files
(unter Fedora 6, tetex, beamer) mit der neuen Version (Fedora 9, texlive,
beamer) nicht mehr kompilieren kann. Loesen kann man das doch eher
durch ein Downgrade.

Daniel

DanielDD
07-07-2008, 11:47
\makeatletter
\newenvironment{beispiel}[1]{Beispiel~\beamer@origref{#1}{}}{}
\makeatother


Hallo Stefan,

danke, so funktioniert es mit den Umgebungen , das file laesst sich
jetzt bis zum naechsten Fehler kompilieren :)

Wenn innerhalb eines Frames ein \ref{label} auftritt, dann
bekomme ich am Ende des Frames eine Fehlermeldung.

MfG, Daniel

Stefan_K
07-07-2008, 16:41
Hallo Daniel,

dann mache die Änderung durch beamer komplett rückgängig mit \let\ref=\beamer@origref, was nach \begin{document} stehen muss, um Wirkung zu haben:

\documentclass{beamer}
\newenvironment{beispiel}[1]{Beispiel~\ref{#1}{}}{}
\newlabel{testlabel}{{1.1}{1}}
\begin{document}
\makeatletter
\let\ref=\beamer@origref
\makeatother
\mode<all>

\begin{frame}
\begin{beispiel}{testlabel}
test test
\end{beispiel}
Siehe \ref{testlabel}.
\end{frame}

\mode*
\end{document}

Stefan

DanielDD
09-07-2008, 23:21
Hallo Stefan,

es geht jetzt zu kompilieren, aber es gibt noch ein kleines Problem:

\ref{testlabel} und

produziert im Ausgabefile

1.1nd

also das Leerzeichen und das u verschwinden.

Daniel

Stefan_K
09-07-2008, 23:29
Hi Daniel,

auf die Schnelle: mit \ref{testlabel}{} sollte es klappen.

Stefan

DanielDD
11-07-2008, 23:19
auf die Schnelle: mit \ref{testlabel}{} sollte es klappen.


Danke, jetzt klappt es alles :)

DanielDD
11-07-2008, 23:27
auf die Schnelle: mit \ref{testlabel}{} sollte es klappen.


Danke, jetzt klappt es alles :)