Äquivalenz von 1. PDF-Markierung und 2. Citavi-Annotation sollte bejaht werden, wenn 2. 1. enthält

Jan J. hinzugefügt 41 Tagen her
in Prüfung

Liebes Citavi-Team,

Nach drei Jahren eine Fortsetzung zu "Wiedererkennung von mehrseitigen Annotationen". Noch mal kurz:

"wenn man eine Markierung erstellt, welche sich über mehr als eine Seite spannt, und diese in die PDF-Ebene exportiert, werden beim nächsten Anzeigen der PDF an der Stelle zwei Markierungen angezeigt. Eine Citavi-Markierung, eine PDF-Ebenen-Markierung. Citavi erkennt nicht mehr, dass die PDF-Ebenen-Markierung die exportierte Citavi-Markierung ist"

M.E. – und ich rate mir hier meinen Weg zurecht – liegt das daran, dass Citavi beim Öffnen der PDF für jede PDF-Markierung (in PDFNet-Terminologie "Annot" der Art "Highlight") überprüft, ob bereits eine äquivalente Citavi-Annotation besteht, und falls nicht, eine solche anlegt. Das Problem nun ist, dass dies gemacht wird, indem geguckt wird, ob die Quad-Sequenz gleich ist, was bei mehrfachen Annotationen nie der Fall ist, weil Citavi-Annotationen mehrseitig sein können, (PageIndex eine Eigenschaft des Quad ist) PDF-Markierungen aber nicht (PageIndex ist eine Eigenschaft des Highlights).

Daher legt Citavi dann immer eine Annotation an, um das Highlight abzubilden.

Ich kann mir aber so recht keine Situation vorstellen, in dem es nicht schon ausreichend wäre, nur zu überprüfen, ob die Quad-Sequenz des Highlights vollkommen in der Quad-Sequenz der Annotation vorhanden ist, wenn PDF-Markierung und Annotation die gleiche Farbe haben.

Also sowas wie das hier:

            equivalentAnnotations = annotationsAtThisLocation.Where(a => !highlight.EquivalentAnnotationQuads().Except(a.Quads.ToList()).Any()).ToList();

statt

            equivalentAnnotations = annotationsAtThisLocation.Where(a => !highlight.EquivalentAnnotationQuads().Except(a.Quads.ToList()).Any()).ToList();
(wobei die Erweiterungsmethode EquivalentAnnotationQuads() auf meinem eigenen Mist gewachsen ist, aber Citavi muss ja was ähnliches machen, und hier noch der Farbvergleich fehlt).Vielleicht wäre das die Alternative, die den Kompromiss in Frage stellt.Beste GrüßeJJ

Kommentare (2)

Foto
1

Lieber Jan Jakob,

ich habe den Entwickler befragt, der hauptsächlich mit der PDF-Annotations-Funktion beschäftigt war. Es hab damals viele Diskussionen zu dem Thema. Hier eine Zusammenfassung seiner Anmerkungen:

Soweit wir sehen, läuft dir Prüfung darauf hinaus, ob es ein Highlight mit der gleichen Farbe hat und sich die Koordinaten von Citavi- und externer PDF-Annotation überschneiden. So einfach klappt es leider nicht: Bei der Farbprüfung müsste es zumindest eine große Toleranz geben (geringe Abweichungen der numerischen Farbwerte sind mit bloßem Auge gar nicht unbedingt zu sehen). Und selbst wenn die Farben matchen, gibt es noch folgendes Problem:

Angenommen, man hat einen großen Bereich in Citavi als Zusammenfassung markiert und exportiert das in das PDF. Wenn man nun innerhalb dieser Markierung mit dem externen Reader weiter markiert -- was soll passieren? Es gibt bei diesen Koordinaten ja schon ein Citavi-Highlight.

Auch spezielle Metadaten im PDF-Highlight zu speichern funktioniert nicht befriedigend, weil einige PDF-Viewer (insbesondere auf Tablets), diese Daten einfach überschreiben.

Wir werden gern zu einem späteren Zeitpunkt nochmals eine Diskussion zum PDF-Annotations-Konzept in Citavi führen, im Moment fehlen uns für größere konzeptuelle Änderungen hier einfach die Ressourcen.

Viele Grüße

Sebastian

Foto
1

Lieber Sebastian,

Vielen Dank für die Antwort – ich glaube aber, an irgendeiner Stelle liegt ein Mißverständnis vor, was im Zweifel an meiner Beschreibung liegt. Die genannten Punkte unterstützen meinen Wunsch ja alle, sie sprechen nicht dagegen.

Das derzeitige Verhalten, was mein ästhetisches Empfinden stört, ist, dass wenn man ein Wissenselement erstellt, welches mit einer Citavi-Annotation verknüpft ist (nennen wir diese Annotation eine PdfKnowledgeItemIndication-Annotation), und die PdfKnowledgeItemIndication-Annotation diskontinuierlich ist, und dann die PdfKnowledgeItemIndication-Annotation in die PDF exportiert (als Annot der Art Highlight) Citavi beim nächsten Öffnen der PDF sowohl die PdfKnowledgeItemIndication-Annotation anzeigt (mehr oder minder, hundertprozentig stimmt das nicht, es wird eine Annotation der gleichen Dimension angezeigt, aber mit dynamischer Kolorierung je nach Zitatart und ob aktiv oder nicht), als auch n "externe" Annotationen, also Annotationen, welche durch Konvertierung der Annot der Art Highlight erstellt wurden.

