Verwandt mit:
[getmap und datatool?][1], [Wie verwende ich und wie arbeite ich mit dem Paket getmap?][2]
___
[ Ich möchte mir ohne großes Einlesen das PDF-Resultat anschauen! Dieses werde ich im AdobeReader öffnen! (Wurde auf dem Matheplaneten im Notizbuch hochgeladen)][3]
___
___
Hallo!
**Allem voran I:**
· Möglicherweise ist es eleganter, Kontaktlisten in der Form
George, Clooney,Seehalde 7, Bodman-Ludwigshafen, Deutschland, 0123/45678, clooney@web.de, Sonstiges
Brad, Pitt, Times Square 11a, New York, USA, 555/98764, pitt@pittmail.com, Herz
in einer (ggf. externen) Datei `kontaktliste1.txt` zu bearbeiten; und diese später zu `kontaktliste1.csv` umzubenennen (das Letztere werden wir aus Kompaktheitsgründen direkt im Dokument, mittels `filecontents` machen).
· Im Resultat möchten wir eine PDF-Datei, in der eine Kontaktliste -wie bei der AW von @Henri - in Tabellenform erscheint, mit dem Zusatz, daß zu den Adressen Straßenkarten als [tooltips][4] angezeigt werden, sobald wir sie mit dem Mauszeiger überfahren. Die Straßenkarten möchten wir *automatisch* durch das Paket `getmap` erhalten und die `tooltips` werden wir mit dem Paket `fancytooltips` erzeugen. Hierfür sind einige spezielle Kompilierungen und Hilfsdateien nötig, daher
**Allem voran II:**
Um das möglichst elegant, arbeitsarm machen zu können, kann `arara` verwendet werden (natürlich geht es auch ohne, dann ist es eben mühevolle Handarbeit). Solltest Du also kein `arara` haben, brauchst Du gar nicht weiterlesen und weißt, was Du als erstes beschaffen mußt (hiebei kann hilfreich sein: [arara in meinem Editor][5] [siehe auch Handbuch], [arara und MikTeX][6], bei `TexLive2013+` ist `arara` dabei)
Zusätzlich brauchen wir für das Bsp. unten die `arara`-Regel
[console.yaml][7]
!config
# Console rule for arara
# author: Clemens Niederberger
# requires arara 3.0+
identifier: console
name: Console
command: <arara> @{command}
arguments:
- identifier: command
flag: <arara> @{parameters.command}
Diese *können* wir, damit sie `arara` auch findet, dort abspeichern, wo die anderen `arara`-Regeln (z.B. `pdflatex.yaml, ps2pdf.yaml` usw.) liegen. €**dit**: Um es besser zu machen, siehe [Wo speichere ich eigene arara Regeln am besten ab?][8]
**Allem voran III:**
Für das `fancytooltips`-Paket werden mitunter einige [acrotex][9]-Pakete benötigt.
- Hierzu habe ich mir [acrotex_pack.zip][10] runtergeladen und die darin enthaltenen Pakete über die `*.ins`-Dateien installiert. Dabei habe ich mich streng an [diese Anleitung][11] gehalten.
- Dann mußte ich noch dafür sorgen, daß die neuen Pakete auch vom Kompiler gefunden werden, dazu habe ich mich streng an [diese Anleitung][12] gehalten.
**Allem voran IV:**
Da mit dem Code unten ein recht gigantischer Ablauf losgetreten wird, sei als letztes noch bemerkt, daß es ratsam ist, die später in der `kontaktliste1.csv`-Datei verwendeten Adressen, z.B.
Seehalde 7, Bodman-Ludwigshafen, Deutschland
erstmal anhand eines etwas harmloseren Programmes zu testen (wie es zu kompilieren ist, steht im arara-Kopf):
% arara: pdflatex: { shell : yes }
\documentclass[varwidth, margin=10pt]{standalone}
%\documentclass{article}
\usepackage{selinput}
\SelectInputMappings{adieresis={ä}, germandbls={ß}}
\usepackage{graphicx}
\usepackage[overwrite=true]{getmap}
\begin{document}
\getmap[file=bodensee1]{Seehalde 7,Bodman-Ludwigshafen,Deutschland}
\includegraphics[width=7.5cm]{bodensee1}
\end{document}
*In vielen Fällen muß vermutlich [das Paket `getmap`][13] überhaupt erstmal installiert werden, dazu kann (neben den unter Punkt **III** genannten "Anleitungen"), der schon genannte Link [Wie verwende ich und wie arbeite ich mit dem Paket getmap?][14] hilfreich sein.*
___
**Wenn jetzt das Gesagte alles akurat befolgt wurde, sollte der folgende Code keine Probleme mehr bereiten. Viel Spaß damit!**
___
*Noch eine Bemerkung zu dieser angesprochenen Eleganz: Es ist leider nicht 100% elegant geworden, aber immerhin 80% - dazu noch mehr. Vll. läßt es sich auch noch verbessern.*
___
**Nun zur Kontaktliste:**
**Die Kompilierung im Einzelnen:**
% Erst hiermit kompilieren, um die Hilfsdateien zu erzeugen
% #arara: latex: { action: nonstopmode }
% dann mit ' # ' auskommentieren und hiermit kompilieren
% arara: console: { command: arara maps.tex }
% arara: pdflatex
% arara: pdflatex
%Endlich im AdobeReader öffen!
- Zunächst erzeugen wir die Texthilfsdateien `kontaktliste1.csv` (für die Liste) und `maps.tex` (für die `tooltips`). Der `nonstopmode` wäre hier jetzt nicht zwingend nötig, aber es geht hier erstmal nur um die Hilfsdateien. Man muß hier auch nicht zwingend `arara` verwenden, Hauptsache am Schluß sind die Hilfsdateien da.
- **Hinweis:** *Diese Hilfsdateien werden, solange sich an der Kontaktliste nichts ändert, nur einmal benötigt. Die `filecontents`-Blöcke können also für spätere Läufe auch auskommentiert werden. Überdies kann die Liste, wie schon erwähnt, auch - e x t e r n - anhand einer Textdatei `kontaktliste1.txt` geführt werden, die nach Bearbeitungen / Ergänzungen wieder zu `kontaktliste1.csv` umbenannt wird; in diesem Falle kann der 1. `filecontents`-Block ganz auskommentiert werden.*
- Für die `tooltips` wird sogar eine PDF-Hilfsdatei benötigt, benötigt (siehe z.B. [hier][15] für ein einfaches Bsp. dafür), also Kompilieren wir mit der arara-Regel `console` die Hilfsdatei `maps.tex` zur Hilfsdatei `maps.pdf`
- Nun folgen noch ein paar normale Läufe mit `pdflatex` (insofern ist auch der Schabernack, der hier noch geschehen wird, irgendwo verkraftbar).
*Und hier also noch eine letzte Eleganzbemerkung: in `einem` Rutsch mit `arara` bekomme ich es nicht hin :( Auch konnte ich bis jetzt nicht rausfinden, wie ich (ggf. mit der `console`-Regel) direkt die Resultatdatei im AdobeReader öffne (wo die `tooltips` sichtbar sind). Vll. finde ich es noch raus - wer es weiß, darf es mir sagen.*
![alt text][15]
text][16]
![alt text][16]
text][17]
% Erst hiermit kompilieren, um die Hilfsdateien zu erzeugen
% #arara: latex: { action: nonstopmode }
% dann mit ' # ' auskommentieren und hiermit kompilieren
% arara: console: { command: arara maps.tex }
% arara: pdflatex
% arara: pdflatex
%Endlich im AdobeReader öffen!
%\RequirePackage{filecontents}
% Kontaktliste anlegen =========================
\begin{filecontents*}{kontaktliste1.csv}
George, Clooney,Seehalde 7, Bodman-Ludwigshafen, Deutschland, 0123/45678, clooney@web.de,
Brad, Pitt, Times Square 11a, New York, USA, 555/98764, pitt@pittmail.com,
Alberto, Aronson, Erste Straße, 11111 Einsstadt, Musterland, 111/111, 1@web.de, nichts
Bart, Simpson, ... , Springfield, USA, 90/0815, eatmyshorts@web.de, gelb
Dagobert, Duck, Alte Potsdamer Straße 7, Berlin, Deutschland, 9999/9999, \texttt{zu teuer},
\end{filecontents*}
% ======================================
% Hilfsdatei für tooltips anlegen =====================
\begin{filecontents*}{maps.tex}
% arara: pdflatex: { shell : yes }
\documentclass{article}
\usepackage{selinput}
\SelectInputMappings{adieresis={ä}, germandbls={ß}}
\usepackage[ngerman]{babel}
\usepackage[createtips]{fancytooltips} %tooltips erstellen
\usepackage{datatool}
\usepackage[overwrite=true]{getmap}
\usepackage[left=0.5cm, right=0.5cm]{geometry}
\usepackage{xcolor}
\usepackage{tcolorbox}
\tcbset{
colframe=cyan,
colback=yellow!30,
colbacktitle=cyan,
fonttitle=\bfseries\Large
}
\begin{document}
\DTLsetseparator{,}
\DTLloaddb[
noheader,
keys={Vorname,Nachname,Strasse,Ort,Land,Telefon,EMail,Sonstiges}
]{maps}{kontaktliste1.csv}
\DTLforeach*{maps}{\Nachname=Nachname,\Vorname=Vorname,\Strasse=Strasse,\Ort=Ort, \Land=Land, \Telefon=Telefon,\EMail=EMail,\Sonstiges=Sonstiges}{%
\keytip{\Nachname} % tooltip identifizieren
\begingroup
\edef\x{\endgroup
\noexpand\getmap[file=\expandonce\Nachname, color=red_1]{%
\expandonce\Strasse,\expandonce\Ort,\expandonce\Land
}%
}\x
\begin{tcolorbox}[title= Straßenkarte, width=20cm]
\texttt{\Nachname, \Strasse, \Ort} \par
\includegraphics[width=18.5cm]{\Nachname.png}\par
\end{tcolorbox}
\clearpage
}
\keytip{tooltip1}
\begin{tcolorbox}
Hier noch ein tooltip
\end{tcolorbox}
\clearpage
\keytip{tooltip2}
\begin{tcolorbox}
Und noch ein tooltip
\end{tcolorbox}
\end{document}
\end{filecontents*}
% ======================================
\documentclass[landscape]{scrartcl}
\pagestyle{empty}
\usepackage{selinput}
\SelectInputMappings{adieresis={ä}, germandbls={ß}}
\usepackage[ngerman]{babel}
\usepackage{datatool}
\usepackage[filename=maps,mouseover,noextratext,blur,movetips]{fancytooltips} % tolltips verwenden
\usepackage{array} %
\newcounter{rowcount} %Tabellenzeilen nummer-
\setcounter{rowcount}{0} % ieren
\usepackage{booktabs} %
\usepackage{hyperref}
\usepackage{marvosym} % Für Bürosymbole
\DTLsetseparator{,}
\DTLloaddb[
noheader,
keys={Vorname,Nachname,Strasse,Ort,Land,Telefon,EMail,Sonstiges}
]{kontaktliste}{kontaktliste1.csv}
\DTLsort{Nachname}{kontaktliste} % nach Nachnamen sortieren
%=======
\begin{document}
%=======
\begin{tabular}{lllllll}
\toprule
\footnotesize{\#} & {\LARGE\Gentsroom\Ladiesroom} \textbf{Nachname} & \textbf{Vorname} & {\LARGE\Letter} \textbf{Adresse} & {\LARGE\Telefon} \textbf{Telefon} {\LARGE\Mobilefone} & {\LARGE\Email} \textbf{E-Mail} & {\LARGE\Info} \textbf{Sonstiges} \\
\midrule
\DTLforeach*{kontaktliste}{\Nachname=Nachname,\Vorname=Vorname,\Strasse=Strasse,\Ort=Ort, \Telefon=Telefon,\EMail=EMail, \Sonstiges=Sonstiges}{\stepcounter{rowcount}\tiny{\therowcount} &
\textsc{\Nachname} & \Vorname & \tooltip{\Strasse, \Ort}{\Nachname} & \Telefon & \EMail & \Sonstiges \\\hline
}
\end{tabular}
\tooltip{Hier noch ein tooltip}{tooltip1}
\tooltip{Hier nochmal eine Karte}{Clooney}
%=======
\end{document}
%=======
PS:
===
Endlich können wir noch -optional- [die arara-Regel removex][17] removex][18] verfügbar machen und in der Form
% arara: removex: {items: [ aux , djs , dvi , blg , out , log , synctex.gz , tips , png ] }
einsetzen, um die recht vielen entstanden Hilfsdateien zu löschen. Allerdings sollte dieser Aufruf, *speziell hier*, nach `\end{document}` stehen (!).
[1]: http://texwelt.de/wissen/fragen/7134/getmap-und-datatool
[2]: http://texwelt.de/wissen/fragen/6998/wie-verwende-ich-und-wie-arbeite-ich-mit-dem-paket-getmap
[3]: http://matheplanet.de/matheplanet/nuke/html/dl.php?id=1666&1405538044
[4]: http://de.wikipedia.org/wiki/Tooltip
[5]: http://texwelt.de/wissen/fragen/5571/wie-integriere-ich-arara-in-meinen-editor
[6]: http://texwelt.de/wissen/fragen/5377/wie-kann-ich-arara-fur-miktex-installieren
[7]: http://texwelt.de/wissen/fragen/5097/wie-kann-ich-mit-arara-einen-kommandozeilenbefehl-ausfuhren
[8]: http://texwelt.de/wissen/fragen/7149/wo-speichere-ich-eigene-arara-regeln-am-besten-ab
[9]: http://www.math.uakron.edu/~dpstory/webeq.html
[10]: http://www.math.uakron.edu/~dpstory/acrotex/acrotex_pack.zip
[11]: http://texwelt.de/wissen/fragen/4961/wie-kann-man-aus-den-quellen-einfacher-klassen-oder-pakete-die-klassendateien-bzw-paketdateien-erzeugen
[12]: http://texwelt.de/wissen/fragen/4887/wie-kann-ich-klassen-oder-pakete-verwenden-die-nur-als-einzelne-datei-bereitgestellt-werden
[13]: http://ctan.org/pkg/getmap
[14]: http://texwelt.de/wissen/fragen/6998/wie-verwende-ich-und-wie-arbeite-ich-mit-dem-paket-getmap
[15]: http://texwelt.de/wissen/fragen/7677/geheimbox-mit-unsichtbarem-text/7701
[16]: http://texwelt.de/wissen/upfiles/2_4.jpg
[16]: [17]: http://texwelt.de/wissen/upfiles/11111111a_ffshdsh__1.png
[17]: [18]: http://texwelt.de/wissen/fragen/7215/wie-kann-ich-die-arara-regel-remove-umschreiben-damit-sie-alle-dateien-eines-bestimmten-typs-loscht-unabhangig-vom-dateinamen