von mattazie » Fr 11. Aug 2023, 20:24
Ich habe mir mal eine Beispieltabelle und ein reduziertes Dokument zusammengestellt, woran man sieht, was nicht geht. Wieso im Beispiel
\ifthenelse nicht funktioniert, kann ich nicht nachvollziehen. Im Originaldokument funktioniert es. Aber wenn man die Fehlermeldungen mit wiederholtem
Return abarbeitet, kommt man zum Resultat. Hier müsste halt die Schlusskarte nur wirklich am Schluss zu sehen sein, nicht nach jeder Karte des Hauptteils.
\documentclass{article}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[paperwidth=48mm,paperheight=69mm,margin=7mm,nomarginpar,noheadfoot]{geometry}
\usepackage[HTML]{xcolor}
\usepackage[verbose]{datatool}
\usepackage[12pt]{moresize} %HUGE
\usepackage[T1]{fontenc}
\usepackage{tcolorbox}
\usepackage{helvet}
\usepackage{ifthen}
\usepackage{rotating}
\usepackage{pdfpages}
\pagestyle{empty}
\tcbuselibrary{skins}
\renewcommand\familydefault{\sfdefault}
% Definition der Datentabelle
\DTLloaddb[keys={A,B}]{Tabelle}{Tabelle-Frage.csv}
\begin{document}
%Deckkarte
\tcbset{colframe=black,boxrule=0.1mm,width=34mm,height=55mm,arc=3mm}
\begin{tcolorbox}[leftupper=1mm, valign=center]
Deckkarte
\end{tcolorbox}
%Hauptteil
% Import der externen Daten
\DTLenvforeach{Tabelle}{\A=A,\B=B}
%\whiledo{\NOT \isundefined{\A}}{
\begin{tcolorbox}[boxrule=0.1mm,width=34mm,height=55mm,arc=3mm,valign=center,halign=center]
{\ifthenelse{\A = 0}{\B}{\A}}
\end{tcolorbox}
%}
% Schlusskarte
\tcbset{colframe=black,boxrule=0.1mm,width=34mm,height=55mm,arc=3mm}
\begin{tcolorbox}[leftupper=1mm, valign=center]
Schlusskarte
\end{tcolorbox}
\end{document}
Ich habe jetzt zwei Fragen:
Wieso funktioniert
\ifthenelse nicht?
Wie erreiche ich, dass die Schlusskarte nur am Schluss ausgegeben wird?
(
\whiledo ist vorerst noch auskommentiert.)
Ich habe mir mal eine Beispieltabelle und ein reduziertes Dokument zusammengestellt, woran man sieht, was nicht geht. Wieso im Beispiel [i]\ifthenelse[/i] nicht funktioniert, kann ich nicht nachvollziehen. Im Originaldokument funktioniert es. Aber wenn man die Fehlermeldungen mit wiederholtem [i]Return[/i] abarbeitet, kommt man zum Resultat. Hier müsste halt die Schlusskarte nur wirklich am Schluss zu sehen sein, nicht nach jeder Karte des Hauptteils.
[code]
A,B
x,0
0,y
z,0
[/code]
[code]\documentclass{article}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[paperwidth=48mm,paperheight=69mm,margin=7mm,nomarginpar,noheadfoot]{geometry}
\usepackage[HTML]{xcolor}
\usepackage[verbose]{datatool}
\usepackage[12pt]{moresize} %HUGE
\usepackage[T1]{fontenc}
\usepackage{tcolorbox}
\usepackage{helvet}
\usepackage{ifthen}
\usepackage{rotating}
\usepackage{pdfpages}
\pagestyle{empty}
\tcbuselibrary{skins}
\renewcommand\familydefault{\sfdefault}
% Definition der Datentabelle
\DTLloaddb[keys={A,B}]{Tabelle}{Tabelle-Frage.csv}
\begin{document}
%Deckkarte
\tcbset{colframe=black,boxrule=0.1mm,width=34mm,height=55mm,arc=3mm}
\begin{tcolorbox}[leftupper=1mm, valign=center]
Deckkarte
\end{tcolorbox}
%Hauptteil
% Import der externen Daten
\DTLenvforeach{Tabelle}{\A=A,\B=B}
%\whiledo{\NOT \isundefined{\A}}{
\begin{tcolorbox}[boxrule=0.1mm,width=34mm,height=55mm,arc=3mm,valign=center,halign=center]
{\ifthenelse{\A = 0}{\B}{\A}}
\end{tcolorbox}
%}
% Schlusskarte
\tcbset{colframe=black,boxrule=0.1mm,width=34mm,height=55mm,arc=3mm}
\begin{tcolorbox}[leftupper=1mm, valign=center]
Schlusskarte
\end{tcolorbox}
\end{document}[/code]
Ich habe jetzt zwei Fragen:
Wieso funktioniert [i]\ifthenelse[/i] nicht?
Wie erreiche ich, dass die Schlusskarte nur am Schluss ausgegeben wird?
([i]\whiledo[/i] ist vorerst noch auskommentiert.)