ich möchte gerne einen neuen Spaltentyp definieren, bei dem die vorher definierte Länge mit einem bestimmten Wert (nämlich dem, der als Argument übergeben wird) multipliziert wird. Also anstatt bspl. p{3cm} an longtable zu übergeben, möchte ich P{0.12} übergeben, wobei die 0.12 nur als Faktor für eine andere (zuvor definierte) Länge dienen sollen.
Vielleicht wird es an dem MB deutlicher.
\documentclass[11pt, oneside]{article}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}
\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{array}
\usepackage{calc}
\newlength{\Spaltenteiler}
\newlength{\Hilfsleng}
\setlength{\Spaltenteiler}{\textwidth-2\tabcolsep} %Längendefinition funktioniert
\newcolumntype{P}[1]{
\setlength{\Hilfsleng}{#1\Spaltenteiler} %Hier klappt es nicht
p{\Hilfsleng}
}
\begin{document}
\begin{longtable}{P{0.125}P{0.1}P{0.3}P{0.125}} %Spaltendefinition
\caption{Tabelle}\\
\toprule
\addlinespace
Tab1 & Tab2 & Tab3 & Tab4\\
\addlinespace
\midrule
\endfirsthead
\toprule
\midrule
\endhead
Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text & Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text & Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text & Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text\\
\end{longtable}
\end{document}
./Ohne-Titel.tex:30: Package array Error: Illegal pream-token (\setlength): `c
' used.
See the array package documentation for explanation.
Type H <return> for immediate help.
...
l.30 ...n{longtable}{P{0.125}P{0.1}P{0.3}P{0.125}}
?
\documentclass[11pt, oneside]{article}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}
\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{array}
\usepackage{calc}
\newlength{\Spaltenteiler}
\newlength{\Hilfsleng}
\setlength{\Spaltenteiler}{\textwidth-2\tabcolsep} %Längendefinition funktioniert
\begin{document}
\begin{longtable}{p{0.125\Spaltenteiler}p{0.1\Spaltenteiler}p{0.3\Spaltenteiler}p{0.125\Spaltenteiler}} %Spaltendefinition
\caption{Tabelle}\\
\toprule
\addlinespace
Tab1 & Tab2 & Tab3 & Tab4\\
\addlinespace
\midrule
\endfirsthead
\toprule
\midrule
\endhead
Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text & Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text & Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text & Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text\\ \addlinespace
Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text & Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text & Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text & Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text, Das ist ein langer Text\\ \addlinespace
\end{longtable}
\end{document}

