Auch hier gefragt.


Ich möchte die Erstellung eines Tooltipdocumentes automatisieren.

Damit in main.tex übersetzt werden kann, muss tooltipsource.pdf vorhanden sein. tooltipsource.tex wollte ich dem Paket extract erstellen; und dann mittels arara kompilieren.

Allerdings lässt sich main.tex nur übersetzen, wenn tooltipsource.pdf bereits vorhanden ist.

Wie könnte ich das machen?

main.tex

Open in Online-Editor
% Tut NICHT mit nonstopmode
% arara: pdflatex: {action: nonstopmode}

% Tooltipdatei übersetzen (arara-console von Clemens Niederberger)
% arara: console: {command: "pdflatex tooltipsource.tex"}

% arara: pdflatex
% arara: pdflatex

\documentclass[12pt, paper=a4]{scrreprt}
\usepackage[active=true,
generate=tooltipsource.tex, % Tooltip-Dokument extrahieren
]{extract}

% Nur im extrahierten Dokument 
\begin{extract}
\usepackage[createtips]{fancytooltips}
\end{extract}

% Nur im Hauptdokument 
\usepackage[ngerman]{babel}

\usepackage[filename=tooltipsource, % PDF-Quelldatei der Tooltips
mouseover,
noextratext, % keine Sprechblasen bei Tooltips anzeigen
]{fancytooltips}

\begin{document}
% Nur im extrahierten Dokument 
\begin{extract}
\keytip{tooltipname}{Tooltipinhalt}
\end{extract}

Hier ein Tooltip 
\tooltip{Anzeigetext}{tooltipname}
\end{document}

tooltipsource.tex (dazu muss tooltipsource.pdf vorhanden sein!)

Open in Online-Editor
\documentclass[12pt,paper=a4]{scrreprt}
\usepackage[createtips]{fancytooltips}

\begin{document}
\keytip{tooltipname}{Tooltipinhalt}

\end{document}

gefragt 15 Sep '16, 11:41

cis's gravatar image

cis
7.1k12152241
Akzeptiert: 72%

bearbeitet 17 Sep '16, 23:24


Da beim ersten Durchlauf die Tooltip-Datei noch nicht vorhanden ist, darf man sie im ersten Durchlauf auch nicht verwenden. Dazu könnte man eine Fallunterscheidung bauen, bei der explizit auf das Vorhandensein der Datei getestet wird und fancytooltips nur dann geladen wird, wenn die Datei auch existiert. Im anderen Fall definiert man sich stattdessen für die verwendeten Befehle von fancytooltips passenden Ersatz, beispielsweise:

Öffne in Overleaf
% arara: pdflatex: {action: nonstopmode}

% Tooltipdatei übersetzen (arara-console von Clemens Niederberger)
% arara: console: {command: "pdflatex tooltipsource.tex"}

% arara: pdflatex
% arara: pdflatex

\documentclass[12pt, paper=a4]{scrreprt}
\usepackage[active=true,
generate=tooltipsource.tex, % Tooltip-Dokument extrahieren
]{extract}

% Nur im extrahierten Dokument 
\begin{extract}
\usepackage[createtips]{fancytooltips}
\end{extract}

% Nur im Hauptdokument 
\usepackage[ngerman]{babel}

