diff --git a/sheets/1/exercise-1.tex b/sheets/1/exercise-1.tex index 45e34579..3553033b 100644 --- a/sheets/1/exercise-1.tex +++ b/sheets/1/exercise-1.tex @@ -1,12 +1,7 @@ % !TeX root = ./jvk-blatt1.tex -% l.47 Play-Button -%\usepackage{amssymb}; - -\newcommand{\jvkpackage}{Release 1.0.1} -\newcommand{\jvkpackageurl}{https://github.com/FIUS/jvk/releases/tag/1.0.1} % TODO: change URL - \excercise{Programmstart} +\label{ex1} \begin{Infobox}[How-To: Install Eclipse] \begin{enumerate}[label=\arabic*.] diff --git a/sheets/1/exercise-2.tex b/sheets/1/exercise-2.tex index 2f52b341..2c122efe 100644 --- a/sheets/1/exercise-2.tex +++ b/sheets/1/exercise-2.tex @@ -1,9 +1,7 @@ % !TeX root = ./jvk-blatt1.tex -\lstset{ - basicstyle=\small, - morecomment=[l]{*} -} + \excercise{Nachschlagwerk: Syntax und Codestil} +\label{ex2} Jetzt folgt ein Nachschlagwerk auf das du immer wieder zurückgehen kannst bei den folgenden Aufgaben. Du kannst es bereits mal durchlesen, es ist aber nicht schlimm, wenn du noch nicht alles versteht. @@ -104,7 +102,7 @@ \subsection*{Syntax} public void springen(){ // Code um zu springen } - + public String getName(Hund hund){ return hund.name; } @@ -143,18 +141,18 @@ \subsection*{Syntax} \begin{lstlisting}[title=\textbf{Variablen Syntax}] ; // Eine Variable wird erzeugt, ihr ist noch kein Wert zugewiesen. - + = ; // Eine Variable wird erzeugt und ihr wird ein Wert zugewiesen. - + = ; // Einer bestehenden Variable wird ein neuer Wert zugewiesen. - + = new (); // Einer neuen Variable wird eine neue Instanz eines Objekts zugewiesen. - + = ; // Einer neuen Variable wird der Wert einer anderen Variable zugewiesen. Das geht natürlich nur wenn die Varaiblen das selbe speichern können (den selben Typ haben). \end{lstlisting} \begin{lstlisting}[title=\textbf{Variable Beispiel}] String hundeName = "Bello"; - + Hund meinHund = new Hund(hundeName); \end{lstlisting} \begin{Infobox} @@ -170,14 +168,14 @@ \subsection*{Syntax} \end{Infobox} \begin{lstlisting}[title=\textbf{Kommando/Abfrage Syntax}] .(); - + .(); \end{lstlisting} \begin{lstlisting}[title=\textbf{Kommando/Abfrage Beispiel}] // meinHund.setName(); soll dafür sorgen dass der Hund von Bello zu Doggo umbenannt wird. Er ändert also etwas an dem Objekt. meinHund.setName("Doggo"); - + // meinHund.getName(); gibt den Namen des Hundes zurück, ändert also nichts am Obejekt selber sondern gibt Eigenschaften davon zurück. meinHund.getName(); \end{lstlisting} diff --git a/sheets/1/exercise-3.tex b/sheets/1/exercise-3.tex index 660cda69..dbccddfc 100644 --- a/sheets/1/exercise-3.tex +++ b/sheets/1/exercise-3.tex @@ -1,8 +1,10 @@ +% !TeX root = ./jvk-blatt1.tex \excercise{DemoTask und UI} +\label{ex3} \begin{enumerate} - \item Nun wollen wir wie in Aufgabe 1 ein Spiel starten. + \item Nun wollen wir wie in Aufgabe 1 ein Spiel starten. Dieses Mal nur mit dem \lstinline{DemoTask} und noch ohne den \lstinline{DemoTaskVerifier}: \begin{lstlisting} @@ -23,7 +25,7 @@ Nun wollen wir noch ein DemoTaskVerifier Objekt übergeben.\\ Orientiere dich dazu unten am Bild. Starte nachdem du fertig bist das Spielfenster neu. \\ - Was verändert sich im Spielfenster? + Was verändert sich im Spielfenster? Finde den \q{Task Status} Tab und drücke den Refresh Button. \begin{lstlisting} @@ -52,7 +54,7 @@ \item Nun suche nach der Stelle im Code in der Klasse \lstinline{DemoTask}, in dem die erste Münze erzeugt wird.\\ - Kleiner Tipp: + Kleiner Tipp: Wenn du \fbox{Strg} drückst während du auf einen Klassennamen oder einen Operationsnamen im Code klickst, öffnet Eclipse die entsprechende Java-Datei wo sich diese Operation oder Klasse befindet.\\ Alternativ kannst du über den PackageExplorer in das Paket\\ \texttt{de.unistuttagrt.informatik.fius.jvk.tasks} navigieren und dort die Datei \texttt{DemoTask.java} mit einem Doppelklick öffnen. diff --git a/sheets/1/exercise-4.tex b/sheets/1/exercise-4.tex index 00a4417e..20e57bd4 100644 --- a/sheets/1/exercise-4.tex +++ b/sheets/1/exercise-4.tex @@ -1,7 +1,7 @@ - % !TeX root = ./jvk-blatt1.tex -\newcommand{\javadocRoot}{https://fius.github.io/ICGE2/master/} + \excercise{Eine API verwenden / Doku lesen} +\label{ex4} \begin{enumerate} \item Wie in der vorherigen Aufgabe bereits vorgestellt, erstellen wir wieder ein neues Spiel.\\ @@ -33,7 +33,7 @@ Tipp: Wenn du nicht genau weißt, wie man eine Münze erzeugt, schaue dir den Code, welchen du in Aufgabe 3 d) gefunden hast, nochmal an. - \item Nachdem wir nun die Operation \lstinline{placeEntityAt()} aus der Klasse \lstinline{PlayfieldModifier} kennengelernt haben, beschäftigen wir uns nun etwas genauer mit dem \lstinline{PlayfieldModifier}. + \item Nachdem wir nun die Operation \lstinline{placeEntityAt()} aus der Klasse \lstinline{PlayfieldModifier} kennengelernt haben, beschäftigen wir uns nun etwas genauer mit dem \lstinline{PlayfieldModifier}. Insbesondere wollen wir nun herausfinden, welche anderen Operationen von dieser Klasse bereitgestellt werden. \\ Es gibt noch zwei weitere Operationen, welche wir zum Platzieren von Münzen (\lstinline{Coin}), Wänden (\lstinline{Wall}) und Spielfiguren verwenden können.\\ @@ -42,12 +42,12 @@ Falls du noch mehr Infos brauchst über Operationen o.ä. findest du die Dokumentation der \newline \lstinline{PlayfieldModifier} Klasse unter dem Link \url{\javadocRoot de.unistuttgart.informatik.fius.icge.simulation/de/unistuttgart/informatik/fius/icge/simulation/tools/PlayfieldModifier.html}. Am besten überfliegst du sie einfach kurz. - + \end{enumerate} \begin{Infobox}[Autocompletion] Sobald du ein Objekt instanziiert (erstellt) hast und in eine Variable speicherst, kannst du hinter den Variablennamen einen Punkt '.' eingeben.\\ - Jetzt wird eine Liste von allen möglichen Attributen und Operationen angezeigt, die zu dem Objekt gehören. + Jetzt wird eine Liste von allen möglichen Attributen und Operationen angezeigt, die zu dem Objekt gehören. So kann man recht schnell alle möglichen Operationen durchsuchen, die mit diesem Objekt möglich sind.\\ Falls du also mal nicht weiter weißt, probiere doch einfach mal das und nutze das am vielversprechende.\\ diff --git a/sheets/1/intro.tex b/sheets/1/intro.tex new file mode 100644 index 00000000..fd5cf815 --- /dev/null +++ b/sheets/1/intro.tex @@ -0,0 +1,27 @@ +% !TeX root = ./jvk-blatt1.tex + +\begin{center} + Hallo und herzlich Willkommen zum diesjährigen Java Vorkurs!\\ +\end{center} +Hier werden wir Dir gemeinsam eine Grundlage in der objektorientierten Programmiersprache \textit{Java} aufzubauen, so dass Du in dem Fach \textit{Programmieren und Softwareentwicklung} - kurz PSE - im kommenden Semester nicht ganz von 0 aus starten musst.\newline +Falls Du bei der Bearbeitung des Blatts Fragen oder Probleme haben solltest, kannst Du Dich immer gerne bei den Tutoren melden oder einfach mal deinen Nachbar/ deine Nachbarin rechts oder links von Dir fragen.\newline +Wir empfehlen die Aufgaben nicht nur \enquote{im Kopf} zu bearbeiten, sondern Dir Notizen auf einem Blatt Papier, auf deinem Laptop oder einer Datei auf einem USB-Stick/ in der Cloud zu machen. Erfahrungsgemäß bringt Dir das selber mehr und du kannst deinen Mitstudenten ggf. mit deinen notierten Antworten schnell weiterhelfen oder mit ihnen diskutieren, wenn es Differenzen geben sollte.\\\\ +\textbf{Voraussetzungen:} +\begin{itemize} + \item Eine halbwegs aktuelle Version des \textit{Java Development Kits}\\ + $\rightarrow$ \href{\jdkTutorial}{Hier} gehts zum Tutorial, welches bitte nur mit \textit{Kopfhörern} angeschaut wird + \item Eine funktionierende \textit{Eclipse IDE} Installation\newline + $\rightarrow$ Wenn Du bei der Vorstellung des Installationsvorgangs durch die Tutoren nicht ganz mitgekommen sein solltest, schau dir (bitte mit Kopfhörern) unser \href{\eclipseTutorial}{Tutorial} an.\\ + $\rightarrow$ Falls das nicht möglich sein oder bei der Installation Probleme auftreten sollten, kannst du dich auch gerne melden. Unsere Tutoren helfen Dir gerne weiter. + \item Die aktuelle Version der \texttt{\jvkpackage} Datei\\ + $\rightarrow$ Den Link zum downloaden findest du \href{\jvkpackageurl}{hier} +\end{itemize} +\textbf{Lernziele:} +\begin{itemize} + \item \ref{ex1}: Eine Einführung in dem Umgang mit der integrierten Entwicklungsumgebung Eclipse, den Import von Maven Projekten und den Ausführen dieser. Anschließend sollen erste, kleinere Code-Edits durchgeführt werden. + \item \ref{ex2}: \textbf{Nachschlag-Werk:} Eine Sammlung von Begriffserklärungen mit vielen Beispielen.\\ + $\rightarrow$ Auch für Aufgaben auf späteren Übungsblättern nützlich + \item \ref{ex3}: Eine kleine Aufgabe, um Dich in der UI unseres Games zurecht zu finden und um mit den bereitgestellten Funktionen umzugehen zu lernen. + \item \ref{ex4}: Eine Einführung in des Lesen von Dokumentationen, mit deren Hilfe das Spielfeld neu gestaltet werden soll. +\end{itemize} +\newpage \ No newline at end of file diff --git a/sheets/1/jvk-blatt1.tex b/sheets/1/jvk-blatt1.tex index 530d130a..04fdb437 100644 --- a/sheets/1/jvk-blatt1.tex +++ b/sheets/1/jvk-blatt1.tex @@ -1,8 +1,5 @@ \documentclass{../vorkurs} -\usepackage{amssymb} %!TEX root = ./jvk-blatt1.tex - -\newcommand{\simulator}{Matrix-Simulator} \def\sheetNumber{1} \makedocument \ No newline at end of file diff --git a/sheets/2/exercise-6.tex b/sheets/2/exercise-6.tex index 2d5d55cf..5af47480 100644 --- a/sheets/2/exercise-6.tex +++ b/sheets/2/exercise-6.tex @@ -8,7 +8,7 @@ Beispiel: Wir haben eine Klasse Student. Die Klasse definiert dabei, dass ein Student folgende Eigenschaften und Operationen haben soll aber befüllt die Eigenschaften noch nicht mit Werten: - + \begin{itemize} \item name \item age @@ -22,7 +22,6 @@ Dabei hast du einen Namen und ein Alter. Ebenso kannst du folgende Operationen ausführen wie lernen, essen und über dich was erzählen.\\ Es kann aber auch insbesondere mehrere Objekte von einer Klasse geben z.B. dein Nebensitzer ist demnach auch ein (anderes) Objekt der Klasse Student.\\ - In Java könnte das dann so aussehen: \begin{lstlisting}[numbers=left,xleftmargin=2em,frame=single,framexleftmargin=1.5em] @@ -30,7 +29,6 @@ private String name; private int age; - // ... public String getName() { @@ -53,8 +51,6 @@ \end{lstlisting} \end{Infobox} -\newpage - \begin{enumerate} \item Wir haben hier ein paar Klassen. Bitte erweitere sie um je drei weitere Eigenschaften. Der Stuhl ist ein Beispiel: diff --git a/sheets/2/jvk-blatt2.tex b/sheets/2/jvk-blatt2.tex index d0ae11fd..9ad06ea5 100644 --- a/sheets/2/jvk-blatt2.tex +++ b/sheets/2/jvk-blatt2.tex @@ -1,7 +1,5 @@ \documentclass{../vorkurs} %!TEX root = ./jvk-blatt2.tex -\newcommand\ownclass{\lstinline|MyNeo|} -\newcommand\superclass{\lstinline|Neo|} \def\sheetNumber{2} \makedocument \ No newline at end of file diff --git a/sheets/vorkurs-settings.cls b/sheets/vorkurs-settings.cls new file mode 100644 index 00000000..0c5a1d99 --- /dev/null +++ b/sheets/vorkurs-settings.cls @@ -0,0 +1,20 @@ +%% Die aktuellen Links und Dateinamen für den JVK: + +%% Basic: +\def\kurs{Java Vorkurs} +\def\semester{2022} %TODO: Rausnehmen (?) +\def\simulator{Matrix-Simulator} + +%% Links: +\def\fiusjvk{https://fius.de/index.php/studien-interessierte/java-vorkurs/} +\def\jdkTutorial{https://youtu.be/rGeOtJHodtY} +\def\eclipseTutorial{https://youtu.be/zxH3G1MTrVs} +\def\jvkpackage{Release 1.0.1} +\def\javadocRoot{https://fius.github.io/ICGE2/master/} +\def\jvkpackageurl{https://github.com/FIUS/jvk/releases/tag/1.0.1} + +%% Java: +\def\jvkpackage{JavaVorkurs\_EclipseProjekt.zip} +\def\javaPackageName{de.unistuttgart.informatik.fius.jvk} +\newcommand\ownclass{\lstinline|MyNeo|} +\newcommand\superclass{\lstinline|Neo|} \ No newline at end of file diff --git a/sheets/vorkurs.cls b/sheets/vorkurs.cls index 1d90da45..dce12130 100644 --- a/sheets/vorkurs.cls +++ b/sheets/vorkurs.cls @@ -1,268 +1,289 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesClass{vorkurs} -\LoadClass[a4paper]{article} +\LoadClass[a4paper,11pt]{article} -% Settings -% -% Space for Settings that can and should be changed -\def\kurs{Java Vorkurs} %Name of the kurse -\def\semester{WS 2022} %Number of the Semester %TODO:Rausnehmen +%% Import settings for links, names and file names +\input{../vorkurs-settings.cls} %%%%%%%%%%%% % Packages % %%%%%%%%%%%% -\RequirePackage[ngerman]{babel} -\usepackage[T1]{fontenc} + +%% Base font decoding +\RequirePackage{mmap} +\RequirePackage[nomath]{lmodern} \RequirePackage[utf8]{inputenc} -\RequirePackage{tikz} -\RequirePackage{minibox} -\RequirePackage[margin=3cm]{geometry} -\RequirePackage{graphicx} -\RequirePackage{pdfpages} +\RequirePackage[T1]{fontenc} +\RequirePackage[ngerman]{babel} + +%% Page formatting +%\RequirePackage[margin=3cm]{geometry} +\RequirePackage[ + a4paper, + lmargin = {2cm}, + rmargin = {2cm}, + tmargin = {2cm}, + bmargin = {1.5cm}, + includeheadfoot +]{geometry} \RequirePackage{fancyhdr} -\RequirePackage{lastpage} -\RequirePackage{todo} + +%% "Default" Document Packages +\RequirePackage{float} %[H] option prevents floating +\RequirePackage{csquotes} %Quotation with \enquote{} command +\RequirePackage{graphicx} \RequirePackage{listings} -\RequirePackage{enumitem} +\RequirePackage[shortlabels]{enumitem} \RequirePackage{hyperref} -\RequirePackage{xcolor} +\RequirePackage[fixpdftex,dvipsnames]{xcolor} +\RequirePackage{pdfpages} +\RequirePackage[fleqn]{mathtools} +\RequirePackage{amssymb} + +%% "Advanced" Document Packages +\RequirePackage{tikz} +\RequirePackage{minibox} +\RequirePackage{lastpage} \usetikzlibrary{positioning,backgrounds} -%infobox +%% For the infoboxes \RequirePackage[many]{tcolorbox} \RequirePackage[framemethod=tikz]{mdframed} -\RequirePackage{xcolor} \RequirePackage[tikz]{bclogo} \usetikzlibrary{matrix} \tcbuselibrary{listings,breakable} -% hyperref setup +%% Testing... +\RequirePackage{lipsum} +%\RequirePackage{todo} + + +%%%%%%%%%%%%%%%%%%% +% Package Setup % +%%%%%%%%%%%%%%%%%%% + +%% Hyperref Setup +\definecolor{linkColor}{HTML}{0000FF} \hypersetup{ - allbordercolors=0 0 1, - pdfborderstyle={/S/U/W 1} + allbordercolors=linkColor, + pdfborderstyle={/S/U/W 1}, + pdfsubject=\kurs, + pdfkeywords={\kurs,\semester}, + unicode } -%%%%%%%%%%%% -% colors % -%%%%%%%%%%%% -\definecolor{javared}{rgb}{0.6,0,0} % for strings -\definecolor{javagreen}{rgb}{0.25,0.5,0.35} % comments -\definecolor{javapurple}{rgb}{0.5,0,0.35} % keywords -\definecolor{javadocblue}{rgb}{0.25,0.35,0.75} -\definecolor{javablue}{rgb}{0.0,0.0,1.0} +%% Fancyhdr Header +\pagestyle{myheadings} +\fancyhead[L]{\kurs~\semester~- Übungsblatt \sheetNumber} +\fancyhead[R]{Seite \thepage{} von \pageref*{LastPage}} + +%% Colors for Java listings +\definecolor{javaKeywords}{HTML}{000080} +\definecolor{javaTypes}{HTML}{000000} +\definecolor{javaInstances}{HTML}{660E7A} +\definecolor{javaString}{rgb}{0.6,0,0} +\definecolor{javaComments}{HTML}{606060} \definecolor{unimportentgrey}{rgb}{0.6,0.6,0.6} -%%%%%%%%%%%% -% listings % -%%%%%%%%%%%% + +%% Configuration of Java listings \lstset{ - literate=% - {Ö}{{\"O}}1 - {Ä}{{\"A}}1 - {Ü}{{\"U}}1 - {ß}{{\ss}}1 - {ü}{{\"u}}1 - {ä}{{\"a}}1 - {ö}{{\"o}}1, - language=Java, - basicstyle=\ttfamily, - keywordstyle=\color{javapurple}\bfseries, - stringstyle=\color{javared}, - commentstyle=\color{javagreen}, - identifierstyle=\color{javablue}, - keywordstyle=[2]{\color{javared}}, - morecomment=[s][\color{javadocblue}]{/**}{*/}, - numbers=left, - numberstyle=\footnotesize\color{black}, - stepnumber=1, - numbersep=10pt, - tabsize=4, - showspaces=false, - showstringspaces=false, - frame=single, - breaklines=true, - postbreak=\mbox{\textcolor{unimportentgrey}{$\hookrightarrow$}\space}, - escapechar=§ + % Latin-1 compatibility: + literate={Ö}{{\"O}}1{Ä}{{\"A}}1{Ü}{{\"U}}1{ß}{{\ss}}1{ü}{{\"u}}1{ä}{{\"a}}1{ö}{{\"o}}1, % Me LaTeX do not know UNICODE + % Formatting + basicstyle={\ttfamily\small}, + language=Java, + % Syntax Highlithing + keywordstyle={\bfseries\color{javaKeywords}}, + otherkeywords={}, + keywordstyle=[2]{\color{javaTypes}}, %\itshape %% Nicht zu 100% zufrieden + keywords=[2]{String,Game,DemoTask,RandomClass,Position,Dog,Hund,Simulation,Coin,Position,DemoTaskVerifier,Main}, % Wenn ich "PlayfieldModifier" hinzufüge, passieren seltsame Dinge bei Blatt 1 Ex 4... und ich habe keine Ahnung warum. + identifierstyle={\bfseries\color{javaInstances}}, + stringstyle={\color{javaString}}, %\bfseries + commentstyle={\color{javaComments}}, + morecomment=[l]{*}, + % Code Lines + numbers=left, + numberstyle=\footnotesize\color{javaComments}, + stepnumber=1, + numbersep=10pt, + % Misc + tabsize=4, + showspaces=false, + showstringspaces=false, + frame=single, + breaklines=true, + postbreak=\mbox{\textcolor{unimportentgrey}{$\hookrightarrow$}\space}, + escapechar=§ } -\let\origthelstnumber\thelstnumber - \makeatletter - \newcommand*\Suppressnumber{ - \lst@AddToHook{OnNewLine}{ - \let\thelstnumber\relax - \advance\c@lstnumber-\@ne\relax - } - } - - \newcommand*\Reactivatenumber{ - \lst@AddToHook{OnNewLine}{ - \let\thelstnumber\origthelstnumber - \advance\c@lstnumber\@ne\relax} - } - -%%%%%%%% -% Misc % -%%%%%%%% -\newcommand{\q}[1]{\glqq#1\grqq\ } %German quotation - -\newcommand{\optional}{{\color{javagreen} \textbf{(Optional)} }} % mark optional tasks (includes space) - -%%%%%%%%%%%%%% -% Main Title % -%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%% +% Customized Commands % +%%%%%%%%%%%%%%%%%%%%%%% + + +%% Main Title \renewcommand{\maketitle}{ - \thispagestyle{plain} - \includegraphics[height=1cm]{../logos/logo-uni.pdf} - \hfill\includegraphics[height=3cm]{../logos/logo-fius.png} - \begin{center} - \Large\textbf{Übungsblatt \sheetNumber}\\ - \large\kurs (\semester) - \normalsize - \end{center} + \thispagestyle{plain} + \includegraphics[height=1cm]{../logos/logo-uni.pdf} + \hfill\includegraphics[height=3cm]{../logos/logo-fius.png} + \begin{center} + \Large\textbf{Übungsblatt \sheetNumber}\\ + \large\kurs (\semester) + \normalsize + \end{center} } +%% Quotation +\newcommand{\q}[1]{\glqq#1\grqq\ } %German quotation - TODO: Mit \enquote ersetzen + +%% "Optional" Command +\definecolor{optional}{HTML}{CC7832} +\newcommand{\optional}{{\color{javaString}\textbf{(Optional)} }} % mark optional tasks (includes space) + +%% (Subjective) better to read line breaks +\renewcommand{\newline}{\vskip0.15cm} + +\newcommand{\hint}{\textit{Hinweis:}~} +\newcommand{\important}{{\color{red}\bfseries Wichtig:}~} + %%%%%%%%%%%%%%%%%%%% % Excercise titles % %%%%%%%%%%%%%%%%%%%% + \newcounter{excerciseCounter}\setcounter{excerciseCounter}{1} \newcommand{\excercise}[1]{ - \ifthenelse{\value{excerciseCounter}=1}{}{ - \vspace{2em} - } - \section{#1} - %\large\textbf{Aufgabe \arabic{excerciseCounter}:} #1\normalsize\\ - \medskip + \ifthenelse{\value{excerciseCounter}=1}{}{ + \vspace{2em} + } + \section{-\quad#1} + %\large\textbf{Aufgabe \arabic{excerciseCounter}:} #1\normalsize\\ + \medskip } \makeatletter -\renewcommand\thesection{Aufgabe \@arabic\c@section:} +\renewcommand\thesection{Aufgabe \@arabic\c@section} \makeatother \setenumerate{label=\alph*)} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Automatic Document inclusion % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \newcommand{\addexcercise}{ - \IfFileExists{exercise-\arabic{excerciseCounter}.tex}{ - \begin{samepage} - \input{exercise-\arabic{excerciseCounter}.tex} - \pagebreak[4] - \end{samepage} - \stepcounter{excerciseCounter} - \addexcercise - }{} - } - - - -%%%%%%%%%% -% header % -%%%%%%%%%% - \pagestyle{myheadings} - \fancyhead[L]{\kurs \ (\semester) - Übungsblatt \sheetNumber} - \fancyhead[R]{Seite \thepage{} von \pageref*{LastPage}} - %\rightmark{test} - %\runningheadrule -% \runningheader{\coursename\ (\semestershort) -- \"Ubungsblatt \exercisenumber\ \ifprintanswers{\textbf{{\color{red}{ \fbox{L\"osung}}}}}\fi}{}{Seite \thepage\ von \numpages} + \IfFileExists{exercise-\arabic{excerciseCounter}.tex}{ + \begin{samepage} + \input{exercise-\arabic{excerciseCounter}.tex} + \pagebreak[4] + \end{samepage} + \stepcounter{excerciseCounter} + \addexcercise + }{} +} + %%%%%%%%%%% % Infobox % %%%%%%%%%%% -\definecolor{bgblue}{RGB}{245,243,253} -\definecolor{ttblue}{RGB}{91,194,224} \mdfdefinestyle{mystyle}{% - rightline=true, - innerleftmargin=10, - innerrightmargin=10, - outerlinewidth=3pt, - topline=false, - rightline=true, - bottomline=false, - skipabove=\topsep, - skipbelow=\topsep + rightline=true, + innerleftmargin=10, + innerrightmargin=10, + outerlinewidth=2pt, + topline=false, + rightline=true, + bottomline=false, + skipabove=\topsep, + skipbelow=\topsep } \newtcolorbox{myboxi}[1][]{ - breakable, - title=#1, - colback=white, - colbacktitle=white, - coltitle=black, - fonttitle=\bfseries, - bottomrule=0pt, - toprule=0pt, - leftrule=3pt, - rightrule=3pt, - titlerule=0pt, - arc=0pt, - outer arc=0pt, - colframe=black, + breakable, + title=#1, + colback=white, + colbacktitle=white, + coltitle=black, + fonttitle=\bfseries, + bottomrule=0pt, + toprule=0pt, + leftrule=3pt, + rightrule=3pt, + titlerule=0pt, + arc=0pt, + outer arc=0pt, + colframe=black, } \newtcolorbox{Infobox}[1][]{ - breakable, - freelance, - title=#1, - colback=white, - colbacktitle=white, - coltitle=black, - fonttitle=\bfseries, - bottomrule=0pt, - boxrule=0pt, - colframe=white, - overlay unbroken and first={ - \draw[blue!75!black,line width=3pt] - ([xshift=5pt]frame.north west) -- - (frame.north west) -- - (frame.south west); - \draw[blue!75!black,line width=3pt] - ([xshift=-5pt]frame.north east) -- - (frame.north east) -- - (frame.south east); - }, - overlay unbroken app={ - \draw[blue!75!black,line width=3pt,line cap=rect] - (frame.south west) -- - ([xshift=5pt]frame.south west); - \draw[blue!75!black,line width=3pt,line cap=rect] - (frame.south east) -- - ([xshift=-5pt]frame.south east); - }, - overlay middle and last={ - \draw[blue!75!black,line width=3pt] - (frame.north west) -- - (frame.south west); - \draw[blue!75!black,line width=3pt] - (frame.north east) -- - (frame.south east); - }, - overlay last app={ - \draw[blue!75!black,line width=3pt,line cap=rect] - (frame.south west) -- - ([xshift=5pt]frame.south west); - \draw[blue!75!black,line width=3pt,line cap=rect] - (frame.south east) -- - ([xshift=-5pt]frame.south east); - }, + breakable, + freelance, + title=#1, + colback=white, + colbacktitle=white, + coltitle=black, + fonttitle=\bfseries, + bottomrule=0pt, + boxrule=0pt, + colframe=white, + overlay unbroken and first={ + \draw[color=javaInstances,line width=2pt] + ([xshift=5pt]frame.north west) -- + (frame.north west) -- + (frame.south west); + \draw[color=javaInstances,line width=2pt] + ([xshift=-5pt]frame.north east) -- + (frame.north east) -- + (frame.south east); + }, + overlay unbroken app={ + \draw[color=javaInstances,line width=2pt,line cap=rect] + (frame.south west) -- + ([xshift=5pt]frame.south west); + \draw[color=javaInstances,line width=2pt,line cap=rect] + (frame.south east) -- + ([xshift=-5pt]frame.south east); + }, + overlay middle and last={ + \draw[color=javaInstances,line width=2pt] + (frame.north west) -- + (frame.south west); + \draw[color=javaInstances,line width=2pt] + (frame.north east) -- + (frame.south east); + }, + overlay last app={ + \draw[color=javaInstances,line width=2pt,line cap=rect] + (frame.south west) -- + ([xshift=5pt]frame.south west); + \draw[color=javaInstances,line width=2pt,line cap=rect] + (frame.south east) -- + ([xshift=-5pt]frame.south east); + }, } -\renewcommand\bcStyleTitre[1]{\large\textcolor{ttblue}{#1}} - -\newcommand{\teamsaufgabe}[1]{{\color{purple} Hier findet ihr ein Quiz, dass das gelernte abfragt: \textbf{#1}}} %TODO: anpassen auf Kahot oder so. - %%%%%%%%%%%%%%%%%%%%%% % document structure % %%%%%%%%%%%%%%%%%%%%%% + \def\prepart{} \newcommand{\preamble}[1]{\def\prepart{#1}} \newcommand{\makedocument}{ - \begin{document} - \maketitle - \prepart - \pagestyle{fancy} - \addexcercise - \end{document} - } + \hypersetup{ + pdftitle=\kurs~\semester~-~Übungsblatt~\sheetNumber + } + \begin{document} + \maketitle + \prepart + \pagestyle{fancy} + \IfFileExists{intro.tex}{ + \begin{samepage} + \input{intro.tex} + \end{samepage} + }{} + \addexcercise + \end{document} +} \ No newline at end of file