von elarei » Fr 30. Aug 2019, 13:16
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...)
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:
[code]
% 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}
}[/code]
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 ([url]https://tex.stackexchange.com/questions/207705/how-to-get-information-about-remaining-free-space[/url]), mit der man evtl. die Zeilenzahl ausrechnen könnte. Allerdings scheitere ich an der Programmierung.
Meinen Minmalversuch
[code]\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}
}[/code]
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...)