KunterBuntesSeminar-WS09/Erste Schritte mit LaTeX/Quellcode Beispiel Seminararbeit

Aus Fachschaft_Informatik
Zur Navigation springen Zur Suche springen
Die druckbare Version wird nicht mehr unterstützt und kann Darstellungsfehler aufweisen. Bitte aktualisiere deine Browser-Lesezeichen und verwende stattdessen die Standard-Druckfunktion des Browsers.
\documentclass[a4paper,pointednumbers,abstracton]{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage{listings}

\usepackage{blindtext}

\usepackage{color}
\definecolor{DarkPurple}{rgb}{0.4,0.1,0.4}
\definecolor{DarkCyan}{rgb}{0.0,0.5,0.4}
\definecolor{LightLime}{rgb}{0.4,0.6,0.5}
\definecolor{Blue}{rgb}{0.0,0.0,1.0}

\usepackage{beramono}

% für Java-Bezeichner und -Keywords im Fließtext
\newcommand{\code}[1]{\small\lstinline[style=InlineJava]!#1!\normalsize}
%\newcommand{\code}[1]{\scriptsize\texttt{#1}\normalsize}

% für Listings mit Eintrag im Inhaltsverzeichnis
\newcommand{\newlisting}[2]{
\subsubsection*{Listing \ref{lst:#1}: #2}
\addcontentsline{toc}{subsubsection}{\ref{lst:#1}. #2}}

\lstdefinestyle{Java}
{
language=Java,
numbers=left,
firstnumber=1,
stepnumber=5,
numberfirstline,
numberstyle=\tiny\sffamily,
tabsize=5,
captionpos=b,
aboveskip=1em,
belowskip=1em,
columns=flexible,
xleftmargin=2em,
xrightmargin=1em,
frame=single,
frameround=tttt,
commentstyle=\itshape\color{LightLime},
keywordstyle=\bfseries\color{DarkPurple},
basicstyle=\footnotesize\ttfamily,
stringstyle=\color{Blue},
showstringspaces=false,
}

\lstdefinestyle{InlineJava}
{
language=Java,
columns=flexible,
basicstyle=\bfseries\footnotesize\ttfamily\color{DarkCyan},
showstringspaces=false,
}

\title{Titel der Arbeit}
\author{Vorname1 Nachname1, Vorname2 Nachname2}
\date{X. Monat 20ab}

\begin{document}

\sffamily
\maketitle

\thispagestyle{empty}

\vfill

\begin{center}
  Seminararbeit im Seminar

  \Large
  \vspace{0.5cm}
  \textbf{"`Titel des Seminars"'}
  \normalsize

  \vspace{0.3cm}
  im \{Winter/Sommer\}semester 20ab

  \vspace{0.5cm}
  Dozenten: Dozent 1, Dozent 2
\end{center}

\vfill

\scriptsize
\parbox{0.5\linewidth}{
  \parskip 0.3em
  Seminar 64-NMR im \{Winter/Sommer\}semester 20ab

  Arbeitsbereich Xylophonzugänge (XyZ)

  Department Informatik

  Universität Hamburg
}
\hfill
\parbox{4.2cm}{
  \includegraphics[height=2.0cm]{Bilder/logo-fbi}
  \hfill
  \includegraphics[height=2.0cm]{Bilder/logo-uhh}
}

\addtolength{\voffset}{2cm}

% Ende des Deckblatts, Anfang des Inhaltsverzeichnisses
\newpage

\addtolength{\voffset}{-2cm}

\normalsize
\rmfamily

\setcounter{tocdepth}{3}
\tableofcontents

% Anfang des Fließtextes
\newpage
\def\abstractname{Kurzfassung}

\begin{abstract}
Dieses Paper befasst sich mit Dingen. \blindtext{1}
\end{abstract}

\section{Einführung}

Das sind alles Dinge (vgl. \cite{Gamma1995}). Es gibt noch mehr Dinge (vgl.
\cite{Freeman2004}).

\blindtext

\section{Dinge}

\blindtext

Das erkennt man in Listing \ref{lst:helloworld}.

\section{Mehr Dinge}

\blindtext

\section{Zusammenfassung}

\blindtext

% Ende des Fließtextes
% Es folgt der Anhang
\newpage

% Beginn des Anhangs
\appendix
\addcontentsline{toc}{section}{Anhang}

\section*{Quelltext-Listings}
\addcontentsline{toc}{subsection}{Quelltext-Listings}

\newlisting{helloworld}{Hello World}

\lstinputlisting[name=HelloWorld,label=lst:helloworld,
caption={Hello World in Java},
title={\sffamily HelloWorld.java},
style=Java,inputencoding={latin1}]
{Listings/HelloWorld.java}

% Ende des Anhangs und des Inhaltstextes
% Es folgt noch das Literaturverzeichnis
\newpage

\addcontentsline{toc}{section}{Literatur}

\bibliographystyle{alphadin}
\bibliography{literatur}

\end{document}

literatur.bib:

@BOOK{Freeman2004,
  title = {Head First Design Patterns},
  publisher = {O'Reilly Media},
  year = {2004},
  author = {Freeman, Elisabeth and Freeman, Eric and Bates, Bert and Sierra,
	Kathy},
  address = {Sebastopol},
  howpublished = {Paperback}
}

@BOOK{Gamma1995,
  title = {Design Patterns: Elements of Reusable Object-Oriented Software},
  publisher = {Addison-Wesley},
  year = {1995},
  author = {Gamma, Erich and Helm, Richard and Johnson, Ralph and Vlissides,
	John},
  address = {Boston}
}

@BOOK{Gosling2005,
  title = {Java Language Specification},
  publisher = {Addison-Wesley},
  year = {2005},
  author = {Gosling, James and Joy, Bill and Steele, Guy and Bracha, Gilad},
  address = {Boston},
  edition = {Third Edition}
}

Listings/HelloWorld.java (als Latin1 abspeichern, Listings kann kein UTF-8!)

/**
 * Wie der Volksmund weiß, ist in Java alles eine
 * Klasse. Daher müssen wir zunächst eine Klasse 
 * definieren. Das geschieht durch das Schlüsselwort: 
 * "class" gefolgt vom Namen der Klasse. Die Definition,
 * also die eigentliche Programmierung der Klasse, folgt
 * innerhalb geschweifter Klammern.
 */
class HelloWorld {
    
    /**
     * Die "main"-Methode (Funktion) ist der Einstiegspunkt
     * des Programms. Sie wird von der Laufzeitumgebung
     * automatisch aufgerufen, wenn das Programm gestartet 
     * wird. Die Definition (Programmierung) der Methode erfolgt
     * anschließend innerhalb der geschweiften Klammern.
     *
     * @param args Die Methode bekommt ein Zeichenkettenarray 
     * als Parameter übergeben dass die Kommandozeilenparameter 
     * enthält (wird hier nicht verwendet).
     */
    public static void main(String[] args) {
        
        // Definiere eine Zeichenkette.
        String message = "Hello World!";
        
        // Gebe die Zeichenkette an der Konsole aus.
        System.out.println(message);
    }
}