Das ist aber leicht zu vermeiden, denn jedes Annot der Art Highlight hat zwangsläufig die exakt selbe Farbe wie eine der von Citavi vordefinierten Farben, und die Dimension jedes Annot der Art Highlight in Citavi-Annotationsquad umgerechnet ergibt zwangsläufig eine Sammlung von Quads, welche komplett in der Sammlung von Quads der PdfKnowledgeItemIndication-Annotation enthalten sind. Es geht mir nicht darum, ob sich die Koordinaten "überschneiden", sondern darum, dass die Koordinaten/Quad-Sammlung der Annot komplett in der Quad-Sammlung der Citavi-Annotation erhalten ist, was immer der Fall ist, wenn Citavi die Annot selber aus einer PdfKnowledgeItemIndication-Annotation.Quads im Wege des Annotationsexports erstellt hat.

Wenn das Enthalten der Fall ist, dann ist es meines Erachtens müßig, die Annot als Annotation anzuzeigen, denn dann steht mit hinreichender Sicherheit fest, dass die Annot von Citavi erstellt wurde, und nicht vom Benutzer beim Bearbeiten der PDF.

Citavi macht das ja jetzt schon:, wenn die Quads der Annot voll kongruent mit den Quads einer PdfKnowledgeItemIndication-Annotation sind, also die Sammlung PdfKnowledgeItemIndication-Annotation.Quads die Annot.Quads enthält, und die Sammlung Annot.Quads die Sammlung PdfKnowledgeItemIndication-Annotation.Quads enthält. Mein Vorschlag ist einfach, anstelle von Vollkongruenz es auch ausreichen zu lassen, dass die Quads der Annots in den Quads der PdfKnowledgeItemIndication-Annotation enthalten sind, ohne dass das umgekehrte Statement (Annot.Quads enthält PdfKnowledgeItemIndication-Annotation.Quads) auch wahr sein muss.

Wenn die Farbe anders ist, oder die Quads nicht deckungsgleich sind, dann kann man die Annot, bzw. ein der Annot entsprechende Annotation, ja anzeigen, aber was halt nervt ist die ständige Dopplung von Annotationen nach dem Annotationsexport, weil Citavi die selbst erstellten Annots nicht mehr wiedererkennt, obwohl sich weder Farbe noch Dimension geändert haben, nur weil die Annotation diskontinuierlich ist.

Um die Frage zu beantworten: "Wenn man nun innerhalb dieser Markierung mit dem externen Reader weiter markiert -- was soll passieren? Es gibt bei diesen Koordinaten ja schon ein Citavi-Highlight."

Die Wahrscheinlichkeit, dass ein externer Reader eine Annotation erstellt, welche aus Quads besteht, welche exakt die gleichen Koordinaten haben, wie die Zusammenfassung, erscheint mir gegen null zu tendieren, ich habe Stunden damit verbracht, Koordinaten externer Annots und von Citavi-Annotationen zu vergleichen, und ich habe es nie erlebt, dass ein externer Reader die exakt selben Dimensionen zieht, und selbst dann müsste man ja noch den Farbton treffen, was ja auch eine bewußte Entscheidung des Nutzers ist. Was stellt der Nutzer denn vor, was passiert, wenn er über eine von Citavi erstellte grüne Annot, welche eine Zusammenfassung markiert, eine weitere Annot malt, welche den selben Grünton mit den selben Dimensionen hat? Will er die selbe Stelle zweimal zusammenfassen?

Darüber hinaus aber: das höchst theoretische Problem gibt es jetzt schon. Wenn es eine kontinuierliche Citavi-Annotation gibt, und ich dann in der PDF eine Annot reinmale, welche exakt die selben Dimensionen hat, und die selbe Farbe wie die Citavi-Annotation, dann zeigt Citavi die Annot auch nicht an. Warum auch: was sollte der Sinn dieser Annot sein? Selbe Farbe, selbe Koordinaten, das muss das selbe sein.

Zusammenfassend: das was ich vorschlage, ist keine große konzeptionelle Änderung, es geht mir nur darum, dass statt auf Annot.Quads == PdfKnowledgeItemIndication-Annotation.Quads auf Annot.Quads.All(q => PdfKnowledgeItemIndication-Annotation.Quads.Contains(q)) zu testen, damit Citavi wenigstens die von Citavi selbst erstellten Annots wieder erkennt, ohne mich mit der Dopplung zu nerven.

Beste Grüße

Jan Jakob

PS: Ich linke mal für Screenshots auf meinen Ursprungsbeitrag. Ich erlaube mir den Hinweis, dass das, was ich da im zweiten Beitrag als Problem identifiziert habe, durch meinen Vorschlag hier nicht gelöst würde, aber sich dadurch lösen ließe, dass Citavi die Quad-Koordinaten während des Vergleichs auf 2 Nachkommastellen runden würde, irgendwie geht da manchmal bei Citavi was schief, wenn die Annots erstellt werden, und die Annot-Koordinaten unterscheiden sich nach der zweiten Nachkommastelle von denen der Annotation. M.E. ist auch das problemlos möglich, denn die Wahrscheinlichkeit, dass ein externer PDF-Reader eine Annot erstellt, welche farbidentisch mit einer Citavi-Annotation ist, und deren Koordinaten der Quads bis auf die zweite Nachkommastelle identisch mit einer Citavi sind, ist immer noch extrem gering. In meinem AddOn runde ich sogar auf den nächsten Integer, ohne dass in der bisherigen Praxis eine Äquivalenz falscherweise bejaht wurde.