Ich arbeite mich gerade in die Objektorientierung von pgf ein (zu finden im pgfmanual Kapitel 94), da ich es in meinem Dokument recht gut gebrauchen kann. Jedoch bin ich gerade auf das Problem gestoßen, dass ich auf definierte Methoden einer Klasse innerhalb der eckigen Klammern eines subfloat die Fehler bekomme, dass der Aufruf nicht der Definition entspricht. Ich vermute, es liegt an dem Parse-Vorgang von pgf, welcher Probleme mit den eckigen Klammern in der Umgebung hat. Hier ein Beispiel: Open in writeLaTeX
\documentclass{scrartcl} \usepackage[utf8]{inputenc} \usepackage{subfig} \usepackage{pgf} \usepgfmodule{oo} \pgfooclass{MyClass}{ \attribute name; \method MyClass(#1){ % constructor \pgfooset{name}{#1} } \method printName() { \pgfoovalueof{name} } } \pgfoonew \myObject=new MyClass(Automatic Foo Bar) \begin{document} \begin{figure} \centering \subfloat[\myObject.printName()]{Manual Foo Bar} \caption{Bla Bla} \end{figure} \myObject.printName() \end{document} Wenn man gefragt 05 Aug '14, 16:45 ErnstZ |
Das Argument von subfloat "bewegt" sich: Es muss z.B. in Abbildungslisten wandern. Da darf es nicht zerbrechlich sein. Entweder benütze das zweite optionale Argument für den Listeneintrag oder schütze den Befehl: Open in writeLaTeX
\subfloat[\protect\myObject.printName()]{Manual Foo Bar} \subfloat[listeneintrag][{\myObject.printName()}]{Manual Foo Bar} beantwortet 05 Aug '14, 16:53 Ulrike Fischer Vielen Dank Ulrike. Deine Lösung mit
(06 Aug '14, 09:07)
ErnstZ
1
Ja, protect hilft Fehler mit zerbrechlichen Befehlen zu verhindern, aber oft will man gar nicht, dass der Befehl wandert (gilt z.B. auch bei Fußnoten, cite u.ä).
(06 Aug '14, 14:16)
Ulrike Fischer
|