Zum Inhalt springen

Richtig Zitieren in LaTeX

Korrektes Zitieren ist das Herzstück wissenschaftlichen Arbeitens. Hier wird erklärt, wie ihr jeden Typ von Quelle in eurer IT-Diplomarbeit korrekt zitiert – mit konkreten LaTeX-Beispielen.

Zitierarten: Direkt vs. Indirekt

Direktes Zitat (wörtlich)

Den exakten Wortlaut übernehmen – in Anführungszeichen, mit Seitenangabe:

% Kurzes direktes Zitat (unter 40 Wörter):
% (nur die Seitenzahl angeben - biblatex ergänzt "S." bzw. "p." automatisch)
\textcite[42]{tanenbaum2016} definiert ein Protokoll als
\enquote{eine Vereinbarung zwischen den kommunizierenden
Parteien darüber, wie die Kommunikation ablaufen soll}.

% Langes direktes Zitat (ab 40 Wörter) - eingerückt:
\begin{quote}
  Ein Protokoll ist eine Vereinbarung zwischen den
  kommunizierenden Parteien darüber, wie die Kommunikation
  ablaufen soll. [...] Es legt fest, welche Nachrichten
  gesendet werden können und welche Antworten darauf
  möglich sind. \parencite[42-43]{tanenbaum2016}
\end{quote}

Indirektes Zitat (paraphrasiert)

In eigenen Worten wiedergeben – keine Anführungszeichen, aber mit Quellenangabe:

% Indirektes Zitat mit \parencite (numerischer Stil -> [1]):
REST ist ein Architekturstil für verteilte Systeme, der auf
zustandslosen Client-Server-Interaktionen basiert
\parencite{fielding2000}.

% Mit Seitenangabe:
Die Zustandslosigkeit bedeutet, dass jede Anfrage alle
nötigen Informationen enthält \parencite[S.~76]{fielding2000}.

% Autor im Text erwähnen:
\textcite{fielding2000} beschreibt REST als einen
Architekturstil, der auf sechs Grundprinzipien aufbaut.

% Mehrere Quellen:
Verschiedene Studien zeigen, dass Node.js bei I/O-intensiven
Anwendungen besonders performant ist
\parencite{tilkov2015, nodeperf2023}.

Zitier-Befehle (numerischer Stil)

BefehlAusgabe (Beispiel)Wann verwenden
\cite{key}[1]Standardzitat
\parencite{key}[1]Am Satzende (wie \cite im numerischen Stil)
\textcite{key}Tanenbaum [1]Autor im Satz erwähnen
\cite[153]{key}[1, S. 153]Buch, eine Seite
\cite[153-156]{key}[1, S. 153–156]Buch, mehrere Seiten
\cite{a,b,c}[1, 2, 3]Mehrere Quellen
\citeauthor{key}TanenbaumNur Autorname
\citeyear{key}2016Nur Jahreszahl

So sehen die Zitate im gerenderten PDF aus

Links steht der LaTeX-Code, rechts das Ergebnis im fertigen PDF. Die HTL-Vorlage nutzt den numerischen Stil, daher erscheinen Quellen als [1], [2] usw.:

LaTeX-Code
REST basiert auf Zustandslosigkeit
\parencite{fielding2000}.
Im PDF
REST basiert auf Zustandslosigkeit [1].
LaTeX-Code
\textcite{tanenbaum2016} beschreibt
Netzwerkprotokolle im Detail.
Im PDF
Tanenbaum und Wetherall [2] beschreiben Netzwerkprotokolle im Detail.
LaTeX-Code
Das TCP-Protokoll wird ausführlich
beschrieben \cite[153]{tanenbaum2016}.
Im PDF
Das TCP-Protokoll wird ausführlich beschrieben [2, S. 153].
LaTeX-Code
Der Verbindungsaufbau umfasst mehrere
Schritte \cite[153-156]{tanenbaum2016}.
Im PDF
Der Verbindungsaufbau umfasst mehrere Schritte [2, S. 153–156].
LaTeX-Code
Verschiedene Ansätze existieren
\parencite{fielding2000, tanenbaum2016}.
Im PDF
Verschiedene Ansätze existieren [1, 2].

Die Nummer im Text – etwa [2] aus dem Beispiel oben – verweist auf genau diesen Eintrag im Literaturverzeichnis. Aus einem Eintrag in der literatur.bib wird dabei automatisch der fertig formatierte Verweis:

