PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schrift in caption bestimmt durch umgebenden Text



LuPi
15-08-2011, 15:17
Wie kann ich die Schrift in einer \caption automagisch durch den
umgebenden Text bestimmen lassen (siehe Beispiel)?


\documentclass{scrartcl}
\usepackage{caption}
%\usepackage{kpfonts}
\usepackage{sansmath}
\newcommand{\Frage}[1]{\sffamily\begin{sansmath}#1\end{sansmath}}
\newcommand{\Antwort}[1]{\rmfamily #1}
\begin{document}
\Frage{Hier kommt die Frage \ldots
\begin{figure}[h]\caption{Frage $1+1=a$}\end{figure}}

\Antwort{\ldots und hier die Antwort.
\begin{figure}[h]\caption{Antwort $2+2=b$}\end{figure}}
\end{document}

sommerfee
15-08-2011, 15:24
Wie kann ich die Schrift in einer \caption automagisch durch den
umgebenden Text bestimmen lassen

AFAIK geht das nicht. Der Witz von \caption ist ja auch gerade, daß die Beschriftung immer gleichermaßen gesetzt wird, also unabhängig davon, wo die Gleitumgebung steht und unabhängig davon, was in der Gleitumgebung steht. Dein Wunsch steht diesem Konzept völlig entgegen.


(siehe Beispiel)?

Da steht eine Gleitumgebung innerhalb der Verwendung von \Frage und \Antwort, das kann so nicht funktionieren, weil die Gleitumgebung (nomen est omen) aus der Frage bzw. Antwort herausgleitet. (Sie hat auch deswegen keinen "umgebenen Text", LaTeX setzt die Gleitumgebung stattdessen dort hin, wo es ihm gerade in den Kram passt.)

Mir ist auch überhaupt nicht klar, warum hier \caption eingesetzt werden soll.

LuPi
15-08-2011, 15:42
Die Gleitobjekte sind hier (grundsätzlich) schon nicht ganz unsinnig, da es
letztlich auch vorkommen könnte, dass Frage und/oder Antwort über mehrere
Seiten gehen und dazwischen ein float-Hemmer steht. Aber Dein impliziter
Hinweis auf capt-of war schon ganz berechtigt, da das im Moment absolut
ausreichend ist.


\documentclass{scrartcl}
\usepackage{capt-of}
%\usepackage{kpfonts}
\usepackage{sansmath}
\newcommand{\Frage}[1]{\sffamily\begin{sansmath}#1\end{sansmath}}
\newcommand{\Antwort}[1]{\rmfamily #1}
\begin{document}
\Frage{Hier kommt die Frage \ldots \captionof{figure}{Frage}}

\Antwort{\ldots und hier die Antwort. \captionof{figure}{Antwort}}
\end{document}

Nur leider bleibt die Ausgangsfrage unverändert bestehen. Womit ich
vorerst auch leben könnte, wäre ein oder genauer zwei selbst
gebaschtelte Makros \rmcaption und \sfcaption, da ich auf lot, lof und
Ähnliches verzichten kann. Das ist keine so große Sache, aber es wäre
halt eleganter gewesen, wenn es dafür eine existente Lösung gegeben
hätte.

sommerfee
15-08-2011, 15:47
Die Gleitobjekte sind hier (grundsätzlich) schon nicht ganz unsinnig, da es
letztlich auch vorkommen könnte, dass Frage und/oder Antwort über mehrere
Seiten gehen und dazwischen ein float-Hemmer steht.

Diesen Satz verstehe ich nicht. Wieso sollten Teile der Frage und Antwort gleiten? Und wieso packt man sie dann ins das Argument von \Frage und \Antwort, wenn sie dort doch sowieso herausgleiten. Und was hat das ganze mit mehreren Seiten zu tun?


Aber Dein impliziter
Hinweis auf capt-of war schon ganz berechtigt, da das im Moment absolut
ausreichend ist.

Für was? Ich habe das Gefühl, daß hier \caption für etwas mißbraucht werden soll, für das es weder gedacht noch geeignet ist.

Vielleicht hilft es, wenn du uns mal beschreibst, was du eigentlich genau machen willst.

bobmalaria
15-08-2011, 15:55
Vielleicht hilft es, wenn du uns mal beschreibst, was du eigentlich genau machen willst.

richtig. in deinem kopf macht das bestimmt alles sinn, nur fuer aussenstehende ist es beinahe unmoeglich zu erkennen worauf du hinaus willst. eventuell hat jemand einen besseren loesungsansatz wenn du erklaerst wie dein endergebnis aussehen soll.

gruss

LuPi
15-08-2011, 16:00
In \Frage{} ist eine Fragestellung enthalten, die sich derzeit auf maximal eine
halbe Seite beschränkt. Insofern ist das Gleiten einer figure/table tatsächlich
überflüssig. Für die \Antwort{} dazu gilt Selbiges.

Es ist aber nicht ausgeschlossen, dass später sowohl Frage als insbesondere
auch Antwort mehrere Seiten beinhalten können, innerhalb derer Objekte
auch gleiten können. Dieser Punkt ist aber noch nicht in Sicht.

Daher habe ich mir jetzt einen Ersatz gebastelt, der in zwei Versionen (sf/rm)
die nicht gleitende Platzierung von Bildern und Tabellen erlaubt, den Verweis
mittels \ref sowie die (leider nicht automatische) Wahl der Schriftschnittes.

u_fischer
15-08-2011, 16:25
Bei der Vorstellung, dass du mehrere Seiten Text (evtl. inklusive Gleitumgebungen) in das Argument eines Befehls stopfst, kringeln sich mir die Fußnägel hoch. Definiere Frage + Antwort-Umgebungen ggfs mit Float-Barrieren. Innerhalb dieser Umgebungen kannst du mit \captionsetup die \caption-Stile ändern.

LuPi
15-08-2011, 17:41
Naja, ob aus dem Befehl noch eine Umgebung wird, ist für mich im Moment
sekundär. Aber Du hast sicherlich Recht, dass da gewisse Risiken enthalten sind.

Und das \captionsetup werde ich mir nachher anschauen. Danke!


Ergänzung: \captionsetup ist genau die richtige Lösung für mein Problem.
Da ich tatsächlich exakt eine Umschaltung von rm auf sf habe, wäre eine
automatische Detektion überdimensioniert (und wie Axel schon angemerkt
hat bei Gleitobjekten ohnehin fragwürdig).