Archiv verlassen und diese Seite im Standarddesign anzeigen : Geschwungene Klammer als Argument
Hallo zusammen,
ich versuche, eine neue Umgebung zu definieren, die mit "}" enden soll. Wie kann ich ein "}" in die Definition der Umgebung einbeziehen? Naturgemäß interpretiert Latex das "}" als Ende der Definition.
Hier ein (nicht funktionierendes) Beispiel:
\documentclass{article}
\newenvironment{\testenv}{%
\emph{% Beginn der Umgebung
}{%
}% Ende der Umgebung
}
\begin{document}
\begin{testenv} % Dies soll durch "\emph{" ersetzt werden.
Test
\end{testenv} % Dies soll durch "}" ersetzt werden.
\end{document}
\emph ist natürlich nur ein Platzhalter für eine komplexere Umgebungsdefinition.
Vielen Dank im Voraus für Vorschläge!
Gruß
Sebastian
u_fischer
05-09-2013, 14:52
In deinem Beispiel solltest du \emph einfach durch \em ersetzen. Wenn du wirklich den Inhalt der Umgebung als Argument brauchst, musst du ihn erst einsammeln. Z.B. mit einer lrbox oder mit dem environ-Paket.
Vielleicht reicht auch
\documentclass{article}
\newenvironment{testenv}{\emph\bgroup}{\egroup}
\begin{document}
\begin{testenv}
Test
\end{testenv}
\end{document}
Gruß
Elke
In dem Fall ist \em wirklich überlegen:
\documentclass{article}
\newenvironment{testenvA}{\emph\bgroup}{\egroup}
\newenvironment{testenvB}{\em}{}
\begin{document}
\begin{testenvA}
testenvA
testenvA
\end{testenvA}
\begin{testenvB}
testenvB
testenvB
\end{testenvB}
\end{document}
Um das mit \emph richtig hinzubekommen, muss man nach \bgroup noch ein \ignorespaces hinzufügen. Das macht die ganze Definition etwas unhandlich. Die Umschalter (\em, \bfseries, \itshape etc.) sind je geradezu für Umgebungen gemacht.
Vielen Dank für eure Antworten! \emph war ein blödes Beispiel, da mein Problem komplexer ist. Allerdings ist mir jetzt klargeworden, dass ich anstatt mit \newenvironment auch einfach mit \newcommand arbeiten kann und die geschwungene Klammer nicht in die Definition einbeziehe, sondern einfach im Dokument bringe. Der Vollständigkeit halber ist hier meine Lösung, auch wenn sie für viele Forenleser nicht sonderlich relevant sein dürfte:
\documentclass[
handout,
11pt
]{beamer}
\usepackage{ae}
%% Preparation vs. complete
% Handout 1: Preparation
\newcommand{\notinprep}{\only<handout>{
\begin{center}
\footnotesize{\emph{(Blank in handout)}}
\end{center}
}\visible<beamer>}
% Handout 2: complete
%\renewcommand{\notinprep}[1]{#1}
\begin{document}
\frame{
\frametitle{An example}
Imagine that the US is preparing for the outbreak of an unusual Asian disease, which is expected to kill 600 people. There are two alternative programs.
\notinprep{This text should not appear in the handout for preparation.}
}
\end{document}
Der Code-Editor entfernt leider zwei Teilbefehle: Hinter \only fehlt "handout" in Kleiner-/Größerzeichen und hinter \visible das gleiche für "Beamer".
Das Beispiel zeigt, was ich erreichen möchte: In Beamer hätte ich gerne drei Versionen meines Dokuments. Erstens ein Handout zur Vorbereitung, in dem einige Inhalte fehlen. Diese Version wird durch das obige Beispiel erzeugt. Zweitens benötige ich die Vortragsfolien. Dazu kommentiere ich "handout" mit % aus. Drittens benötige ich zur Nachbereitung ein Handout, in dem alle Inhalte vorhanden sind. Dafür entferne ich % vor "\renewcommand{\notinprep}[1]{#1}" und "handout".
Beste Grüße
Sebastian
Hallo,
das Problem mit den < und > hatte ich auch kürzlich. Ersetze sie in solchen Fällen einfach durch ihre HTML-Namen (http://www.schwedisch-translator.de/synonyme/sonderzeichen.html), dann klappt es.
\only<handout>{
... \visible<beamer>}
Gruß
Elke
u_fischer
06-09-2013, 10:24
Ich würde ja eher sowas machen:
\documentclass[
handout,
11pt
]{beamer}
%\newcommand\hnr{1} %text ist im Handout
\newcommand\hnr{0} %text ist nicht im Handout
\begin{document}
\frame{
\frametitle{An example}
Imagine that the US is preparing for the outbreak of an unusual Asian disease, which is expected to kill 600 people. There are two alternative programs.
\only<handout:\hnr>{This text should not appear in the handout for preparation.}
}
\end{document}
Wie man an Ulrikes erstklassiger Antwort sieht, ist es immer gut, das eigentliche Problem zu schildern und nicht nur das Problem, das man mit dem eigenen Lösungsversuch hat.
Das ist wohl wahr. Ich nehme das Wort "Minimalbeispiel" manchmal zu wörtlich.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.