2
1

Ich bin gerade am Schreiben meiner Abschlussarbeit. Da ich für die Uni eine freigebbare Version haben muss, soll ich die sensiblen Daten in einen Anhang geben. In der vollständigen Version soll dieser vorhanden sein, in der freigebbaren Version soll dieser nicht sichtbar sein.

Da ich auf Abbildungen/Tabellen im Anhang verweise, kann ich das Problem nicht durch selektives Kompilieren lösen, weil ja ansonsten ?? anstelle der Querweise stehen würden. Gibt es eine Methode, dass ich zwar die Querverweise auf die Inhalte des Anhangs einbinde, aber den Inhalt selbst nicht ins PDF einfüge? Ein Workaround wäre natürlich, dass ich die PDF zuschneide, allerdings wäre eine Lösung über if/else oder Ähnliches eleganter. Ein möglicher Ansatz könnte über include und includeonly erfolgen, allerdings habe ich da keine Erfahrung und deshalb wollte ich euch fragen, ob jemand Erfahrungen mit ähnlichen Themen hatte.

So hätte ich mir das ungefähr vorgestellt:

Öffne in Overleaf
 if(gesperrter Anhang)
  -- Kompiliere mit allen Querverweisen 
  -- Ersetze Inhalt von Anhang durch Überschrift "Anhang" + Text "Dieser Teil der Arbeit ist in dieser 
     Verions nicht verfügbar"
else
  -- Normales Erstellen des Dokuments

gefragt 29 Aug '17, 11:21

Christian's gravatar image

Christian
2123
Akzeptiert-Rate: 0%

bearbeitet 17 Okt '17, 09:22

saputello's gravatar image

saputello
11.1k174365


Genau für so etwas ist \includeonly da. Du packst einfach den gesamten Anhang in eine eigene Datei, die per \include geladen wird. Verwendest Du dann bei einem finalen LaTeX-Lauf einen \includeonly-Befehl, der diese Datei nicht enthält, so wird sie zwar nicht geladen, die Links und Querverweise auf diesen Teil und die Verzeichniseinträge bleiben aber erhalten. Noch einfacher geht es ggf. mit excludeonly. Da gibt man dann statt der Dateien, die man haben will, einfach die eine Datei an, die man nicht haben will.

Mit excludeonly könnte das beispielsweise so aussehen. Angenommen, wir haben folgende Datei:

Öffne in Overleaf
\begin{filecontents}{\jobname-anhang.tex}
  \appendix
  \chapter{Kapitel im Anhang}
  \label{cha:app}
  \begin{figure}
    \centering
    \rule{.5\textwidth}{.5\textwidth}
    \caption{Ein Quadrat}
    \label{fig:square}
  \end{figure}
\end{filecontents}
\documentclass{book}

\usepackage{excludeonly}
%\excludeonly{\jobname-anhang}

\usepackage{mwe}

\begin{document}
\tableofcontents
\listoffigures
\chapter{Ein Kapitel}
Siehe auch das Quadrat in Abbildung~\ref{fig:square} in Anhang~\ref{cha:app}.

\include{\jobname-anhang}
\end{document}

Jetzt machen wir zwei LaTeX-Läufe und erhalten als Ergebnis ein achtseitiges Dokument mit Anhang.

Nun entfernen wir das % vor \excludeonly{\jobname-anhang} und machen einen weiteren LaTeX-Lauf. Wir erhalten dann ein fünfseitiges Dokument mit vollständigen Verzeichnissen und Verweisen in den Anhang aber eben ohne den Anhang selbst.

Wollte man stattdessen einen Ersatztext, so müsste man in der Tat etwas weiter gehen:

Öffne in Overleaf
\begin{filecontents}{\jobname-anhang.tex}
  \chapter{Kapitel im Anhang}
  \label{cha:app}
  \begin{figure}
    \centering
    \rule{.5\textwidth}{.5\textwidth}
    \caption{Ein Quadrat}
    \label{fig:square}
  \end{figure}
\end{filecontents}
\documentclass{book}

\usepackage{mwe}

\newif\ifappendix
\newcommand*{\useappendix}[1]{%
  \expandafter\let\expandafter\ifappendix\csname if#1\endcsname
  \ifappendix
    \newcommand*{\showappendix}{%
      \appendix
      \input{\jobname-anhang.tex}% Hier genügt \input
    }%
  \else
    \nofiles% aux-Datei und Verzeichnisse nicht mehr verändern
    \newcommand*{\showappendix}{%
      \appendix
      \chapter{Gesperrte Inhalte}
      Diese Inhalte sind in der freien Version nicht verfügbar da sie
      Firmengeheimnisse beinhalten.
    }
  \fi
}

\useappendix{true}

\begin{document}
\tableofcontents
\listoffigures
\chapter{Ein Kapitel}
Siehe auch das Quadrat in Abbildung~\ref{fig:square} in Anhang~\ref{cha:app}.

\showappendix
\end{document}

Auch hier macht man zunächst so viele LaTeX-Läufe, bis das Dokument fertig ist. Ganz zum Schluss ändert man dann

Öffne in Overleaf
\useappendix{true}

in

Öffne in Overleaf
\useappendix{false}

Und macht einen weiteren LaTeX-Lauf.

Es sei darauf hingewiesen, dass bei beiden Beispielen im Falle der Verwendung von hyperref die Links in den Anhang bei der freien Version ins Leere führen. Zwar würde der Kapitel-Link im zweiten Beispiel noch auf die richtige Seiten führen, der Link auf die Abbildung würde dagegen komplett ins Leere gehen (üblicherweise landet man dann wieder am Anfang des Dokuments).

Permanenter link

beantwortet 29 Aug '17, 15:39

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 17 Okt '17, 09:39

Perfekt! Danke für deine Antwort! Ich habe mir zwar die Doku von von includeonly angesehen, jedoch habe ich nicht verstanden, dass dies bereits die Lösung meiner Aufgabenstellung war. :P

(29 Aug '17, 15:57) Christian
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×28
×20
×14
×13

gestellte Frage: 29 Aug '17, 11:21

Frage wurde gesehen: 6,445 Mal

zuletzt geändert: 17 Okt '17, 09:39