\newcommand{\produkt}[2]{#1 mal #2 ergibt: #1*#2}
Wie ein dynamisches Kommando erstellen?
Wie ein dynamisches Kommando erstellen?
Wie bekommt man sowas in Latex hin:
Es soll also das Produkt aus den Parametern ausgegeben werden.
vielen Dank,
leider löst es mein Problem nicht. Ich wollte Aufgabenblätter erstellen und dann einen Befehl haben mit den ich bequem Linien zeichne, die Linien werden mit dem Paket tikz erstellt.
Hier ein Beispiel:
Im Text kann man dann bequem diese Linien einbauen.
Mit folgendem Code müsste es gehen, aber anscheindend kann die tikzpicture Umgebung dies nicht verstehen.
So hätte man dann eine gute Fuktion mit der man Schreiblinien erzeugt.
leider löst es mein Problem nicht. Ich wollte Aufgabenblätter erstellen und dann einen Befehl haben mit den ich bequem Linien zeichne, die Linien werden mit dem Paket tikz erstellt.
Hier ein Beispiel:
% Linien, default abstand ist 0.9cm \newcommand{\liniert}[2][0.9]{\begin{tikzpicture} \foreach \y in {0,#1,...,#2} \draw[color=gray, text=black] (0 ,\y ) -- (\textwidth,\y ) ;\end{tikzpicture} }
Dies würde mir dann fünf linien zeichnen für vier Schreibzeilen. Das Problem ist dass der Standart-Linienabstand 0.9cm ist und der Parameter 2 nicht immer genau 4 Schreibzeilen erzeugen würde.\liniert{4}
Mit folgendem Code müsste es gehen, aber anscheindend kann die tikzpicture Umgebung dies nicht verstehen.
% Linien, default abstand ist 0.9cm \newcommand{\liniert}[2][0.9]{\begin{tikzpicture} \foreach \y in {0,#1,...,\number\numexpr#1*#2\relax} \draw[color=gray, text=black] (0 ,\y ) -- (\textwidth,\y ); {\y} ;\end{tikzpicture} }
-
- Forum-Century
- Beiträge: 137
- Registriert: Di 25. Aug 2009, 11:25
- Wohnort: Regensburg
Hallo,
wie wäre es mit einem lauffähigen Minimalbeispiel? Hier trotzdem ein Vorschlag:
Gruß
Elke
wie wäre es mit einem lauffähigen Minimalbeispiel? Hier trotzdem ein Vorschlag:
\documentclass{scrartcl} \usepackage{tikz} \newcommand{\liniert}[2][0.9]{% \begin{tikzpicture} \foreach \n in {0,...,#2}{ % \draw[color=gray, text=black] (0 ,#1*\n ) -- (\textwidth,#1*\n );} \end{tikzpicture} } \begin{document} \liniert{4} \end{document}
Elke
Hier mal ein Beispiel: Unter anderem werden auch noch Kästchen erstellt um berechnungen durchzuführen. Vielleicht kann das ja jemand gebrauchen...
Es ist jetzt nicht unbedingt tragisch dass der Parameter liniert nicht die Anzhal der Schreibzeilen erstellt. Es ging mir bloß um Perfektion... .
% --------------------------------------------------------------------- % ++++ header % --------------------------------------------------------------------- \documentclass[ parskip=half ]{scrartcl} \usepackage[a4paper,left=2cm, right=2cm,top=2.5cm,bottom=2.5cm]{geometry} \usepackage[ngerman]{babel} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage{graphicx} \usepackage{color} \usepackage{tikz} % --------------------------------------------------------------------- % ++++ Umgebungen % --------------------------------------------------------------------- \newcommand{\liniert}[2][0.9]{\begin{tikzpicture} % Linien, default abstand ist 0.9cm \foreach \y in {0,#1,...,#2} \draw[color=gray, text=black] (0 ,\y ) -- (\textwidth,\y ) ;\end{tikzpicture} } \newcommand{\kariert}[2][0.5]{\begin{tikzpicture} % Kästchen \draw[step=#1cm,color=gray] (0 , 0) grid (\textwidth,#2*#1) %Anzahl der Kästchenreihen ;\end{tikzpicture} } % --------------------------------------------------------------------- % ++++ Dokument % --------------------------------------------------------------------- \begin{document} \section*{Aufgabe 1} \label{sec:Aufgabe1} Beantworten Sie folgende Fragen:\\ normaler Linienabstand von 0.9cm:\par \liniert{4} kleiner Linienabstand von 0.3, leider werden keine 4 Linienzeilen erzeugt! (da der Endwert der Schleife kein Produkt ist)\par \liniert[0.3]{4} Berechnen Sie folgende Aufgaben:\\ normale Kästchengröße:\par \kariert{3} große Kästchengröße: hier ist die Anzahl der Kästchen äquivalent zum Parameterwert.\par \kariert[2]{3} \end{document} % --------------------------------------------------------------------- % ++++ EOF % ---------------------------------------------------------------------
Hallo,
hier noch mal ein Vorschlag, bei dem Du die Zeilenanzahl wirklich vorgeben kannst. Außerdem habe ich den kariert-Befehl so geändert, dass am rechten Rand keine halben Kästchen entstehen.
Gruß
Elke
hier noch mal ein Vorschlag, bei dem Du die Zeilenanzahl wirklich vorgeben kannst. Außerdem habe ich den kariert-Befehl so geändert, dass am rechten Rand keine halben Kästchen entstehen.
\documentclass[parskip=half]{scrartcl} \usepackage[ngerman]{babel} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage{tikz} \newcommand{\liniert}[2][0.9]{% \begin{tikzpicture} \clip(0,0)rectangle(\textwidth,-#2*#1); \foreach \n in {1,...,#2}{ % \draw[color=gray, text=black](0 ,-#1*\n )--(\textwidth,-#1*\n );} \end{tikzpicture}} \newcommand{\kariert}[2][0.5]{% \pgfmathtruncatemacro\anzahl{\textwidth/#1cm} \begin{tikzpicture} \draw[step=#1,color=gray] (0,0) grid (\anzahl*#1,#2*#1); %Anzahl der Kästchenreihen \end{tikzpicture}} \begin{document} \section*{Aufgabe 1} \label{sec:Aufgabe1} Beantworten Sie folgende Fragen:\\ normaler Linienabstand von 0.9\,cm: \liniert{4} Auch bei kleinem Linienabstand werden 4 Linien erzeugt! \liniert[0.3]{4} Berechnen Sie folgende Aufgaben:\\ normale Kästchengröße: \kariert{5} große Kästchengröße: hier ist die Anzahl der Kästchen äquivalent zum Parameterwert. \kariert[2]{2} \end{document}
Elke
Zuletzt geändert von esdd am Do 29. Aug 2013, 22:24, insgesamt 1-mal geändert.
Hallo!
hab diesen Thread gerade beim "Stöbern" im Forum gefunden. Wie toll ist das denn? Diese Möglichkeit, Karos zu erzeugen suche ich seit gefühlten Ewigkeiten. Und man kann auch ganz problemlos eigene Breiten einstellen. So super!
Vielen Dank an euch!
werde das gleich als Standardbefehl in alle meine Arbeiten einbinden.
Lieben Gruß, Theresa
hab diesen Thread gerade beim "Stöbern" im Forum gefunden. Wie toll ist das denn? Diese Möglichkeit, Karos zu erzeugen suche ich seit gefühlten Ewigkeiten. Und man kann auch ganz problemlos eigene Breiten einstellen. So super!
Vielen Dank an euch!
werde das gleich als Standardbefehl in alle meine Arbeiten einbinden.
Lieben Gruß, Theresa