From: G?nther B. <br...@us...> - 2002-05-19 11:42:22
|
Update of /cvsroot/xpg-xml/doc In directory usw-pr-cvs1:/tmp/cvs-serv27318 Modified Files: Seminarbericht.tex Log Message: Latex und Rechnen Beispiel Index: Seminarbericht.tex =================================================================== RCS file: /cvsroot/xpg-xml/doc/Seminarbericht.tex,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Seminarbericht.tex 18 May 2002 22:07:27 -0000 1.1 --- Seminarbericht.tex 19 May 2002 11:42:19 -0000 1.2 *************** *** 1823,1852 **** \section{\LaTeX: flexible Handhabung ganzer Dokumentblöcke} ! Häufig kommt es vor, dass es notwendig ist Teile eines Dokumentes ! umzustrukturieren, ganze Blöcke des Dokuments zu verschieben. Dabei ! kann es auch passieren, dass aus einem Block, der zuvor ein eigenes ! Kapitel darstellte danach nur noch ein Unterkapitel wird - das heißt ! die Dokumenthierarchie wird abgeändert. In einer ! Textbeschreibungssprache wie LaTeX sind jedoch die Hierarchien eines ! Dokumentes strickt vorgegeben, und zwar in der Form ! \begin{itemize} ! \item chapter ! \item section ! \item subsection ! \item subsubsection ! \item paragraph ! \item subparagraph ! \end{itemize} ! Dies bedeuted aber, wenn bei einer etwaigen Umstrukturierung aus einem ! Kapitel ein Unterkapitel wird, dass dieser Eingriff in die Hierarchie ! händisch korrigiert werden muß.Dieses händische Korrigieren nach dem ! Verschieben von Kapitel zu Unterkapiteln und ähnlichem wird obsolet, ! wenn man als Hierarchie zum Beispiel nur ein Element {\em Section } ! kennt, dieses jedoch beliebig ineinander verschachtelt werden ! kann. Die Ebene der Hierarchie erhält man dann aus der ! Verschachtelungstiefe und nicht mehr aus dem Bezeichner. Die ! Dokumenthierarchie kann dann zum Beispiel wie folgt aussehen: \begin{verbatim} ! <document> <section> <title>1. Kapitel</title> <para> ... </para> --- 1823,1858 ---- \section{\LaTeX: flexible Handhabung ganzer Dokumentblöcke} ! Während der Erstellung größerer Dokumente kann es immer wieder vorkommen, ! dass es notwendig ist Teile eines Dokuments umzustrukturieren, ganze ! Blöcke des Dokuments zu verschieben. Dabei kann es passieren, dass aus ! einem ursprünglich eigenem Kapitel nunmehr ein Unterkapitel wird oder ! umgekehrt aus einem anfangs nur als kleines Unterkapitel gedachtem Block ! nun ein eigenes großes Kapitel wird. Das bedeutet aber, dass Änderungen in der ! Dokumentenhierarchie vorgenommen werden. Nun ist jedoch in ! Textbeschreibungssprachen wie \ac{ac:Latex}, dass diese Heirarchie eines ! Dokuments eine sehr genau vorgegebene Form haben muß - bei \ac{ac:Latex} ! sind dies der Reihe nach {\em part, chapter, section, subsection, ! subsubsection, paragraph, subparagraph}. Dies bedeutet nun aber, wenn ! bei solchen Umstrukturierungen aus Unterkapiteln eigene Kapitel werden ! (und analog umgekehrt), dass diese Modifikationen der Dokumenthierarchie ! händisch nachgebessert werden müssen: aus einem {\em section} wird ein ! {\em chapter}, aus dem darin enthaltenen {\em subsection} wird ein ! {\em section} und gleich weiter im ganzen verschobenen Block (respektive ! umgekehrt wenn aus einem Kapitel ein Unterkapitel wird). ! ! Dieses händische Nachbessern wird obsolet, wenn man in der ! Dokumenthierarchie nur ein Element (z.B. {\em section }) kennt, unabhängig ! von derjeweiligen Hierarchieebene - man dieses also beliebig ineinander ! verschachteln kann. Aus der Tiefe dieser Verschachtelung erhält man dann ! die Ebene der Hierarchie für die Übersetzung in ein Zielformat (wie ! \ac{ac:Latex }) in dem man je Ebene einen unterschiedlichen Bezeichner hat. ! ! Eine solche Dokumentenhierarchie kann nun zum Beispiel ein Aussehen ! wie folgt haben: ! \begin{verbatim} ! ! <document> ! <section> <title>1. Kapitel</title> <para> ... </para> *************** *** 1865,1883 **** </section> </document> \end{verbatim} Der eigentliche Inhalt der einzelnen Abschnitte befindet sich hier in den ! \texttt{<para>...</para>} Elementen, und wird - auf das schließende Tag ! getriggert - mittels {\em WriteParaTransition } geschrieben (dies ist ! derzeit unabhängig von der Zielsprache). Auf das Begin-Tag der Section wird eine ! sogenannte {\em WriteSectHeaderTransition } getriggert, welche dann abhängig ! von der Verschachtelungstiefe section, subsection, subsubsection, ... und ! Überschrift schreibt und die Verschachtelungstiefe um eins erhöht - diese ! wird im DataObject abgelegt. Auf das schließende Tag der Section ist eine ! sogenannte {\em SectEndTransition } getriggert. Diese vermindert nur den ! Wert der im DataObject abgelegten Verschachtelungstiefe um eins. \section{Rechnen} \section{Apache Servlet} --- 1871,1925 ---- </section> </document> + \end{verbatim} Der eigentliche Inhalt der einzelnen Abschnitte befindet sich hier in den ! \texttt{<para>} Elementen, und wird entsprechend er weiters darin ! enthaltenen Elemente ins Zielformat übersetzt. Die \texttt{<title>} Elemente ! enthalten die überschriften der einzelnen (Unter-)Kapitel. Für die ! \texttt{<section>} Elemente wir die jeweile Verschachtelungstiefe akkumuliert ! (d.h. bei einen Starttag um eins erhöht und beim Endtag wieder um eins ! erniedrigt) und entsprechend dieser dann der entsprechende Bezeichner in der ! Zielsprache ausgewählt. ! ! Zu obigem Beispiel kann nun die dazugehörige Dokumentenhierarchie in ! \ac{ac:Latex} folgendermaßen aussehen: ! ! \begin{verbatim} ! ! \begin{document} ! ! \section{1. Kapitel} ! ... ! ! \section{2. Kapitel} ! ... ! \subsection{1. Abschnitt} ! ... ! \subsection{2. Abschnitt} ! ... ! ! \end{document} ! ! \end{verbatim} \section{Rechnen} + Häufig kommt es vor, dann man eine ganze Menge von Daten als Input hat, + sich jedoch nicht für diese gesamte Datenflut interessiert, sondern nur + ein paar davon abgeleitete Daten benötigt. Das heißt als Input kann eine + ganze Tabelle von zum Beispiel Meßwerten zu Verfügung stehen, man + benötigt allerdings zusätzlich oder ausschließlich Maximalwerte, den + Mittelwert, die Summe oder sonstige aus den Inputwerten generierbare Daten. + + Da aufgrund des Designs dieses Frameworks ein leichtes ist sämtliche + Inputdaten der einzelnen \ac{ac:Xml}-Elemente im zur Datenspeicherung + vorgesehenen DataObject (FIXXME: Referenz) zu speichern, kann man nun die + Daten eine Tabelle/Liste gesammelt dort ablegen und am Ende daraus die + benötigten Daten (Summe, Durchschnitt, Spitzenwerte, ...) akkumulieren + und in den Output einfügen. + + \section{Diagramme} + \section{Apache Servlet} |