In meinem Dokument füge ich an einigen Stellen eine unterschiedliche Anzahl Zeilen mit Kästchen. Bisher mache ich das so:

\documentclass[parskip=half-]{scrartcl} 
\usepackage{tikz}
\usepackage{showframe} % Seitenlayout anzeigen

\begin{document}

Beantworte folgende Frage:
\begin{center}
  \tikz\draw[step=1cm,gray](0,0)grid(13,3);
\end{center}

\fbox{% nur um Abmessungen zu zeigen
  \begin{minipage}{0.5\linewidth}
    Beantworte folgende Frage:
    \begin{center}
      \tikz\draw[step=0.5cm,gray](0,0)grid(7,2);
    \end{center}
  \end{minipage}
}
\end{document}

alt text

Das funktioniert zwar, aber ich muss immer schauen, wie viele Kästchen wirklich in eine Zeile passen.

Deshalb hätte ich gern einen Befehl

\kaestchenzeilen[<seitenlänge eines kästchens>]{<zeilenanzahl>}

der mir Kästchenpapier mit der angebenen zeilenanzahl zeichnet und dabei die vorhandene Breite automatisch für die maximal mögliche Anzahl vollständiger Kästchen ausnutzt. Die seitenlänge der einzelnen Kästchen möchte ich ebenfalls vorgeben. In der Regel wird also etwas horizontaler Freiraum übrig bleiben, der dann aber immer kleiner als eine Kästchenbreite ist.

gefragt 10 Dez '13, 10:13

welle's gravatar image

welle
10642431
Akzeptiert: 100%

bearbeitet 10 Dez '13, 11:35

1

Bei beiden Lösungen bekommst du Probleme, wenn die die \linewidth ein ganzes Vielfaches von <Seitenlänge eines Kästchen> ist, da das TikZ-Picture außerdem an beiden Seiten noch .5\pgflinewidth hinzufügt (oben und unten auch). Das macht das ganze Picture dann \linewidth+\pgflinewidth groß, zu groß.

Etwas related: TeX.sx/TeX.sx-Antwort

