Hallo, ich würde gerne die Meta-Daten meiner PDF Dateien automatisch ausfüllen lassen. Warum kann ich nicht in hypersetup Befehle wie \usekomavar{signature} oder \usekomavar{subject} benutzen? Woran liegt das?
Denn wenn ich einen Brief schreibe, ist ja das mehrmalige Eintragen meines Namens und des Betreffs/Titels redundant.
\hypersetup braucht voll expandibles Material
AFAIK kann man innerhalb von
\hypersetup
nur voll expandierbare Anweisungen verwenden. Damit fallen alle Anweisungen flach, die ein optionales Argument oder eine Sternform besitzen – also auch\usekomavar
. Man könnte sich nun etwas basteln, das über\edef
und das optionale Argument von\usekomavar
von hinten durch die Brust ins Knie arbeitet. Der Weg wäre grob skizziert:Getestet habe ich das aber nicht, denn eigentlich ist es doch kein Problem, in der lco-Datei, in der Du Deine Absenderinformationen einmalig anlegst, gleich noch ein
einzufügen. Es ist ja nicht so, dass man das bei jedem Brief wieder neu eingeben müsste. Damit ist diese Lösung aber deutlich schneller gebastelt als die andere.
lco mit hypersetup anreichern ...
klasse Idee!
Gruß,
Alexander
Ich vergaß aber etwas ...
Da man die Absender-lco vermutlich bereits bei
\documentclass
angibt und sie somit am Ende der scrlttr2-Klasse geladen wird, ist es für\@ifpackageloaded
zu früh. Dafür ist allerdings das scrlfile-Paket zu dem Zeitpunkt bereits geladen. Also kann man einfach mit\AfterPackage*{hyperref}{...}
arbeiten. Die Anweisung\AfterPackage*
führt das zweite Argument aus, sobald das Paket aus dem ersten Argument (also hyperref) geladen wurde. Wurde das Paket bereits geladen, werden die Anweisungen direkt ausgeführt. Damit funktioniert die lco-Datei sowohl vor als auch nach Laden von hyperref. Genau für solche Zwecke habe ich das Paket scrlfile geschrieben.Funktioniert!
Ausgezeichnet. Ich finds einfach toll, vernünftig ge-tag-te Dokumente zu haben. Zusammen mit hyperxmp und Beagle ist das sogar alltagstauglich. Nur eins noch: wie bekomme ich Zugriff auf toname? Und wenn ich Felder konkatenieren will, an welcher Stelle mache ich das denn?
Zugriff auf toname
Wofür? Wenn es für \hypersetup ist, dann über die Umweglösung mit
\edef
, die ich schon skizziert habe, allerdings isttoname
natürlich erst nach\begin{letter}{<em>Adressangabe</em>}
entsprechend der Adressangabe belegt. Ich weiß nicht, ob das dann für hyperref nicht bereits zu spät ist.Wozu Du wo Felder verbinden willst, ist mir nicht klar. Allgemein würde ich sagen, schreibt man bei Verwendung dann einfach den Zugriff auf die Felder hintereinander. Speziell kommt es darauf an. Da brauche ich mehr bzw. konkretere Infos.
Zum Beispiel
könnte man aus Betreff und toname Infos zusammen in das Title-Feld der PDF Datei reinschreiben, wie: „Mahnung: Peter Gläubig” als pdftitle=\mysubject :\mytoname.
Ich würde dann in meine pers. Suchmaschine eintippen mahnung gläubig und genau diese Datei finden, ohne noise.
Ich bekomme den Subject auch nur, wenn ich \AtBeginDocument benutze. Gibt es eventuell auch sowas wie \After... zum ausprobieren?
Aber ich gebe zu, das grenzt an Spielerei.
Wie gesagt
toname
gibt es erst nach\begin{letter}{...}
. Demgegenüber istsubject
verfügbar, sobald er gesetzt ist, also nach\setkomavar{subject}{...}
. Wenn man beide zusammensetzen will, dann geht das erst nach\begin{letter}{...}
. In der Anleitung sollte übrigens irgendwo\AtBeginLetter
dokumentiert sein. Das kann man verwenden – falls\hypersetup
mitspielt. Was dann allerdings passiert, wenn man mehr als einen Brief in einem Dokument hat, weiß ich auch nicht.