Probleme mit amsmath

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


Kiso
Forum-Newbie
Forum-Newbie
Beiträge: 1
Registriert: Mi 10. Aug 2016, 09:14

Probleme mit amsmath

Beitrag von Kiso »

Hallo liebes Forum,

zuerst zum Problem:
Ich muss für die Erstellung meines nächsten Dokuments ein Template verwenden, welches ich als .cls-Datei bekommen habe.
Dieses Template verwendet unter anderem amsmath. Wenn ich nun die PDF mit teXstudio erstellen möchte, gibt es eine Fehlermeldung:

"amsmath.sty - Fehler Zeile 1529 - Command \align already defined. }"

Die PDF wird zwar erzeugt, aber texStudio bricht den Vorgang ab und öffnet z.B. nicht den PDF-Viewer.

Verursacht wird der Fehler meiner Meinung nach durch die folgende Zeile in der cls-Datei, die vor der Einbindung von amsmath steht:
\def\align{} % Hochformat
Wenn ich diese Zeile auskommentiere, bekomme ich die Fehlermeldung:
"Fehler Zeile 39 - Undefined control sequence."

Ich kenne mich nicht gut genug aus, um zu verstehen, wie ich das Problem beheben kann. Ich hoffe, dass mir hier jemand helfen kann?

Hier ist die vollständige cls-Datei:
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{diss}[]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% use scrreprt as base class including all options
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrreprt}}

% define default values
\def\align{} % Hochformat
\def\skipsmall{ \vskip 0.04\textheight }
\def\skipmedium{ \vskip 0.08\textheight }


\DeclareOption{landscape}{
yl	\def\align{landscape}
}

\DeclareOption{a5paper}{
	\def\skipsmall{ \vskip 0.04\textheight }
	\def\skipmedium{ \vskip 0.08\textheight }
}

\ProcessOptions\relax

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Packages
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\LoadClass{scrreprt}

\RequirePackage[\align]{geometry}

\RequirePackage{scrpage2}
 
% \RequirePackage{ngerman}
%  \RequirePackage[utf8]{inputenc}

% \RequirePackage[ngerman]{babel}
\RequirePackage{listings}
\RequirePackage[dvipsone]{graphicx}
\RequirePackage{rotating}%for rotating figures 
\RequirePackage{longtable}
\RequirePackage{caption}% to suppress caption numbering and labeling (just
%eave the caption text) with caption*{}%

\RequirePackage{booktabs} % for \toprule, \midrule, \bottomrule in tables
\RequirePackage{mdframed} % for framed figures
\RequirePackage{rotating}%for rotating figures  and tables
\RequirePackage{setspace}%for spacing 
\RequirePackage{multirow}
\RequirePackage{shadethm}% for shaded theorems
\RequirePackage{amsthm}%
\RequirePackage{amsmath}%
\RequirePackage{enumitem}% for noitemsep,nolistsep in enumerations and itemizations
\RequirePackage{array}%
\RequirePackage{lscape}% for landscape longtables
\RequirePackage{enumitem}%
\RequirePackage{tabularx}%
\RequirePackage{color}
\RequirePackage{colortbl}% fuer farbige Spalten udn Zeilen in Tabellen
\RequirePackage{pdfpages}% PDF einfuegen
\RequirePackage{amsfonts}% for Number sets (prime, natural, integer, rational,
\RequirePackage{mdframed}% fir framed theorems
% real and complex) in Latex
\RequirePackage{thmtools}   % for listoftheorems
% http://tex.stackexchange.com/questions/7032/good-way-to-make-textcircled-numbers


% \RequirePackage{setspace}% 
\RequirePackage[colorinlistoftodos,textsize=footnotesize,textwidth=1cm]{todonotes}


