\newcommand の定義にもかかわらず、「未定義の制御シーケンス」エラーが発生しました。

\newcommand の定義にもかかわらず、「未定義の制御シーケンス」エラーが発生しました。

texlive のフルパッケージをインストールしました:

私はTeXmakerを使用していますが、これはtikzpictureのようにグリッドを描画するコードです。\gridkar以下に定義された関数を呼び出すだけです。そこで、 で定義しました\newcommand。残念ながら、2つのエラーが返されます。

Undefined Control Sequence \gridkar

そして

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}

これを修正するにはどうすればいいでしょうか? 含め忘れたパッケージはありますか?

答え1

for ループ操作は必要ありません。TikZ には独自の操作があります。1 つの可能性を示しましたが、TikZgridキーを使用することもできます。別の例も示します。

\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}

ここに画像の説明を入力してください

答え2

問題は、ログ ファイルの読み取りが間違っていることです。ターミナルとログ ファイルには次のように表示されます。

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

1 行目は、未定義の制御シーケンスがあることを示しています。それだけです。シーケンスについてはここでは言及しません。2 行目は、問題の場所では改行されています。マクロ本体の一部が含まれています。現在どのマクロが処理されているかは左側に示されています。問題は の場所です\forLoop。これは、これが未定義の制御シーケンスであることを意味します。

最後の行 ( で始まるl.40) は、入力ファイルが行 40 で読み取られるときに問題が発生することを示しています。この行の内容を以下に示します。

関連情報