Selbstfortsetzende Tabelle / Kalender

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Selbstfortsetzende Tabelle / Kalender

von teido » Mo 28. Jan 2019, 09:25

Vielen dank, jetzt hab ich glaub ich erstmal alles, was ich brauche. Werde mich, sobald es läuft, mit dem fertigen Code noch einmal zurückmelden. Vielleicht ist ja nochmal irgendjemand auf der Suche nach sowas.
Btw. in meinem Code oben ist noch ein Fehler, so heißt es \..rule und nicht \..line in der Tabellen-Umgebung...

von Gast » Sa 26. Jan 2019, 16:35

Du verwendest \addtocounter mit einem Argument. Der Befehl hat aber zwei. Was du mit dem Zähler count vorhast, ist mir auch nicht wirklich klar. Und dann würde ich eigentlich noch empfehlen, auch den Anfang der Tabelle und das Ende mit in \zeileneintrag einzufügen, so dass dann am Ende \zeileneintrag zu der kompletten Tabelle expandiert.

von teido » Sa 26. Jan 2019, 16:06

Ich hab mich einmal mit dem Link auseinander gesetzt und versucht, nachzuvollziehen was dort passiert:
\documentclass{article} 
\usepackage[latin1]{inputenc} 
\usepackage[table]{xcolor} 
\usepackage{booktabs} 

\makeatletter
\newcounter{count}
\newcommand{\zeileneintrag}{}

\newenvironment{tabelle}{%
\global\let\zeileneintrag\@empty
\newcommand{\eintrag}[2]{
\addtocounter{count} \g@addto@macro\zeileneintrag{####1 & ####2 \tabularnewline}
}
}{
\begin{tabular}{l|r}
\topline
\zeileneintrag
\bottomline
\end{tabular}
\thecounter
}

\makeatother
\begin{document}

\begin{tabelle}
\eintrag{test1}{test2}
\eintrag{test3}{test4}
\end{tabelle}

\end{document}
Wenn ich das Prinzip richtig verstanden habe, wird eine neue Umgebung definiert, also die Tabelle. In dieser Umgebung kann der Befehl \eintrag aufgerufen werden, um eine Zeile hinzuzufügen. Ich hab versucht, dass ganze bis aufs minimalste herunter zu brechen, bin jedoch gescheitert.

von Gast » Sa 26. Jan 2019, 11:52

Mit den Stichworten »tabelle aufsammeln« bin ich über die Schnellsuche hier im Forum praktisch direkt bei viewtopic,p,13552.html#13552 gelandet.

Für deinen Zweck eventuell auch noch von Interesse: tabularx, longtable, xltabular

von teido » Sa 26. Jan 2019, 11:36

Das ich mit keines der Kalender-Pakete angeschaut habe liegt wohl daran, dass ich nicht wusste, dass es sowas gibt.. Werde mir das ganze mal anschauen.

Das multido kommt daher, so bin ich es etwa aus Matlab gewohnt, dass ich Zeilen einer Tabelle bzw. dort eines Arrays einfach Stück um Stück hintereinander hängen kann. Ähnliches hab ich mir für Latex erhofft.

Leider kann ich noch kein Minimalbeispiel geben, der bereits geschriebene Teil ist für das Layout zuständig und funktioniert, für den Teil des Kalenders selbst bin ich eher noch dabei mir passende befehle bzw. Pakete herauszufinden.

Die Idee mit dem Zeilen per Macro aufsammeln hört sich brauchbar an, hättest du vielleicht ein paar Stichworte wonach ich dafür suchen muss?

Grüße,
Teido

von Gast » Do 24. Jan 2019, 20:01

Warum verwendest du nicht eines der Kalender-Pakete?

Ansonsten sei darauf hingewiesen, dass jede Zelle einer Tabelle eine eigene Gruppe ist. Man kann daher nur sehr eingeschränkt innerhalb einer Tabelle per Schleife Zeilen generieren. Ggf. kann man jedoch Zeilen in einem Makro aufsammeln. Da ich ohne Minimalbeispiel aber derzeit nicht einmal weiß, woher bei dir \multido kommt …

Selbstfortsetzende Tabelle / Kalender

von teido » Do 24. Jan 2019, 19:08

Hallo ihr Liebe,
ich hoffe das Thema passt unter Tabellen.

Zum Problem:
Ich bin gerade dabei, eine Art von Taschenkalender zu erstellen, welcher die Zeitspanne eines halben Jahres abdeckt. (1 Semester).

Im laufe der Erstellung bin ich allerdings auf ein Problem gestoßen, für welches ich nicht so recht den Ansatz finde:
Für jeden Monat soll eine Tagesübersicht erstellt werden, also vom 1. bis zum 28/30/31 etc. Der Benutzer gibt als Input ein, ob er sich im Sommersemester oder Wintersemester befindet, daraufhin wird Entschieden mit welchem Monat Angefangen wird (Oktober oder April). Zusätzlich gibt er den ersten Tag des ersten Monats an.
Mit diesen Werten soll mir Latex nun automatisch die Kalenderblätter für jeden Monat erstellen, so dass ich diese in meinem Layout einfügen kann.

Dazu muss ich zunächst eine Tabelle automatisch generieren, was jedoch scheitert: (hier einmal exemplarisch die vorgehensweise)
\begin{tabular}{rlr}
\multido{}{Datum & Tag & Event \\}{n}
\end{tabular}
Die Idee dahinter: Je nach Monat variiert n, der Tag wird wohl später mit einer Fallunterscheidung eingepflegt, je nachdem wie sich ein counter durch 7 teilen lässt. Das Problem jedoch: Der Output läuft so nicht auf eine n-Zeilige Tabelle hinaus, sondern auf diverse Fehlermeldungen.

Für jeden Hinweis wäre ich dankbar, auch für die ein oder andere Idee für das Gesamtkonzept.

Viele Grüße,
Teido

Nach oben