\newcommand{\todoA}[1]{\todo[color=red!40]{\tiny #1}}
\newcommand{\todoinline}[1]{\todo[color=red!40,inline]{#1}}


%%%%%%%%definition definition%%%%%%%%%%%%%%%
\newshadetheorem{definitions}{Definition}[chapter]
\newenvironment{definition}[1][]{%
  \definecolor{shadethmcolor}{rgb}{.95,.95,.95}%
  \definecolor{shaderulecolor}{rgb}{0,0,0}%
  \setlength{\shadeboxrule}{0.5pt}%
%   \begin{definitions}[#1]\hspace*{1mm}%
\setlength\shadeboxsep{6pt} 
\setlength\shadedtextwidth{\dimexpr\textwidth-2\shadeboxsep\relax}  
  \begin{definitions}[#1]\mbox{}\par\noindent%

}{\end{definitions}}  

%%%%%%%%definition corolary%%%%%%%%%%%%%%%
\newshadetheorem{corollarys}{Hypothesis}[chapter]
\newenvironment{corollary}[1][]{%
  \definecolor{shadethmcolor}{rgb}{.95,.95,.95}%
    \definecolor{shaderulecolor}{rgb}{0,0,0}%
  \setlength{\shadeboxrule}{0.5pt}%
\setlength\shadeboxsep{6pt} 
\setlength\shadedtextwidth{\dimexpr\textwidth-2\shadeboxsep\relax}  
  \begin{corollarys}[#1]\mbox{}\par\noindent%
  \normalfont
}{\end{corollarys}}  


%%%%%%%%definition example (not shaded)%%%%%%%%%%%%%%%
% \theoremstyle{definition}
% \newtheorem{example}{Example}[chapter]

\newshadetheorem{examples}{Example}[chapter]
\newenvironment{example}[1][]{%
  \definecolor{shadethmcolor}{rgb}{1,1,1}%
    \definecolor{shaderulecolor}{rgb}{0,0,0}%
  \setlength{\shadeboxrule}{0.5pt}%
\setlength\shadeboxsep{6pt} 
\setlength\shadedtextwidth{\dimexpr\textwidth-2\shadeboxsep\relax}  
  \begin{examples}[#1]\mbox{}\par\noindent%
  \normalfont
}{\end{examples}}  





\definecolor{h}{rgb}{0.95,0.95,0.95}

% alighnment for custom width columns in tables
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}

%Notizen als roter Text
\newcommand{\note}[1]{\textcolor{red}{#1}}  
%eigene definitionen 
\newcommand{\hour}{\text{h}}
\renewcommand{\min}{\text{min}}
\renewcommand{\sec}{\text{sec}}




% Modified \textcircled solution
\newcommand*\numcircledmod[1]{\raisebox{.5pt}{\textcircled{\raisebox{-.9pt} {#1}}}}
\RequirePackage[T1]{fontenc}
% \RequirePackage[square,comma,numbers,sort]{natbib} %numerical references

\RequirePackage[pdftex,pagebackref,pdfusetitle,plainpages =
false]{hyperref}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 
% Font family, Schriftarten
%
% Auswahl
% Serifen
% pbk - Adobe Bookman
% pnc - Adobe NewCenturySchoolbook
% ppl - Adobe Palatino
% ptm - Adobe Times Roman
% put - Adobe Utopia
% pzc - Adobe Zapf Chancery (nur italic \textit{})
% bch - Bitsream Charter
% ctm - Times
% nnt - IBM Times New
% ugq - Grotesq
%
% Serifenlos
% pag - Adobe AvantGarde
% phv - Adobe Helvetica
% 
% Monospace
% pcr - Adobe Courier
% ul9 - Luxi Mono
%          
% Sonstige
% pzd - Adobe Zapfding
%
% Gute Übersicht: http://www.tug.dk/FontCatalogue
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Roman Modern family, serifen, serif
\renewcommand{\rmdefault}{ptm}
% Sans Serif family, serifenlos
\renewcommand{\sfdefault}{phv}
% Typewriter family, monospace
\renewcommand{\ttdefault}{pcr}

% oder alternativ 
%\RequirePackage{cmbright}
%\RequirePackage{bera}
%\RequirePackage{times}
%\RequirePackage{charter}
%\RequirePackage{fourier} % Utopia fourier
%\RequirePackage[adobe-utopia]{mathdesign} % Utopia mathdesign
%\RequirePackage{bookman}
%\RequirePackage{helvet} % sans-serif
%\RequirePackage{palatino}
%\RequirePackage{newcent}
%\RequirePackage{uni} % Universal, sans serif
%\RequirePackage{concrete}
%\RequirePackage{calligra} % Calligra, calligraphisch, mit \calligra starten
%\RequirePackage[scaled=0.95]{helvet} % Helvetica as sans-serif
%\RequirePackage[olddigit]{efont} % Efont as serif
%\RequirePackage{mathesf} % Efont as math

% bei anderer Schrifart Satzspiegel neu berechnen
\typearea[current]{last}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Title Page
% Layout based on 'Promotionsordnung (Dr. rer. nat.) vom 25.07.2002'
% See: http://www.uni-hannover.de/de/studium/studiengaenge/informatik/ordnungen/
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\renewcommand{\subtitle}[1]{\def\subtitle{#1}}
\newcommand{\dissstatus}[1]{\def\dissstatus{#1}}
\newcommand{\grade}[1]{\def\grade{#1}}
\newcommand{\gradeabbrv}[1]{\def\gradeabbrv{#1}}
\newcommand{\birthdate}[1]{\def\birthdate{#1}}
\newcommand{\birthplace}[1]{\def\birthplace{#1}}
\newcommand{\university}[1]{\def\university{#1}}
\newcommand{\faculty}[1]{\def\faculty{#1}}
\newcommand{\examiner}[1]{\def\examiner{#1}}
\newcommand{\coexaminer}[1]{\def\coexaminer{#1}}
\newcommand{\cocoexaminer}[1]{\def\cocoexaminer{#1}}
\newcommand{\printyear}[1]{\def\printyear{#1}}

\def\tempdissstatcomp{genehmigt}

% set new pagestyle title
\newcommand{\ps@title}{%
	\renewcommand{\@oddhead}{}%
    \renewcommand{\@evenhead}{}%
    \renewcommand{\@oddfoot}{%
    	\ifx\dissstatus\tempdissstatcomp 
    		\hfil \textsf{\textup{\large{\printyear}}} \hfil
        \else
		\fi
       
	}%
	\renewcommand{\@evenfoot}{}%
}

\clearscrheadfoot
\cofoot{\large{\textsf{\textup{\printyear}}}}

\renewcommand{\maketitle}{
 	\begin{titlepage}
     	\thispagestyle{title}
     	\null\vfill
 		\begin{center}
			\sffamily % title page completely in sans-serif
			\huge{\textbf\@title}
			\ifx\subtitle\@empty \skipmedium 
			\else \break \LARGE{\textbf{\subtitle}} \skipmedium \fi
						
			\large{%
				\ifx\dissstatus\tempdissstatcomp Von der \else Der \fi 
				\faculty\\
				der \university\\
				zur Erlangung des akademischen Grades
			}
 			\skipmedium
			\large{%
				\grade \\
%  				\skipsmall
				%\textbf
				\gradeabbrv
 			}
 			\skipmedium
			\large{%
				\ifx\dissstatus\tempdissstatcomp genehmigte \else vorgelegte \fi
				Dissertation
% 				\skipsmall
				\skipmedium
				von
			}
% 			\skipmedium
% 			\skipsmall
% 			\Large{\textbf
			\large{%\textbf%
			\@author}
% 			\skipmedium
			\skipsmall
			\large{geboren am \birthdate ~in \birthplace}\\
			\vfill\large{\textsf{\textup{\printyear}}}
		\end{center}


		\ifx\dissstatus\tempdissstatcomp
			\clearpage
			\thispagestyle{empty}
            \null\vfill
			\begin{minipage}[b]{\textwidth}
			\begin{tabular}{ll}
				1. Referent: & \examiner\\
				2. Referent: & \coexaminer\\
				3. Referent: & \cocoexaminer\\
				Tag der Promotion: & \@date
			\end{tabular}
			\end{minipage}
			\cleardoubleemptypage
		\else
			\cleardoubleemptypage
		\fi

	\end{titlepage}
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Margins
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\newlength{\templength}
%\setlength{\templength}{\oddsidemargin}
%\setlength{\oddsidemargin}{\evensidemargin}
%\setlength{\evensidemargin}{\templength}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Seitennummerierung
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand*\frontmatter{%
	\cleardoublepage%
	\pagenumbering{roman}%
}
\newcommand*\mainmatter{%
	\cleardoublepage%
	\pagenumbering{arabic}%
}
\newcommand*\backmatter{%
	\cleardoublepage%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% HyperRef Einstellungen
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\hypersetup{
    colorlinks = true,
    baseurl={http://www.se.uni-hannover.de},
    pdfsubject = {Dissertation},
    pdfkeywords = {Experience and Knowledge Management, Distributed
    Software Engineering}, pdfcreator = {},
    pdfproducer = {},
    pdfhighlight = {/P},
    pdfstartview = FitH,
    pdfview = FitH,
    pdfpagelayout = OneColumn,
    citecolor = black,
    anchorcolor = black,
    filecolor = black,
    linkcolor = black,
    menucolor = black,
    urlcolor = black,
    bookmarksopen = true, 
    bookmarksopenlevel = {2}, 
    bookmarksnumbered = true
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Konfigurationen  
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%cusotmization: reverse even and odd pages for double side and openright
% printing. the default setting reversed the pages.
\let\tmp\oddsidemargin
\let\oddsidemargin\evensidemargin
\let\evensidemargin\tmp
\reversemarginpar

\linespread{1.2}%
\selectfont


\setcounter{tocdepth}{1} % Inhaltsverzeichnis bis zur 2. Ebene
% \setcounter{secnumdepth}{3}
 
\pagestyle{headings} % Kapitel- und Abschnittsüberschriften in Kopfzeile

\AtBeginDocument{\maketitle}
% \AtBeginDocument{\bibliographystyle{IEEEtran}} % Bsp.: [1]
% \AtBeginDocument{\bibliographystyle{ieee}} % Bsp.: [1]
% \AtBeginDocument{\bibliographystyle{apa}} % Bsp.: [Stapel2006]
% \AtBeginDocument{\bibliographystyle{alpha}} % Bsp.: [Sta06] 

% \AtEndDocument{\listoftables} 
% \AtEndDocument{\listoffigures}
%\AtEndDocument{\listoflistings}
%\AtEndDocument{\bibliography{references}} % Bibliography 
% \AtEndDocument{\bibliography{library}}



\endinput
Beste Grüße
Kiso
Zuletzt geändert von Kiso am Mi 10. Aug 2016, 13:20, insgesamt 1-mal geändert.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Ich muss für die Erstellung meines nächsten Dokuments ein Template verwenden, welches ich als .cls-Datei bekommen habe.
Dann wende dich an den-/diejenige, die dich dazu zwingt und fordere ein fehlerfreies Produkt. Wer sowas in die Welt setzt, sollte sich auch darum kümmern.

DADABBI

Beitrag von DADABBI »

Wende dich an den für die Klasse zuständigen Betreuer, damit er diesen Fehler und den Fehler bei der Definition von Option landscape (das y1 gehört da definitiv nicht hin!) behebt. Bei der Gelegenheit kann er dann auch gleich andere Unschönheiten beseitigen:
  • scrpage2 ist veraltet, es gibt dafür keinen Support mehr. Der Nachfolger heißt scrlayer-scrpage.
  • graphicx mit Option dvipsone zu laden, erzeugt bei Verwendung von pdflatex min. eine Warnung und ist insgesamt eher ungünstig.
  • Pakete mehrfach zu laden ist zumindest unpraktisch.
  • Statt color und colortbl zu laden, sollte man besser die leistungsfähigere Methode verwenden und xcolor mit Option table laden.
  • Statt einfach nur die Fontfamilien umzudefinieren, wäre es sinnvoller, die entsprechenden Pakete zu laden (siehe [d]psnfss2e[/d]). Dann hätte man auch gleich die Mathefonts passend eingestellt und könnte Helvetica wenigsten so skalieren, dass es halbwegs zu Times New Roman passt.
  • In einer Klasse derart Code auszukommentieren, damit man ihn bei Bedarf aktiviert und anderen auskommentiert, ist ungünstig. An Klassen fummelt man eigentlich nicht, weil sonst die Ergebnisse ggf. nicht mehr reproduzierbar sind. So etwas kann man in einer Vorlage für ein Dokument machen aber nicht in einer Klasse.
  • Wenn die Klasse gleich auf scrbook statt auf scrreprt aussetzen würde, dann müsste man nicht erst \frontmatter, \mainmatter und \backmatter (derart unvollständig) definieren, sondern hätte es bereits.
  • Was die nachträgliche Manipulation der Ränder soll, ist mir schleierhaft. Das ist eigentlich Unfug.
  • Laut offzieller LaTeX-Doku soll man per \AtBeginDocument keinen Text ausgeben. Genau das wird hier aber in Form des Titels gemacht. Das kann zu erheblichen Problemen mit der Verwendung versch. Pakete führen. Wer einen solchen Automatismus will, sollte beispielsweise etoolbox und dessen Hook \AfterEndPreamble verwenden.
Fazit: Auch diese Klasse gehört in den Bereich der kritisch zu betrachtenden Vorlagen.

maknesium

Beitrag von maknesium »

Die Klasse ist mittlerweile auf github verfügbar und kann so von jedermann verbessert werden: https://github.com/maknesium/latex-vorl ... erarbeiten

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Ich kann die Verwandschaft zur oben genannten Klasse nicht wirklich erkennen. Auch wichtige Punkte obiger Kritik wurden unbeachtet gelassen. So verwendet das neue Template beispielsweise fancyhdr mit einer KOMA-Klasse. Artikelklassen sind auch oft ungeeignet für die Bedürfnisse größerer wissenschaftlicher Arbeiten.

Ich bleibe dabei, Templates sind doof.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

Nur weil eine "Klasse" auf github hochgeladen wurde, heißt dass noch lange nicht, dass "jedermann" sich durch deine 15-TeX-Dateien wühlt, um die Fehler zu beheben.
Ein vollständiges Minimalbeispiel (VM) zu erzeugen, ist gar nicht schwer und hilft ganz oft, Fehler selber zu finden. Ohne bekommt man selten gute Antworten. Anleitungen findest du z.B. im golatex Wiki auf TeXWelt oder minimalbeipiel.de
Außerdem hilft das Lesen dieser Seite, Fragen richtig zu stellen.

Antworten