\newcommand 정의에도 불구하고 "정의되지 않은 제어 시퀀스" 오류가 발생했습니다!

\newcommand 정의에도 불구하고 "정의되지 않은 제어 시퀀스" 오류가 발생했습니다!

texlive 전체 패키지를 설치했습니다.

저는 TeXmaker를 사용하는데 이것은 tikzpicture처럼 그리드를 그리려는 코드입니다. 아래에 정의된 함수를 호출하고 싶습니다 \gridkar. 그래서 에 정의했습니다 \newcommand. 불행히도 두 가지 오류가 반환됩니다.

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에는 자체 루프 작업이 있습니다. 한 가지 가능성을 포함시켰지만 TikZ grid키를 사용할 수도 있습니다. 또 다른 예도 들었습니다.

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

첫 번째 줄은 정의되지 않은 제어 순서가 있음을 나타냅니다. 그게 전부입니다. 여기서는 순서를 언급하지 않습니다. 두 번째 줄은 문제가 있는 곳에서 끊어졌습니다. 매크로 본문의 일부가 포함되어 있습니다. 현재 처리되는 매크로는 왼쪽에 표시됩니다. 문제는 의 위치에 있습니다 \forLoop. 이는 정의되지 않은 제어 순서임을 의미합니다.

마지막 라인(접두사 l.40)은 입력 파일을 라인 40에서 읽을 때 문제가 발생함을 나타냅니다. 이 라인의 내용은 여기에 표시됩니다.

관련 정보