PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler durch korrekte Formel



uwerothfeld
29-05-2009, 14:10
Hallo zusammen,

ich habe folgende Formel, welche im Minibsp. ohne Fehler durchläuft:


\begin{align}
enc(q) &:: REQ \rightarrow B^* \nonumber\\
enc(q) &= \begin{cases}
enc_{SelectList}(q) \circ~enc_{For}(q) \circ~enc_{Where}(q) & \wedge \text{ }qtype(q)=GET\\
enc_{SetCondition}(q) \circ enc_{ForSet}(q) & \wedge \text{ }qtype(q)=SET\\
enc_{SetCondition}(q) \circ enc_{ForUpdate}(q) & \wedge \text{ }qtype(q)=UPDATE\\
enc_{Event}(q) & \wedge \text{ }qtype(q)=ALERT
\end{cases} \nonumber \\
\end{align}

Wenn ich diese allerdings in mein Dokument einbinde, dann bekomme ich über 100 Fehler. Wie z.B.:



! Missing \endcsname inserted.
<to be read again>
\hskip
l.21 \end{align}

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! Extra }, or forgotten \right.
<argument> {@{}l@{\quad }
l@{}} enc_{SelectList}
l.21 \end{align}

I've deleted a group-closing symbol because it seems to be
spurious, as in `$x}$'. But perhaps the } is legitimate and
you forgot something else, as in `\hbox{$x}'. In such cases
the way to recover is to insert both the forgotten and the
deleted material, e.g., by typing `I$}'.

! Extra }, or forgotten \right.
<argument> {@{}l@{\quad }l@{}}
enc_{SelectList}
l.21 \end{align}

I've deleted a group-closing symbol because it seems to be
spurious, as in `$x}$'. But perhaps the } is legitimate and
you forgot something else, as in `\hbox{$x}'. In such cases
the way to recover is to insert both the forgotten and the
deleted material, e.g., by typing `I$}'.

! Extra \endcsname.
\get@VEC #1(#2)->\csname #1#2\string ~\endcsname

l.21 \end{align}

I'm ignoring this, since I wasn't doing a \csname.

! Missing } inserted.
<inserted text>
}
l.21 \end{align}
...


Ich nutze die KOMA-SCRIPT Vorlage von Matthias Pospiech, da kann ich nie alle Pakete durchtesten, woher der Fehler kommt. Daher die Frage: Weiß jemand von Euch wie man dies behebt? Danke.

Uwe

mechanicus
29-05-2009, 14:56
Hallo,

nehme mal die hier und schaue mal bitte, ob das selbe passiert.


\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{amsmath}
\usepackage{blindtext}
\begin{document}
\section{foo}
\blindtext
\begin{align*}
enc(q) &:: REQ \rightarrow B^* \\
enc(q) &= \begin{cases}
enc_{SelectList}(q) \circ~enc_{For}(q) \circ~enc_{Where}(q) & \wedge \quad qtype(q)=GET\\
enc_{SetCondition}(q) \circ enc_{ForSet}(q) & \wedge \quad qtype(q)=SET\\
enc_{SetCondition}(q) \circ enc_{ForUpdate}(q) & \wedge \quad qtype(q)=UPDATE\\
enc_{Event}(q) & \wedge \quad qtype(q)=ALERT\\
\end{cases}
\end{align*}
\blindtext
\end{document}


Gruß
Marco

uwerothfeld
29-05-2009, 15:34
Hi mechanicus,

ja passiert. Als Minibsp. kann ich es ohne Probleme kompilieren, in meinem Projekt habe ich massive. Liegt es am align? Mh.

Uwe

mechanicus
29-05-2009, 15:52
Hallo,

bist du dir Sicher, dass es an der Formel liegt. Ich glaube es fast nicht. Wenn du nur die Formel auskommentierst, dann funktioniert es?
Als Tipp statt text{ } ein einfach \quad

Gruß
Marco

uwerothfeld
29-05-2009, 16:00
Hi mechainicus,

