Fehler „Undefinierte Steuersequenz“ trotz \newcommand-Definition!

Fehler „Undefinierte Steuersequenz“ trotz \newcommand-Definition!

Ich habe das komplette Texlive-Paket installiert:

Ich verwende TeXmaker und dies ist ein Code, in dem ich ein Raster wie in tikzpicture zeichnen möchte. Ich möchte einfach die \gridkarunten definierte Funktion aufrufen. Also habe ich sie in definiert \newcommand. Leider gibt sie zwei Fehler zurück:

Undefined Control Sequence \gridkar

Und

Package PGF Math Error: Unknown Function 'x' (in 'x')

\documentclass[12 pt]{exam}
\usepackage[T1]{fontenc}
\usepackage{tgtermes}
\usepackage{amsmath,amssymb,color}
\usepackage{enumerate,graphicx}
\usepackage{tikz}
\usepackage{xargs}
\usepackage{latexsym}

\pagestyle{head}      
\firstpageheader{Math110}{October 2}{Quiz 3}
\shadedsolutions
\definecolor{SolutionColor}{rgb}{.87,.87,.87}
\newcounter{x}
\newcounter{y}
\newcommand{\gridkar}[2]
{
    \begin{tikzpicture}[scale=0.4]
    \forLoop{-#1}{#1}{x}
    {
        \draw[-] (x,-#2) -- (x,#2);
    }
    \forLoop{-#2}{#2}{y}
    {
        \draw[-] (-#1,y) -- (#1,y);
    }
    \end{tikzpicture}
}

\begin{document}
\noindent Name:\hfill Section: 008
\noindent Directions: For each problem please show all your work in the space provided. Calculators are permitted; however, in order to receive partial or full credit on a problem you must show your work. You could use the blank side of this sheet too.\\

\textbf{Maximum Points: 6}\hspace*{\fill}\textbf{Time Limit: 10 minutes}

\begin{questions}
\question [2]\gridkar{7}{8}
\question [3]
\question [1]
\end{questions}
\end{document}

Wie kann ich das beheben? Gibt es Pakete, die ich vergessen habe einzuschließen?

Antwort1

Sie benötigen keine For-Schleife, TikZ hat eine eigene. Ich habe eine Möglichkeit eingefügt, aber Sie können auch den TikZ- gridSchlüssel verwenden. Ich habe auch ein weiteres Beispiel eingefügt.

\documentclass[12 pt]{exam}
\usepackage[T1]{fontenc}
\usepackage{tgtermes}
\usepackage{amsmath,amssymb} % No need and deprecated -> color
\usepackage{enumerate} % % No need -> graphicx
\usepackage{tikz} % Tikz loads graphicx and xcolor
\usepackage{xargs}
\usepackage{latexsym}

\pagestyle{head}      
\firstpageheader{Math110}{October 2}{Quiz 3}
\shadedsolutions
\definecolor{SolutionColor}{rgb}{.87,.87,.87}
\newcommand{\gridkar}[2]
{
    \begin{tikzpicture}[scale=0.4,baseline]
    \foreach\x in {-#1,...,#1}
    {
        \draw[-] (\x,-#2) -- (\x,#2);
    }
    \foreach\y in {-#2,...,#2}
    {
        \draw[-] (-#1,\y) -- (#1,\y);
    }
    \end{tikzpicture}
}

\begin{document}
\noindent Name:\hfill Section: 008
\noindent Directions: For each problem please show all your work in the space provided. 
Calculators are permitted; however, in order to receive partial or full credit on a problem 
you must show your work. You could use the blank side of this sheet too.

\textbf{Maximum Points: 6}\hspace*{\fill}\textbf{Time Limit: 10 minutes}

\begin{questions}
\question [2]\gridkar{7}{8}
\question [3]\tikz[baseline,scale=0.4]\draw (-7,-8) grid[step=1] (7,8);
\question [1]
\end{questions}
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Ihr Problem ist, dass Sie die Protokolldatei falsch gelesen haben. Das Terminal und die Protokolldatei sagen:

! Undefined control sequence.
\gridkar ...gin {tikzpicture}[scale=0.4] \forLoop 
                                                  {-#1}{#1}{x} { \draw [-] (...
l.40 \question [2]\gridkar{7}{8}

Die erste Zeile besagt, dass eine undefinierte Steuersequenz vorliegt. Das ist alles. Die Sequenz wird hier nicht erwähnt. Die zweite Zeile ist an der Stelle des Problems unterbrochen. Sie enthält einen Teil des Makrokörpers. Welches Makro gerade verarbeitet wird, wird links erwähnt. Das Problem liegt an der Stelle von \forLoop. Es bedeutet, dass dies die undefinierte Steuersequenz ist.

Die letzte Zeile (mit dem Präfix l.40) besagt, dass das Problem auftritt, wenn die Eingabedatei in Zeile 40 gelesen wird. Der Inhalt dieser Zeile wird hier angezeigt.

verwandte Informationen