(10 Dez '13, 16:59) Qrrbrbirlbel

@Qrrbrbirlbel Ah, sowas hatte ich schon befürchtet... Dann muss man das halt an der geeigneten Stelle abziehen

(10 Dez '13, 17:01) Clemens

@Qrrbrbirlbel Danke für den Hinweis, hab ich jetzt unten korrigiert. Eigentlich hätte ich das auch selbst merken sollen :-(

(11 Dez '13, 04:10) esdd

Zum Berechnen der maximalen Kästchenzahl in einer Zeile kann man \pgfmathtruncatemacro nutzen. Dabei muss berücksichtigt werden, dass am linken und rechten Rand jeweils noch Platz für 0.5\pgflinewidth benötigt wird.

\documentclass[12pt,parskip=half-]{scrartcl} 
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usepackage{showframe} % Seitenlayout anzeigen

\newcommand\kariert[2][0.5cm]{% 
   \begin{tikzpicture}[gray,step=#1]
     \pgfmathtruncatemacro\anzahl{(\linewidth-\pgflinewidth)/#1} % maximale Anzahl Kästchen pro Zeile
     \draw (0,0) rectangle (\anzahl*#1,#2*#1) (0,0) grid (\anzahl*#1,#2*#1);
   \end{tikzpicture} 
}

\newcommand{\liniert}[2][0.5cm]{% 
  \begin{tikzpicture}[gray]
  \path[use as bounding box](0,0)rectangle(\linewidth,-#2*#1-0.5\pgflinewidth); 
   \foreach \n in {1,...,#2}\draw(0 ,-#1*\n )--(\linewidth,-#1*\n ); 
  \end{tikzpicture}}

\begin{document} 
\minisec{Kästchenzeilen}
\begin{center}
  \kariert[1cm]{3}
\end{center}

\minisec{Linien}
\liniert[1cm]{3}

\minisec{In Minipages}
\begin{minipage}{0.6\linewidth}
  Beantworte folgende Frage:
  \begin{flushleft}
    \kariert{4}
  \end{flushleft}
\end{minipage}%
\begin{minipage}{0.4\linewidth}
  Beantworte folgende Frage:
  \begin{center}
    \liniert{4}
  \end{center}
\end{minipage}
\end{document}

In dem Beispiel ist gleich noch ein Vorschlag, wie man auch Linien zum Schreiben zeichnen könnte, vielleicht wird das ja auch mal gebraucht.

alt text

Permanenter link

beantwortet 10 Dez '13, 16:03

esdd's gravatar image

esdd
14.2k53251

bearbeitet 11 Dez '13, 04:06

\pgfmathtruncatemacro ist wohl genauso ein Bordmittel, das ich vermutet hatte :)

(10 Dez '13, 16:10) Clemens

@Clemens Das ist das gleiche wie \pgfmathsetmacro{int(<eval>)}.

(10 Dez '13, 16:41) Qrrbrbirlbel

@Qrrbrbirlbel Auch \pgfmathsetmacro ist mir nur vage bekannt... Ich bin nur Gelegenheits-TikZ-Nutzer und muss für sowas immer noch jedes Mal das pgfmanual öffnen :)

(10 Dez '13, 16:45) Clemens
3

\pgfmathsetmacro#1 is quasi \pgfmathparse{<eval>}\let\#1\pgfmathresult. (Es gibt Unterschiede zwischen 2.10 und CVS.) Da gibt's noch ein paar weitere „Setter“. Es gibt noch \pgfmathsetlength, \pgfmathsetcount und \pgfmathsetcounter, die quasi LaTeXs Makros spiegeln (nur halt mit PGFmath-Evaluation).

Im Prinzip hätte sie auch einfach

\draw[step={#1},color=gray] (0,0) grid ({int(\linewidth/(#1))*(#1)},{(#2)*(#1)});

verwenden können, ohne extra Makro. Man beachte die Klammerung der Parameter, die es etwas robuster gegenüber Input macht, der zum Beispiel aus einer Summe besteht.

(10 Dez '13, 16:52) Qrrbrbirlbel

Möglich, dass TikZ bequemere Bordmittel hat... hier ist jedenfalls eine auf die Schnelle zusammengeschusterte Idee (zum \romannumeral Trick siehe Wofür verwendet man romannumeral-Expansion?):

\documentclass[parskip=half-]{scrartcl} 
\usepackage{tikz}
\usepackage{showframe} % Seitenlayout anzeigen

\makeatletter
\newlength\breite
% der Befehl gibt bei einer Kommazahl den ganzzahligen Anteil:
\def\ganzezahl#1.#2\q@stop{#1}
% die Kaestchenbox
%  \kaestchenbox{<Anzahl Zeilen>}
%  \kaestchenbox[<Breite Kaestchen>>]{<Anzahl Zeilen>}
\newcommand\kaestchenbox[2][5mm]{%
  \begin{tikzpicture}
    % Kaestchenbreite:
    \setlength\breite{#1}%
    % anzahl Kaestchen, die in die verfuegbare Breite passen:
    \edef\anzahl{%
      \expandafter\ganzezahl
      % expandieren, bis nur noch die Zahl da ist,
      % \strip@pt entfernt die Einheit `pt' bei einer Länge:
      \romannumeral-`0\strip@pt
      \dimexpr1pt*\linewidth/\breite\relax\relax\q@stop
    }%
    % das Gitter:
    \draw[x=\breite,y=\breite,step=\breite]
    (0,0) grid (\anzahl,#2) ;
  \end{tikzpicture}%
}
\makeatother

\begin{document}

\kaestchenbox{4}

Beantworte folgende Frage:
\begin{center}
  \kaestchenbox[1cm]{3}
\end{center}

\fbox{% nur um Abmessungen zu zeigen
  \begin{minipage}{0.5\linewidth}
    Beantworte folgende Frage:
    \begin{center}
      \kaestchenbox{4}
    \end{center}
  \end{minipage}%
}

\end{document}

alt text

Permanenter link

beantwortet 10 Dez '13, 14:14

Clemens's gravatar image

Clemens
19.0k112960

bearbeitet 10 Dez '13, 14:17

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×492

Frage gestellt: 10 Dez '13, 10:13

Frage wurde angeschaut: 5,736 Mal

Zuletzt aktualisiert: 11 Dez '13, 04:10