literatur.bib
@book{tanenbaum2016,
  author    = {Tanenbaum, Andrew S. and Wetherall, David J.},
  title     = {Computer Networks},
  year      = {2016},
  edition   = {5},
  publisher = {Pearson},
}
Im Literaturverzeichnis
Literatur
[2]Andrew S. Tanenbaum und David J. Wetherall. Computer Networks. 5. Aufl. Pearson, 2016.
Nummer statt Autor-Jahr
Ihr müsst die Nummern nicht selbst vergeben – biblatex nummeriert automatisch. Wollt ihr stattdessen den Autor-Jahr-Stil (Tanenbaum, 2016), ändert in der Vorlage die biblatex-Option auf style=authoryear (oder style=apa).
Seitenangaben (Informatik: ACM/IEEE)
Seitenangaben werden vor allem bei Büchern gemacht. Ihr gebt nur die Zahl an – biblatex ergänzt automatisch Kürzel und Halbgeviertstrich: eine Seite → [7, S. 153] (international: p. 153), mehrere Seiten → [7, S. 153–156] (international: pp. 153–156). In deutschsprachigen Arbeiten erscheint S., in englischsprachigen p. bzw. pp. – babel stellt das automatisch um.
Reihenfolge im Literaturverzeichnis
Das vollständige Literaturverzeichnis steht am Ende der Arbeit und ist – wie in der Informatik üblich – alphabetisch nach Autor sortiert (biblatex-Standard: sorting=nyt). Die Nummern [1], [2], … folgen dieser alphabetischen Reihenfolge. (Nur falls gewünscht: mit sorting=none wird stattdessen nach Reihenfolge der Zitierung sortiert.)

Klassische BibTeX-Befehle: \cite und \citep

Neben den BibLaTeX/APA-Befehlen gibt es die klassischen BibTeX-Befehle, die in vielen Vorlagen noch verwendet werden:

BefehlAusgabe (Beispiel)Wann verwenden
\cite{key}Tanenbaum (2016) oder [1]Standardzitat – je nach Stil als Autor-Jahr oder Nummer
\citep{key}(Tanenbaum, 2016) oder [1]Zitat in Klammern am Satzende (natbib-Paket)
\citet{key}Tanenbaum (2016)Autor im Text mit Jahr in Klammern (natbib-Paket)
\citep[S.~42]{key}(Tanenbaum, 2016, S. 42)Klammerzitat mit Seitenangabe
\citep{key1,key2}(Tanenbaum, 2016; Fielding, 2000)Mehrere Quellen in Klammern
Beispiele mit \cite und \citep
% Einfaches Zitat:
REST wurde von \cite{fielding2000} eingeführt.
% Ergibt: REST wurde von Fielding (2000) eingeführt.

% Klammerzitat am Satzende:
REST basiert auf Zustandslosigkeit \citep{fielding2000}.
% Ergibt: REST basiert auf Zustandslosigkeit (Fielding, 2000).

% Mit Seitenangabe:
Die Architektur wird detailliert beschrieben \citep[S.~76]{fielding2000}.
% Ergibt: ... (Fielding, 2000, S. 76).

% Autor im Text + Jahr in Klammern:
\citet{tanenbaum2016} beschreibt Netzwerkprotokolle als...
% Ergibt: Tanenbaum (2016) beschreibt...

% Mehrere Quellen:
Verschiedene Autoren bestätigen dies \citep{fielding2000, tanenbaum2016}.
% Ergibt: ... (Fielding, 2000; Tanenbaum, 2016).

Quellentypen in der .bib-Datei

1. Fachbuch

@book{martin2009,
  author    = {Martin, Robert C.},
  title     = {Clean Code: A Handbook of Agile Software Craftsmanship},
  year      = {2009},
  publisher = {Prentice Hall},
  isbn      = {978-0-13-235088-4},
}

% Im Text:
% \textcite{martin2009} empfiehlt, Funktionen kurz zu halten.

2. Wissenschaftlicher Artikel

@article{fielding2002,
  author    = {Fielding, Roy T. and Taylor, Richard N.},
  title     = {Principled Design of the Modern Web Architecture},
  journal   = {ACM Transactions on Internet Technology},
  year      = {2002},
  volume    = {2},
  number    = {2},
  pages     = {115--150},
  doi       = {10.1145/514183.514185},
}

3. Konferenzbeitrag

@inproceedings{dean2004,
  author    = {Dean, Jeffrey and Ghemawat, Sanjay},
  title     = {MapReduce: Simplified Data Processing on Large Clusters},
  booktitle = {Proceedings of the 6th OSDI},
  year      = {2004},
  pages     = {137--150},
  publisher = {USENIX Association},
}

4. Webseite / Online-Dokumentation

