Eigene Kommandos innerhalb einer Tabelle

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: Eigene Kommandos innerhalb einer Tabelle

von ph0llux » Fr 17. Mai 2019, 14:23

ah perfekt, danke! Das war die Lösung. :D

von Bartman » Fr 17. Mai 2019, 11:08

Der Befehl \ifthenelse erwartet noch ein drittes Argument für den Fall, wenn die Bedingung nicht zutrifft.

Ebenso der Befehl des alternativen Pakets in meinem Vorschlag:
\documentclass[fontsize=12pt, headsepline, footsepline]{scrartcl}
\usepackage{scrlayer-scrpage}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[margin=2cm]{geometry}
\usepackage[ngerman]{babel}
\usepackage{etoolbox}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{wasysym}


\newcommand{\checkboxI}{0}
\newcommand{\checkboxII}{0}

\newcommand{\MyOwnCheckBox}[2]{
   \ifnumequal{#1}{0}{
      \Square \ #2
   }{}
   \ifnumequal{#1}{1}{
      \CheckedBox \ #2
   }{}
}

\newcommand{\tabellengeruest}{
   {\renewcommand{\arraystretch}{1.1}
   \begin{tabularx}{\textwidth}{|p{5.75cm}|X|}
   \hline
   1 & Irgendwas\\
   \hline
   \multirow{4}{*}{Multirow}
   & Text 1\\
   & Text 2\\
   & \MyOwnCheckBox{\checkboxI}{CheckboxI Text}\\
   & \MyOwnCheckBox{\checkboxII}{CheckboxII Text}\\
   \hline
   2 & Irgendwas weiteres\\
   \hline
   \end{tabularx}}
}

\newcommand{\generiereTabelle}{
   \tabellengeruest
}


\begin{document}
\renewcommand{\checkboxI}{1}
\renewcommand{\checkboxII}{1}
\generiereTabelle
\end{document}
Eine weitere Möglichkeit:
\documentclass[fontsize=12pt, headsepline, footsepline]{scrartcl}
\usepackage{scrlayer-scrpage}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[margin=2cm]{geometry}
\usepackage[ngerman]{babel}
\usepackage{etoolbox}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{wasysym}

\newtoggle{checkboxI}
\newtoggle{checkboxII}

\newcommand{\MyOwnCheckBox}[2]{
   \iftoggle{#1}{
      \CheckedBox \ #2
   }{
      \Square \ #2
   }
}

\newcommand{\tabellengeruest}{
   {\renewcommand{\arraystretch}{1.1}
   \begin{tabularx}{\textwidth}{|p{5.75cm}|X|}
   \hline
   1 & Irgendwas\\
   \hline
   \multirow{4}{*}{Multirow}
   & Text 1\\
   & Text 2\\
   & \MyOwnCheckBox{checkboxI}{CheckboxI Text}\\
   & \MyOwnCheckBox{checkboxII}{CheckboxII Text}\\
   \hline
   2 & Irgendwas weiteres\\
   \hline
   \end{tabularx}}
}

\newcommand{\generiereTabelle}{
   \tabellengeruest
}


\begin{document}
\toggletrue{checkboxI}
\toggletrue{checkboxII}
\generiereTabelle
\end{document}

Eigene Kommandos innerhalb einer Tabelle

von ph0llux » Fr 17. Mai 2019, 10:43

Moin,

ich erstelle gerade ein "Formular" in Latex, bei welchem nur einige Sachen eingefügt und einige Checkboxen ausgefüllt werden müssen.
Zu diesem Zweck habe ich die Checkboxen mit dem Kommando "\MyOwnCheckBox" definiert. Dem übergebe ich dann die Werte, welche in die CheckBox-Kommandos eingetragen werden ("\checkboxI" und "\checkboxII"). Hierbei wird eine 0 für eine "nicht ausgefüllte Checkbox" und eine 1 für eine "ausgefüllte Checkbox" im Hauptdokument angegeben.
Wenn in \checkboxI oder \checkboxII eine Null steht, klappt das auch wunderbar.
Allerdings: Sobald ich es auf 1 setze, verschiebt sich aus irgendeinem Grund die Tabelle im Minimalbeispiel, so dass das Dokument nicht mehr generiert wird. Das sieht man besonders gut, wenn man
\begin{tabular}{|p{5.75cm}|p{10.25cm}}
durch
\begin{tabular}{|p{5.75cm}|p{10.25cm}|l}
ersetzt.

Warum ist das so? Die Fehlermeldung, die mir mein Editor Gummi ausgibt, lautet: "Extra alignment tab has been changed to \cr.".

\documentclass[a4paper, fontsize12pt, headsepline=on, footsepline=on]{scrartcl}
\usepackage{scrlayer-scrpage}
\usepackage[utf8]{inputenc}
\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}
\usepackage[ngerman]{babel}
\usepackage{ifthen}
\usepackage{multirow}
\usepackage{wasysym}


\newcommand{\checkboxI}{0}
\newcommand{\checkboxII}{0}

\newcommand{\MyOwnCheckBox}[2]{

	\ifthenelse{ \equal{#1}{0}}{
		\Square \ #2
	}
	
	\ifthenelse{ \equal{#1}{1}}{
		\CheckedBox \ #2
	}
}

\newcommand{\tabellengeruest}{
		\raggedright
		\renewcommand{\arraystretch}{1.1}
		\begin{tabular}{|p{5.75cm}|p{10.25cm}}
		\hline
		1 & Irgendwas\\
		\hline
		\multirow{4}{*}{Mutlirow}
		& Text 1\\
		& Text 2\\
		& \MyOwnCheckBox{\checkboxI}{CheckboxI Text}\\
		& \MyOwnCheckBox{\checkboxII}{CheckboxII Text}\\
		\hline
		2 & Irgendwas weiteres\\
		\hline
		\end{tabular}
		\renewcommand{\arraystretch}{1}
}

\newcommand{\generiereTabelle}{
	\tabellengeruest
}


\begin{document}
\renewcommand{\checkboxI}{0}
\renewcommand{\checkboxII}{0}
\generiereTabelle
\end{document}

Nach oben