\IfFileExists{tooltipsource.pdf}{%
  \usepackage[filename=tooltipsource, % PDF-Quelldatei der Tooltips
    mouseover,
    noextratext, % keine Sprechblasen bei Tooltips anzeigen
  ]{fancytooltips}
}{% Solange das PDF nicht existiert, eine Warnung ausgeben und die verwendeten
  % fancytooltips-Befehle ersetzen:
  \GenericWarning{}{Warning: tooltipsource.pdf muss noch erzeugt werden}%
  \newcommand*{\tooltip}[2]{\mbox{##1}}%
}

\begin{document}
% Nur im extrahierten Dokument 
\begin{extract}
\keytip{tooltipname}{Tooltipinhalt}
\end{extract}

Hier ein Tooltip 
\tooltip{Anzeigetext}{tooltipname}
\end{document}

Dass dabei beim ersten Lauf gar kein Tooltip erzeugt wird, bekommt man bei Verwendung von arara überhaupt nicht mit. Verwendet man arara nicht, erhält man eine Warnung, das Dokument läuft aber ohne Fehlermeldung durch.

Man kann sich den Aufwand für die Dummy-Befehle aber auch sparen und stattdessen für den ersten Lauf einfach eine Dummy-Datei statt tooltipsource.pdf verwenden. Hier bietet sich das von mwe bereitgestellte example-image.pdf an:

Öffne in Overleaf
% arara: pdflatex: {action: nonstopmode}

% Tooltipdatei übersetzen (arara-console von Clemens Niederberger)
% arara: console: {command: "pdflatex tooltipsource.tex"}

% arara: pdflatex
% arara: pdflatex

\documentclass[12pt, paper=a4]{scrreprt}
\usepackage[active=true,
generate=tooltipsource.tex, % Tooltip-Dokument extrahieren
]{extract}

% Nur im extrahierten Dokument 
\begin{extract}
\usepackage[createtips]{fancytooltips}
\end{extract}

% Nur im Hauptdokument 
\usepackage[ngerman]{babel}

\IfFileExists{tooltipsource.pdf}{%
  \usepackage[filename=tooltipsource, % PDF-Quelldatei der Tooltips
    mouseover,
    noextratext, % keine Sprechblasen bei Tooltips anzeigen
  ]{fancytooltips}
}{% Solange das PDF nicht existiert, eine Warnung ausgeben und die verwendeten
  % fancytooltips-Befehle ersetzen:
  \GenericWarning{}{Warning: tooltipsource.pdf muss noch erzeugt werden}%
  \usepackage[filename=example-image, % PDF-Quelldatei der Tooltips
    mouseover,
    noextratext, % keine Sprechblasen bei Tooltips anzeigen
  ]{fancytooltips}
}

\begin{document}
% Nur im extrahierten Dokument 
\begin{extract}
\keytip{tooltipname}{Tooltipinhalt}
\end{extract}

Hier ein Tooltip 
\tooltip{Anzeigetext}{tooltipname}
\end{document}

Dass hier im ersten Lauf die Warnungen:

Warning: tooltipsource.pdf muss noch erzeugt werden on input line 34.

und

Package fancytooltips Warning: No file example-image.tips! Your keywords for to oltips will not work! on input line 36.

erzeugt werden, fällt bei Verwendung von arara nicht weiter auf.

Permanenter link

beantwortet 25 Apr, 03:24

Ijon%20Tichy's gravatar image

Ijon Tichy
7.2k1919

Ein altes Problem in neuem Glanz. Nett, dass Du Dich da reingedacht hast. Funktioniert bestens.

(25 Apr, 13:35) cis

Ich bin gestern einfach einmal die unbeantworteten Fragen durchgegangen und habe bei jeder, die ich verstanden habe, kurz überlegt, ob mir eine Idee dazu einfällt. Mir ist durchaus klar, dass einige der Fragesteller inzwischen inaktiv sind und die Antwort deshalb von ihnen vermutlich nie bemerkt werden wird. Aber das ist ja kein Grund, die Frage zu ignorieren. Der Sinn von TeXwelt geht IMHO über die unmittelbare Hilfe für den Fragesteller hinaus. Es sind jetzt noch um die 40 unbeantwortete Nicht-Meta-Fragen übrig, die mir Rätsel aufgeben.

(26 Apr, 02:24) Ijon Tichy
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×27
×5
×3

Frage gestellt: 15 Sep '16, 11:41

Frage wurde angeschaut: 1,044 Mal

Zuletzt aktualisiert: 26 Apr, 02:24