\feldLin seitenfüllend umschreiben

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


elarei
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Fr 30. Aug 2019, 12:53

\feldLin seitenfüllend umschreiben

Beitrag von elarei »

Liebes goLatex-Forum,

ich benutze für schulische Zwecke das Paket {schule}. Dieses enthält ein Kommando \feldLin[1cm]{10} (zum erstellen linierter Felder, in diesem Beispiel mit 1cm Linienabstand und 10 Zeilen).

Praktischer wäre allerdings, wenn \feldLin selbst darauf kommen könnte, dass noch n Zeilen auf die aktuelle Seite passen und die entsprechende Anzahl selbstständig setzen könnte. Aktuell fummle ich ständig an den Zahlen herum, damit die Seite möglichst gut ausgenutzt wird, und das ist eigentlich ja gerade nicht die Idee dahinter, Latex zu nutzen...

In der Dokumentation habe ich folgende Definition für \feldLin gefunden:
% liniertes Feld
\newcommand{\feldLin}[2][1cm]{
	\begin{tikzpicture}
		\draw(0, 0); % Abstand zum oberen Rand wahren
		\foreach \n in {1,...,#2} % Linien zeichnen
			\draw[gray](0, -#1*\n )--(0.99\linewidth, -#1*\n ); 
	\end{tikzpicture}
}
Soweit ich es sehe, ist die foreach-Schleife die Stelle, wo man ansetzen könnte. In den mir bekannten Sprachen würde ich einfach per while-Schleife mehrmals kompilieren und die resultierende Seitenzahl prüfen, bis es eine mehr wird. Außerdem habe ich eine Möglichkeit gefunden, den restlichen Platz auf der Seite zu berechnen (https://tex.stackexchange.com/questions ... free-space), mit der man evtl. die Zeilenzahl ausrechnen könnte. Allerdings scheitere ich an der Programmierung.

Meinen Minmalversuch
\newcommand{\seiteLin}[1cm]{
	\newdimen\spaceleft
	\spaceleft=\textheight
	\multiply\spaceleft by -1
	\advance\spaceleft by \pagetotal
	\multiply\spaceleft by -1
	\begin{tikzpicture}
		\draw(0, 0); % Abstand zum oberen Rand wahren
		\foreach \n in {1,...,(\divide\spaceleft by 28.5)} % Linien zeichnen
			\draw[gray](0, -#1*\n )--(0.99\linewidth, -#1*\n ); 
	\end{tikzpicture}
}
bekomme ich nicht zum laufen. (Die 28.5 ist der Wert, den ich durch verschiedene Anzahlen von FeldLin als Höhe einer 1cm-Linie gefunden habe - wollte erstmal nur an einer Variable basteln...)

Gast

Re: \feldLin seitenfüllend umschreiben

Beitrag von Gast »

elarei hat geschrieben:ich benutze für schulische Zwecke das Paket {schule}. Dieses enthält ein Kommando \feldLin[1cm]{10} (zum erstellen linierter Felder, in diesem Beispiel mit 1cm Linienabstand und 10 Zeilen).
Ich kenne das Paket nicht und weiß auch nicht, was du damit machst. Ich frage mich aber trotzdem gerade, ob das wirklich sinnvoll ist. Sollte nicht besser sichergestellt werden, dass der Platz für den einzufügenden Text genügt? Es bringt ja nichts, wenn festgestellt wird, dass nur noch für eine (oder im Extremfall gar keine) Zeile Platz ist und dann derjenige, der da Platz für 200 Worte braucht, dumm aus der Wäsche schaut. Das war jetzt natürlich etwas überspitzt, aber ich denke, das macht meine Bedenken klar.
elarei hat geschrieben:Soweit ich es sehe, ist die foreach-Schleife die Stelle, wo man ansetzen könnte. In den mir bekannten Sprachen würde ich einfach per while-Schleife mehrmals kompilieren und die resultierende Seitenzahl prüfen, bis es eine mehr wird.
Wenn es eine Seite mehr ist, ist es bereits zu spät. Ausgegebene Seiten kann man bei TeX nicht wieder zurücknehmen.
elarei hat geschrieben: Außerdem habe ich eine Möglichkeit gefunden, den restlichen Platz auf der Seite zu berechnen (https://tex.stackexchange.com/questions ... free-space), mit der man evtl. die Zeilenzahl ausrechnen könnte.
Das funktioniert schon eher, allerdings nur im vertikalen Modus (also zwischen Absätzen). Wobei auch dann das Hantieren mit \pagetotal und \pagegoal nicht immer funktioniert. Beispielsweise wird im mehrspaltigen Satz insbesondere mit multicol schief gehen.

Ohne vollständiges Minimalbeispiel zum Testen werde ich mich aber nicht daran wagen, einen Lösungsversuch zu starten. Das umso mehr als ich noch nie mit dem Paket schule gearbeitet habe.

elarei
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Fr 30. Aug 2019, 12:53

Beitrag von elarei »

Der Einwand ist sehr gut, da ich in den betreffenden Dokumenten eigentlich immer noch Fußnoten verwende. Insofern ist es zweifellos ungünstig, den Restplatz auszurechnen und vollzumachen, bevor die gesetzt werden...

Danke soweit!

Antworten