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, 17:41

cis's gravatar image

cis
9.5k93459491
Akzeptiert-Rate: 29%

bearbeitet 18 Sep '16, 05: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 '18, 09:24

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

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

(25 Apr '18, 19: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 '18, 08:24) gast3
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:

×30
×5
×3

gestellte Frage: 15 Sep '16, 17:41

Frage wurde gesehen: 5,629 Mal

zuletzt geändert: 26 Apr '18, 08:24