ja, damit ich weitermachen kann, habe ich einfach alles \begin{align} und \end{align} auskommentiert. Damit kann ich wunderbar compilieren. 0 Errors, 0 Warnings, 7 Bad Boxes (Underfull Boxes). Mit dem align bekomme ich 100 Errors geworfen. Komisch, ich weiß.

Uwe

mechanicus
29-05-2009, 16:03
Aber amsmath hast geladen :D:D

Gruß
Marco

uwerothfeld
29-05-2009, 16:08
Hi,

klar, hab doch nochmehr Formelkram in meinen bis jetzt fast 100 Seiten. ;) Auch schon zig mal align genutzt. Nur allign+cases scheitert. Komische Sache.

mechanicus
29-05-2009, 16:13
Habe dir eine PM geschickt.

Gruß
Marco

voss
29-05-2009, 16:41
ich habe folgende Formel, welche im Minibsp. ohne Fehler durchläuft:
[CODE]

! Missing \endcsname inserted.
<to be read again>
\hskip
l.21 \end{align}

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! Extra }, or forgotten \right.
<argument> {@{}l@{\quad }
l@{}} enc_{SelectList}
l.21 \end{align}


du lädst irgendein Paket, was ebenfalls cases definiert. Den Fehler zu finden, ist
doch einfach. Dokument kopieren, alles bis auf die Formel löschen.
Fehler muss noch da sein. Alles in Präambel löschen, was _nichts_ mit
Mathe zu tun hat. Irgendwann ist der Fehler weg.

Herbert

mechanicus
29-05-2009, 17:36
du lädst irgendein Paket, was ebenfalls cases definiert.
Hallo,

das Paket heißt arrayjob. Bin ich ehrlich, noch nie gehört *G*

Gruß
Marco

uwerothfeld
29-05-2009, 20:12
Hallo,

erst einmal vielen dank an Marco! Super Sache, hät ich vermutlich ewig gesessen. Nun tut sich allerdings ein neues Problem auf, da kann mir hoffentlich aber Herbert helfen. Ich benötige arrayjob für eine PSTricks Grafik ;), und zwar:


...
\makeatletter
\def\pst@@@hlabel#1{\small\legende(#1)}
\makeatother
\newarray{\legende}
\readarray{legende}{ 1 & 3 & 5 & 7 & 9}
...

Durch was muß ich das ersetzen, damit ich auf Arrayjob verzichten kann???

MFG
uwe

voss
29-05-2009, 20:30
Hallo,

erst einmal vielen dank an Marco! Super Sache, hät ich vermutlich ewig gesessen. Nun tut sich allerdings ein neues Problem auf, da kann mir hoffentlich aber Herbert helfen. Ich benötige arrayjob für eine PSTricks Grafik ;), und zwar:


...
\makeatletter
\def\pst@@@hlabel#1{\small\legende(#1)}
\makeatother
\newarray{\legende}
\readarray{legende}{ 1 & 3 & 5 & 7 & 9}
...

Durch was muß ich das ersetzen, damit ich auf Arrayjob verzichten kann???


du willst mir doch nicht erzählen, dass man für ordinäre Zahlen an
der Achse ein Paket braucht?

Herbert

uwerothfeld
29-05-2009, 21:10
Hallo zusammen,

also ich will niemanden jemand was erzählen. Ich habe 0 Ahnung von PSTricks und war froh das ich mir mit Eurer Hilfe die Grafik aus den Beispielen von der PSTrickseite zusammenbasteln konnte. Da wurde das halt so gemacht, hab ich kopiert und geändert, mehr nicht.

Vielleicht kannste mir ja verraten, wie ich es ohne hinbekomme?



