添加以反斜杠作为参数的变量

添加以反斜杠作为参数的变量

我想创建一个命令来创建表格。从最基本的设想来看,“autotabell”函数应该是这样的:

\documentclass{article}
\usepackage{tikz}
\usepackage{csvsimple}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xspace} 
\usepackage{xstring}


\begin{filecontents*}{grad.csv}
name,givenname,matriculation,gender,grade
Maier,Hans,12345,m,1.0
Huber,Anna,23456,f,2.3
Weissback,Werner,34567,m,5.0
Bauer,Maria,19202,f,3.3
\end{filecontents*}




\def\ReplaceStr#1{%
    \IfSubStr{#1}{XY}{%
        \StrSubstitute{#1}{XY}{\textbackslash}}{#1}}

\newcommand{\spaltenZ}[1]{%
    \gdef\spaltenZresult{1=XY1} %
    \foreach \x in {2,...,#1}%
    {%
        \global\edef\spaltenZresult{\spaltenZresult, \x=XY\x}%
    }%
    \gdef\spaltenZresultt{\ReplaceStr{\spaltenZresult}}

}



\newcommand{\spaltenL}[1]{%
    \gdef\spaltenLresult{|} %
    \foreach \x in {1,...,#1}%
    {%
        \global\edef\spaltenLresult{|l \spaltenLresult}%
    }%
}



\newcommand{\autotabell}[2]{

    \spaltenL{#1}
    %\spaltenZ{#2}
    \begin{table}[htb]
        \centering
        \csvreader[tabular=\spaltenLresult]{grad.csv}{1=\1, 2=\2, 3=\3, 4=\4, 5=\5}{\1 & \2 & \3 & \4 & \5}
    \end{table}
}

\begin{document}
    \autotabell{5}{5}

\spaltenZ{5} %just to test it
\spaltenZresultt    %just to test it

\end{document}

如您所见,变量“spaltenZresultt”给出“1 = \1, 2 = \2,3 = \3,4 = \4,5 = \5”但如果我将这个变量添加到新命令中而不是“1 = \1, 2 = \2,3 = \3,4 = \4,5 = \5”

\newcommand{\autotabell}[2]{

    \spaltenL{#1}
    \spaltenZ{#2}
    \begin{table}[htb]
        \centering
        \csvreader[tabular=\spaltenLresult]{grad.csv}{\spaltenZresultt}{\1 & \2 & \3 & \4 & \5}
    \end{table}
}

这将导致错误提示:未定义的控制序列。{\1 & \2 & \3 & \4 & \5}。但我认为应该通过 \spaltenZresultt 来定义我做错了什么?

任何帮助都将不胜感激。非常感谢大家,因为上面的大部分内容都来自这里 ^^

相关内容