PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Keine Savebox in Tabelle



uzahnd
07-05-2012, 11:24
Hi

ich versuche, in einer Tabelle anfallenden Text in einer Savebox zu speichern, um ihn später verwenden zu können - leider ohne Erfolg: Saveboxes scheinen sich in Tabellen nicht füllen zu lassen.

Ist dem so - und falls ja, gibt es Alternativen, wie ich Textstücke aus der Tabelle erst nach Tabellenende ausgeben lassen kann?

Anbei ein Minimalbeispiel sowohl mit der tabular-, als auch mit einer longtable-Umgebung (auf letzteres werd ich zurückgreifen müssen, aber das Problem scheint grundsätzlicher Natur zu sein).

Danke für Anregungen,
gruss u


\documentclass[a4paper,twoside]{scrbook}

\usepackage{longtable}

\newsavebox{\sbx}
\newsavebox{\sby}
\newsavebox{\sbz}

\begin{document}

\sbox{\sbx}{bli}

\begin{tabular}{ccc}
TZ1S1\sbox{\sby}{bla} & TZ1S2 & TZ1S3 \\
TZ2S1 & TZ2S2 & TZ2S3 \\
\end{tabular}

\begin{longtable}[l]{ccc}
LZ1S1\sbox{\sbz}{blu} & LZ1S2 & LZ1S3 \\
LZ2S1 & LZ2S2 & LZ2S3 \\
\end{longtable}

\usebox{\sbx}
\usebox{\sby}
\usebox{\sbz}

\end{document}

u_fischer
07-05-2012, 11:32
Sie lassen sich schon füllen, aber Tabellen und Tabellenzellen sind Gruppen und daher sie werden am Ende der Gruppe wieder gelehrt. Du musst sie global füllen. Ebenso wenn du deinen Inhalt in einem Befehl speichern willst: Dann brauchst du den TeX-Befehl \gdef ("globaldef"). Ein globales \newcommand gibt es nicht, siehe auch http://tex.stackexchange.com/questions/51733/global-renewcommand-equivalent-of-global-def.



\documentclass[a4paper,twoside]{scrbook}

\usepackage{longtable}

\newsavebox{\sbx}
\newsavebox{\sby}
\newsavebox{\sbz}

\newcommand\mycontent{} %testen ob Befehl noch frei
\begin{document}

\sbox{\sbx}{bli}

\begin{tabular}{ccc}
TZ1S1\global\sbox{\sby}{bla} \gdef\mycontent{blbllub} & TZ1S2 & TZ1S3 \\
TZ2S1 & TZ2S2 & TZ2S3 \\
\end{tabular}

\begin{longtable}[l]{ccc}
LZ1S1\global\sbox{\sbz}{blu} & LZ1S2 & LZ1S3 \\
LZ2S1 & LZ2S2 & LZ2S3 \\
\end{longtable}

\usebox{\sbx}
\usebox{\sby}
\usebox{\sbz}

\mycontent

\end{document}

uzahnd
07-05-2012, 14:12
ganz herzlichen Dank, klappt einwandfrei!

gruss, u