컴파일 문제를 생성하는 사용자 정의 클래스

컴파일 문제를 생성하는 사용자 정의 클래스

labs.cls내 파일과 동일한 디렉터리에 있는 이라는 새 클래스 파일에 내 서문을 추가해 보았습니다 lab1.tex. 그런 다음 tex 파일의 서문을 \documentclass{labs}. tex 파일을 컴파일하려고 하면 다음 오류가 발생합니다.

This is pdfTeX, Version 3.1415926-2.4-1.40.13 (MiKTeX 2.9)
entering extended mode
(F:\Coding\phy-182\formal_lab_reports\1_formal_lab\lab1.tex
LaTeX2e <2011/06/27>
Babel <v3.8m> and hyphenation patterns for english, afrikaans, ancientgreek, ar
abic, armenian, assamese, basque, bengali, bokmal, bulgarian, catalan, coptic,
croatian, czech, danish, dutch, esperanto, estonian, farsi, finnish, french, ga
lician, german, german-x-2012-05-30, greek, gujarati, hindi, hungarian, iceland
ic, indonesian, interlingua, irish, italian, kannada, kurmanji, latin, latvian,
 lithuanian, malayalam, marathi, mongolian, mongolianlmc, monogreek, ngerman, n
german-x-2012-05-30, nynorsk, oriya, panjabi, pinyin, polish, portuguese, roman
ian, russian, sanskrit, serbian, slovak, slovenian, spanish, swedish, swissgerm
an, tamil, telugu, turkish, turkmen, ukenglish, ukrainian, uppersorbian, usengl
ishmax, welsh, loaded.
(F:\Coding\phy-182\formal_lab_reports\1_formal_lab\labs.cls
Document Class: labs 2014-03-16 Formal lab style for Miami University
("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\base\article.cls"
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\base\size10.clo"))
(C:\Users\Nate\AppData\Roaming\MiKTeX\2.9\tex\latex\fancyhdr\fancyhdr.sty)
("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\mh\mathtools.sty"
("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\graphics\keyval.sty")
("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\tools\calc.sty")
("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\mh\mhsetup.sty")
("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\amsmath\amsmath.sty"
For additional information on amsmath, use the `?' option.
("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\amsmath\amstext.sty"
("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\amsmath\amsgen.sty"))
("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\amsmath\amsbsy.sty")
("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\amsmath\amsopn.sty")))
("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\was\gensymb.sty")
("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\geometry\geometry.sty"
("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\oberdiek\ifpdf.sty")
("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\oberdiek\ifvtex.sty")
("C:\Program Files (x86)\MiKTeX 2.9\tex\generic\ifxetex\ifxetex.sty")
("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\geometry\geometry.cfg")))
! Missing = inserted for \ifnum.
<to be read again>
                   -
l.2

?

이것은 내 클래스 파일입니다.

\ProvidesClass{labs}[2014-03-16 Formal lab style for University]
\NeedsTeXFormat{LaTeX2e}

\LoadClass[letterpaper]{article}
\RequirePackage{fancyhdr}
\RequirePackage{mathtools}
\RequirePackage{gensymb}
\RequirePackage[margin=1in]{geometry}
\fontsize{12}{14}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0.4pt}
\linespread{2}
\AtBeginDocument{\thispagestyle{empty}}
\lhead{Nathan Mara}

이 클래스 파일에 내가 잘못하고 있는 것이 있나요?

이 tex 파일에서도 동일한 오류가 발생합니다.

\documentclass{labs}

\begin{document}

\end{document}

답변1

명령 \ProvidesClass, \ProvidesPackage및 에는 \ProvidesFile필수 인수(처음 두 명령에 대한 확장자가 없는 파일 이름 )와 파일 버전을 나타내는 선택적 인수가 있습니다. 선택적 인수는 다음 형식이어야 합니다..cls.sty

<date> <info>

해당 <info>부품은 필수가 아닙니다. 존재하는 경우 공백으로 날짜와 구분해야 합니다.

예를 들어 간단히 다음을 수행할 수 있습니다.

\ProvidesClass{foo}

그러나 이는 좋은 프로그래밍 스타일이 아닙니다. 날짜는 항상 제공되어야 합니다. 그러므로

\ProvidesClass{foo}[2014/03/19]

또는

\ProvidesClass{foo}[2014/03/19 Some information]

날짜 형식은 표시된 것과 같으며 하이픈이 아닌 슬래시가 사용됩니다.

YYYY/MM/DD

즉, 연도는 4자리, 월은 2자리, 일은 2자리입니다. 다른 입력을 하면 \ifnum오류가 발생합니다.

관련 정보