
Thema folgentcolorbox: spezifische Breiten- und Höheneinstellungen für ungerade und gerade Seiten
minimaler Code:
\documentclass{article}
\usepackage{datatool}
\usepackage{filecontents}
\usepackage[strict]{changepage}
\begin{filecontents*}{test2.csv}
Acol, Bcol, NoCol
Ax,Bx,1
Ay,By,3
A1,B22,2
A2,B44,4
A3,B11,5
\end{filecontents*}
\DTLloaddb{mydata}{test2.csv}
\newcommand*{\pageDependent}{\ifoddpage 5cm\else 10cm\fi\relax}
\begin{document}
\DTLforeach*{mydata}{\A=Acol,\B=Bcol}%
{%
\A \checkoddpage\hspace{\pageDependent} \B
\newpage
}%
\end{document}
Wie kann ich ändern
\newcommand*{\pageDependent}{\ifoddpage 5cm\else 10cm\fi\relax}
Und \checkoddpage{\pageDependent}
...
mit der neuen NoCol-Regel unten von Datatools:
wenn Nocol = ungerade, \pageDependent = 5cm
wenn Nocol = gerade, \pageDependent = 10cm
Danke
Antwort1
Ich schlage Folgendes vor:
\RequirePackage{filecontents}
\begin{filecontents*}{test2.csv}
Acol, Bcol, NoCol
Ax,Bx,1
Ay,By,3
A1,B22,2
A2,B44,4
A3,B11,5
\end{filecontents*}
\documentclass{article}
\usepackage{datatool}
\DTLloaddb{mydata}{test2.csv}
\makeatletter
\newcommand*{\valueDependent}[1]{%
\ifodd #1
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
}
\makeatother
\begin{document}
\DTLforeach*{mydata}{\A=Acol, \B=Bcol, \No=NoCol}%
{%
\A
\hspace{\valueDependent{\No}{5cm}{10cm}}%
\B
\par
}%
\end{document}
Dies funktioniert, weil:
\hspace{something}
tut\hskip something\relax
;nach der Verarbeitung eines
\hskip
Befehls erweitert TeX die Token, bis ein 〈Kleber〉 vorhanden ist;nach genügend Erweiterungen
\valueDependent
ergibt mein Makro einen 〈Kleber〉, weil das TeX-Grundelement\ifodd
auch Token erweitert, bis es eine 〈Zahl〉 hat (die durch definierten Spaltenmakrosdatatool
, wie\No
hier, sind erweiterbar).
Falls Sie möchten, dass die beiden Längen darin fest codiert werden \valueDependent
, können Sie Folgendes verwenden:
\RequirePackage{filecontents}
\begin{filecontents*}{test2.csv}
Acol, Bcol, NoCol
Ax,Bx,1
Ay,By,3
A1,B22,2
A2,B44,4
A3,B11,5
\end{filecontents*}
\documentclass{article}
\usepackage{datatool}
\DTLloaddb{mydata}{test2.csv}
\newcommand*{\valueDependent}[1]{%
\ifodd #1 5cm \else 10cm \fi
}
\begin{document}
\DTLforeach*{mydata}{\A=Acol, \B=Bcol, \No=NoCol}%
{%
\A
\hspace{\valueDependent{\No}}%
\B
\par
}%
\end{document}
Die Ausgabe ist die gleiche wie im vorherigen Screenshot.