@online{reactdocs2024,
  author    = {{Meta Platforms}},
  title     = {React Documentation: Getting Started},
  year      = {2024},
  url       = {https://react.dev/learn},
  urldate   = {2024-12-15},
}

% WICHTIG: urldate ist das Datum, an dem ihr die Seite
% zuletzt aufgerufen habt!

% Im Text:
% Die offizielle React-Dokumentation beschreibt den
% komponentenbasierten Ansatz \parencite{reactdocs2024}.

5. RFC / Technischer Standard

@techreport{rfc7231,
  author      = {Fielding, Roy T. and Reschke, Julian},
  title       = {Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content},
  year        = {2014},
  type        = {RFC},
  number      = {7231},
  institution = {Internet Engineering Task Force},
  url         = {https://www.rfc-editor.org/rfc/rfc7231},
}

6. Software / Code-Repository

@software{expressjs2024,
  author    = {{OpenJS Foundation}},
  title     = {Express.js},
  version   = {4.18.2},
  year      = {2024},
  url       = {https://github.com/expressjs/express},
  urldate   = {2024-12-15},
}

% Im Text:
% Für die Implementierung wurde Express.js in Version
% 4.18.2 verwendet \parencite{expressjs2024}.

7. Diplomarbeit / Abschlussarbeit

@thesis{huber2023,
  author      = {Huber, Markus and Wagner, Lisa},
  title       = {Entwicklung einer IoT-Plattform für Smart Home},
  year        = {2023},
  type        = {Diplomarbeit},
  institution = {HTL Wiener Neustadt},
}

Bilder und Grafiken zitieren

Eigene Bilder/Screenshots

Eigene Bilder und Screenshots müsst ihr nicht zitieren, aber klar als eigene Darstellung kennzeichnen. Da die Diplomarbeit von mehreren Teammitgliedern geschrieben wird, muss immer der Name des Erstellers angegeben werden:

\begin{figure}[htbp]
  \centering
  \includegraphics[width=0.8\textwidth]{screenshot-dashboard.png}
  \caption{Dashboard der entwickelten Webanwendung
    (eigene Darstellung, Max Mustermann)}
  \label{fig:dashboard}
\end{figure}

% Weitere Beispiele:
\caption{Datenbankschema (eigene Darstellung, Lisa Huber)}
\caption{Architekturdiagramm (eigene Darstellung, Tom Wagner)}
\caption{Screenshot der Login-Seite (eigene Darstellung, Max Mustermann)}

Bilder aus fremden Quellen

Fremde Bilder müssen immer mit Quelle in der Caption zitiert werden:

\begin{figure}[htbp]
  \centering
  \includegraphics[width=0.6\textwidth]{rest-architektur.png}
  \caption{REST-Architektur nach dem Client-Server-Modell
    (Quelle: \cite{fielding2000}, S.~78)}
  \label{fig:rest-architektur}
\end{figure}

% Alternative Formulierungen:
% \caption{... (entnommen aus \cite{fielding2000})}
% \caption{... (in Anlehnung an \cite{fielding2000})}
% \caption{... (Quelle: \cite{reactdocs2024})}

Selbst erstellte Grafiken basierend auf fremden Daten

Wenn ihr eine eigene Grafik erstellt, aber die Daten aus einer Quelle stammen:

\begin{figure}[htbp]
  \centering
  \includegraphics[width=0.7\textwidth]{benchmark-vergleich.png}
  \caption{Performance-Vergleich der Frameworks
    (eigene Darstellung, Max Mustermann,
    basierend auf Daten von \cite{techempower2024})}
  \label{fig:benchmark}
\end{figure}

Bilder mit Creative-Commons-Lizenz

\begin{figure}[htbp]
  \centering
  \includegraphics[width=0.5\textwidth]{network-topology.png}
  \caption{Netzwerktopologie eines Mesh-Netzwerks
    (Quelle: \cite{wikimedia2024}, CC BY-SA 4.0)}
  \label{fig:mesh}
\end{figure}

Tabellen zitieren

Eigene Tabelle mit eigenen Daten

\begin{table}[htbp]
  \centering
  \caption{Messergebnisse der Ladezeiten (eigene Messung)}
  \label{tab:ladezeiten}
  \begin{tabular}{lrr}
    \toprule
    Seite & Ohne Cache (ms) & Mit Cache (ms) \\
    \midrule
    Startseite & 1240 & 180 \\
    Produktliste & 2100 & 350 \\
    \bottomrule
  \end{tabular}
\end{table}

Tabelle mit Daten aus einer Quelle

\begin{table}[htbp]
  \centering
  \caption{Verbreitung von Programmiersprachen 2024
    (Daten aus \cite{stackoverflow2024})}
  \label{tab:sprachen}
  \begin{tabular}{lr}
    \toprule
    Sprache & Anteil \\
    \midrule
    JavaScript & 62,3\% \\
    Python & 51,9\% \\
    TypeScript & 38,5\% \\
    \bottomrule
  \end{tabular}
\end{table}

Quellcode / Listings zitieren

Eigener Code

Euren eigenen Code müsst ihr nicht zitieren, aber klar als euer Werk erkennbar machen:

\begin{lstlisting}[language=Python,
  caption={Implementierung der Authentifizierung (eigene Implementierung)},
  label={lst:auth}]
def authenticate(username, password):
    user = db.find_user(username)
    if user and verify_hash(password, user.password_hash):
        return create_token(user)
    return None
\end{lstlisting}

Code aus einer fremden Quelle

\begin{lstlisting}[language=JavaScript,
  caption={Express.js Middleware-Beispiel
    (Quelle: \cite{expressjs2024})},
  label={lst:middleware}]
app.use((req, res, next) => {
  console.log(`${req.method} ${req.url}`);
  next();
});
\end{lstlisting}

Code basierend auf einem Tutorial/Beispiel (angepasst)

\begin{lstlisting}[language=Java,
  caption={Datenbankverbindung
    (adaptiert nach \cite{spring2024})},
  label={lst:dbconnection}]
@Configuration
public class DatabaseConfig {
    @Bean
    public DataSource dataSource() {
        // Angepasste Konfiguration für das Projekt
        return new HikariDataSource(hikariConfig());
    }
}
\end{lstlisting}

Code aus einem Code-Repository

% In der .bib-Datei:
@software{jwtlib2024,
  author  = {Auth0},
  title   = {node-jsonwebtoken},
  version = {9.0.2},
  year    = {2024},
  url     = {https://github.com/auth0/node-jsonwebtoken},
  urldate = {2024-12-15},
}

% Im Listing:
\begin{lstlisting}[language=JavaScript,
  caption={JWT-Token-Erstellung mit jsonwebtoken
    (Quelle: \cite{jwtlib2024})},
  label={lst:jwt}]
const jwt = require('jsonwebtoken');
const token = jwt.sign({ userId: user.id }, SECRET, {
  expiresIn: '24h'
});
\end{lstlisting}

Spezielle Zitierfälle in IT-Arbeiten

API-Dokumentation zitieren

@online{stripeapi2024,
  author  = {{Stripe, Inc.}},
  title   = {Stripe API Reference: Payment Intents},
  year    = {2024},
  url     = {https://stripe.com/docs/api/payment_intents},
  urldate = {2024-12-10},
}

% Im Text:
% Die Stripe API verwendet Payment Intents zur Abwicklung
% von Zahlungen \parencite{stripeapi2024}.

Datenbank-Dokumentation zitieren

@manual{postgres2024,
  author  = {{The PostgreSQL Global Development Group}},
  title   = {PostgreSQL 16 Documentation},
  year    = {2024},
  url     = {https://www.postgresql.org/docs/16/},
  urldate = {2024-12-15},
}

% Im Text:
% PostgreSQL unterstützt seit Version 16 die
% JSON-Pfadabfrage \parencite[Kap.~9.16]{postgres2024}.

Stack Overflow erwähnen (nicht als Hauptquelle!)

% Nicht als Quelle im Literaturverzeichnis!
% Stattdessen im Text erwähnen:

% "Für die Lösung des CORS-Problems wurde ein Ansatz
% aus der Stack-Overflow-Community adaptiert."

% Oder als Fußnote:
Die Lösung basiert auf einem Community-Beitrag\footnote{%
  Vgl. \url{https://stackoverflow.com/a/12345678},
  abgerufen am 15.12.2024.}.

Übersicht: Was muss wie zitiert werden?

ElementEigenes WerkFremde Quelle
TextKein Zitat nötig\parencite{} oder \textcite{}
Bild/Screenshot„eigene Darstellung" in Caption„Quelle: \cite{}" in Caption
Diagramm/Grafik„eigene Darstellung"„nach \cite{}" oder „Daten aus \cite{}"
Tabelle„eigene Messung/Erhebung"„Daten aus \cite{}" in Caption
Code-Listing„eigene Implementierung"„Quelle: \cite{}" oder „adaptiert nach \cite{}"
Algorithmus„eigener Entwurf"„nach \cite{}"
FormelKein Zitat nötigQuelle im umgebenden Text angeben
Merke
Im Zweifelsfall: Lieber zitieren! Ein Zitat zu viel schadet nie. Ein fehlendes Zitat kann als Plagiat gewertet werden.