\begin{figure}[ht]
\centering
\makeatletter
\def\pst@@@hlabel#1{\small\legende(#1)}
\makeatother
\newarray{\legende}
\readarray{legende}{ 1 & 3 & 5 & 7 & 9}
\savedata{\dataRec}[(0 0) (1 414.96)(2 2074.8)(3 5809.44)(4 12448.8)]
\savedata{\dataTrans}[(0 0) (1 374.16)(2 1870.8)(3 5238.24)(4 11224.8)]
\savedata{\dataTotal}[(0 0) (1 789.12)(2 3945.64)(3 11047.7)(4 23673.6)]
\pstScalePoints(1,1){0 sub}{1000 div}
\psset{lly=-1.2cm, xAxisLabel={Side Length $2n+1$},yAxisLabel={Energy Level in $\micro Ws$}, xAxisLabelPos={c,-0.4in},yAxisLabelPos={-0.7in,c}}
\psgraph[Dx=1, Ox=1, Oy=0, Dy=4,
yticksize=0 4.2, ysubticks=2,
ysubticksize=1, ylabelFactor={\cdot10^3}](0,0)(-0.01,-0.05)(4.2,25){8cm}{10cm}%
\psset{showpoints=true, linewidth=0.8pt,dotscale=1}
\listplot[linecolor=blue]{\dataTotal}
\listplot[linecolor=red]{\dataTrans}
\listplot[linecolor=green]{\dataRec}
\uput{0.3}[-90](0,0){$1$}
\uput{0.3}[180](0,0){0}
\endpsgraph
\caption{Energy consumption level}
\label{fig:energy-consumption-level}
\end{figure}


Wenn ich die Daten in der \data... ändere, landet mein Diagramm im Nirvana.
Uwe

mechanicus
29-05-2009, 21:16
Hallo,


\documentclass{article}
\usepackage{pstricks,pst-plot}
\usepackage{pstricks-add}
\def\pshlabel#1{\small #1}
\savedata{\dataRec}[(0 0) (1 414.96)(2 2074.8)(3 5809.44)(4 12448.8)]
\savedata{\dataTrans}[(0 0) (1 374.16)(2 1870.8)(3 5238.24)(4 11224.8)]
\savedata{\dataTotal}[(0 0) (1 789.12)(2 3945.64)(3 11047.7)(4 23673.6)]
\begin{document}
\pstScalePoints(1,1){0 sub}{1000 div}
\psset{lly=-1.2cm, xAxisLabel={Side Length $2n+1$},yAxisLabel={Energy Level in $Ws$}, xAxisLabelPos={c,-0.4in},yAxisLabelPos={-0.7in,c}}
\begin{psgraph}[Dx=2,dx=2, Ox=0, Oy=0, Dy=4, %
yticksize=0 4.2, ysubticks=2, %
ysubticksize=1,ylabelFactor=\cdot10^3](0,0)(-0.01,-0.05)(4.2,25){8cm}{10cm}%
\psset{showpoints=true, linewidth=0.8pt,dotscale=1}
\listplot[linecolor=blue]{\dataTotal}
\listplot[linecolor=red]{\dataTrans}
\listplot[linecolor=green]{\dataRec}
\uput{0.3}[-90](0,0){$1$}
\uput{0.3}[180](0,0){0}
\end{psgraph}
\end{document}

Gruß
Marco

EDIT: \micro habe ich rausgenommen

uwerothfeld
29-05-2009, 22:14
Hi zusammen,

es geht!!! Ihr seit super, sogar ohne das:

\def\pshlabel#1{\small #1}
man muß natürlich schon wissen, was man da macht. Nochmal überlegen und nachlesen und die zwei Stellschrauben gedreht, welche Marco mir gezeigt hat, und es tut. Gott sei dank. Vielen Dank Jungs.

mfg
Uwe

mechanicus
29-05-2009, 22:19
Hi zusammen,

es geht!!! Ihr seit super, sogar ohne das:

\def\pshlabel#1{\small #1}
man muß natürlich schon wissen, was man da macht. Nochmal überlegen und nachlesen und die zwei Stellschrauben gedreht, welche Marco mir gezeigt hat, und es tut. Gott sei dank. Vielen Dank Jungs.

mfg
Uwe
Hallo,

du hattes doch vorher die Schrift auch kleiner gemacht :confused:
Mehr macht der Befehl bzw. die Definition nicht.

Gruß
Marco

uwerothfeld
30-05-2009, 10:16
Hi Marco,

ja stimmt. Aber irgendwie war es vorher einen Tacken größer als der umgebene Text, nun nicht mehr, wodurch es überflüssig ist. Keine Ahnung, vielleich phantasiere ich mittlerweilen auch. :)

Uwe