goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Direktlinks:
Zuletzt aktive Beiträge
Unbeantwortete Beiträge
[Erweitert]

Forenstatistik:
Beiträge: 98860
Top-Poster: Johannes_B (5059)

Wir begrüßen unseren neuesten Benutzer LatexGast.

Links:


Mit Unterstützung von DANTE e.V.: Deutschsprachige Anwendervereinigung TeX. Danke den Mitgliedern!





Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Eigene Kommandos innerhalb einer Tabelle

 

ph0llux
Forum-Newbie
Forum-Newbie

Beiträge: 2
Anmeldedatum: 17.05.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.05.2019, 10:43     Titel: Eigene Kommandos innerhalb einer Tabelle
  Antworten mit Zitat      
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

Code • Öffne in Overleaf
\begin{tabular}{|p{5.75cm}|p{10.25cm}}

durch
Code • Öffne in Overleaf
\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.".


Code • Öffne in Overleaf

\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}
 
Private Nachricht senden Benutzer-Profile anzeigen

Bartman
Forum-Meister
Forum-Meister


Beiträge: 1785
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: ---
     Beitrag Verfasst am: 17.05.2019, 11:08     Titel:
  Antworten mit Zitat      
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:

Code • Öffne in Overleaf
\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:

Code • Öffne in Overleaf
\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}
Private Nachricht senden Benutzer-Profile anzeigen

ph0llux
Forum-Newbie
Forum-Newbie

Beiträge: 2
Anmeldedatum: 17.05.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.05.2019, 14:23     Titel:
  Antworten mit Zitat      
ah perfekt, danke! Das war die Lösung. Very Happy
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de


  Datenschutzerklärung | Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2019 goLaTeX.de