Benutzerdefinierte Klasse verursacht Kompilierungsprobleme

Benutzerdefinierte Klasse verursacht Kompilierungsprobleme

Ich habe versucht, meine Präambel zu einer neuen Klassendatei namens hinzuzufügen labs.cls, die sich im selben Verzeichnis wie meine lab1.texDatei befindet. Dann habe ich die Präambel meiner Tex-Datei in geändert \documentclass{labs}. Wenn ich versuche, die Tex-Datei zu kompilieren, erhalte ich diesen Fehler:

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

?

dies ist meine Klassendatei:

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

Mache ich in dieser Klassendatei etwas falsch?

Ich erhalte sogar mit dieser Tex-Datei den gleichen Fehler:

\documentclass{labs}

\begin{document}

\end{document}

Antwort1

Die Befehle \ProvidesClass, \ProvidesPackageund \ProvidesFilehaben ein obligatorisches Argument (den Dateinamen, ohne Erweiterung für die ersten beiden Befehle, da .clsund .styimpliziert sind) und ein optionales Argument, das die Version der Datei angibt. Das optionale Argument sollte die Form haben

<date> <info>

Der <info>Teil ist nicht erforderlich. Falls vorhanden, sollte er durch ein Leerzeichen vom Datum getrennt werden.

So kann man zum Beispiel einfach

\ProvidesClass{foo}

was jedoch kein guter Programmierstil ist: Es sollte immer ein Datum angegeben werden. Daher entweder

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

oder

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

Beachten Sie, dass das Datumsformat wie gezeigt ist, mit Schrägstrichen und nicht mit Bindestrichen:

YYYY/MM/DD

Das heißt, vier Ziffern für das Jahr, zwei Ziffern für den Monat und zwei Ziffern für den Tag. Jede andere Eingabe führt zu einem \ifnumFehler.

verwandte Informationen