Unterdrückung Seiten von-bis bei gleichzeitigem Mehrfachnachweis im selben Werk

Simon E. hinzugefügt 2 Monaten her
beantwortet

Hallo liebes Support Team, Hallo liebe Community,


Ich wandle grade den Stil "Jursitisches Zitieren (Riehm)" auf die Bedürfnisse unseres Lehrstuhls ab. Dabei habe ein Problem bei der Kombination zweier Funktionen.


Aufsätze sollen so in Fußnoten zitiert werden:


Autor [nur Nachname], in: Zeitschrift [Abk. 1] Jahr, S. Seiten von-bis [nur Anfangsseite] (Zitat-Seiten [ggf. f./ff.]).


Burgi, in: DÖV 1993, S. 633 (638 f.).


Wenn aber die zitiere Seite gleich der Anfangsseite des Aufsatzes ist, fällt die Anfangsseite des Beitrages weg und die Zitat-Seite tritt an ihre Stelle hinter das "S." Also so:


Autor [nur Nachname], in: Zeitschrift [Abk. 1] Jahr, S. Zitat-Seiten [ggf. f./ff.].


Burgi, in: DÖV 1993, S. 633 ff.


Dieses Ergebnis lässt sich mittels der hier beschrieben Methode erreichen. Siehe dazu den angehängten Zitationsstil (wip). Diese Methode unterdrückt nicht das Feld "Seiten von-bis" sondern "Zitat-Seiten". Die Klammern fallen dank der Funktion "nur anwenden wenn das X Element Daten enthält" weg und das f./ff. verbleibt weil Suffixe nicht unterdrückt werden.

So weit so gut.

Diese Gestaltung führt jedoch dazu, dass meine bisherige Methode mehrere Zitate aus dem selben Text in einem Nachweis unterzubringen nicht mehr funktioniert. Wie hier empfohlen bestand diese darin bei mehreren Zitaten aus demselben Werk im word add-in den Seitenzahlen-Typ auf "andere" zu stellen und 'in Reinschrift' in das Feld "andere von-bis" zu tippen. Das sieht dann so aus:


Burgi, in: DÖV 1993, S. 633 (638 f., 640, 655 ff. u. pass.).


Fällt aber die erste Zitat- Seite auf die Anfangsseite des Beitrags funktioniert der genutzte Filter (der das feld "Zitat-Seiten" unterdrückt) nicht mehr. Das Ergebnis wenig überraschend:


Burgi, in: DÖV 1993, S. 633 (633 f., 640, 655 ff. u. pass.).


Gewünscht ist aber:


Burgi, in: DÖV 1993, S. 633 f., S. 640, S. 655 ff. u. pass.


Nun bringt es herzlich wenig den Filter zur Unterdrückung der "Zitat-Seiten" auf diese Situation anzupassen, da dann ja gar-nichts wiedergegeben wird.

Mir fallen zwei Lösungswege ein.


1. Einen Filter schreiben, der in der Lage ist aus der Zeichenfolge "S. 633 f., S. 640, S. 655ff. u. pass." die in das Feld "andere von-bis" (Zitat-Seiten) eingegeben wird, die Zahl "633" zu extrahieren und mit der Anfangsseite des Werks zu vergleichen. Bei Identität soll dann das Feld "Seiten von-bis" sowie die Klammern unterdrückt werden.


2. Unter citavi 6 gibt es inzwischen eine Funktion die gewünschten Mehrfachnachweise des selben Textes zu implementieren von der ich nichts weiß.


Momentan habe ich einen Workaround mittels des Häkchens "Option 1" gefunden. Dieser ist aber wegen der sehr spezifischen Bedingung die der Anwender sich merken muss (wenn Anfangsseite Werk=Anfangsseite Zitat und mehrere Zitate) sehr umständlich.


Ich hoffe ich konnte das sehr spezielle Problem verständlich erklären.

Danke im Voraus und freundliche Grüße,


Simon

Beste Antwort
Foto

using System;
using System.Linq;
using System.Collections.Generic;
using System.Text.RegularExpressions;

using SwissAcademic.Citavi;
using SwissAcademic.Citavi.Metadata;
using SwissAcademic.Collections;

namespace SwissAcademic.Citavi.Citations
{
	public class CustomTemplateCondition
		:
		ITemplateConditionMacro
	{
		public bool IsTemplateForReference(ConditionalTemplate template, Citation citation)
		{
			if (citation == null) return false;
			
			Reference reference = citation.Reference;
			if (reference == null) return false;
			
			PlaceholderCitation placeholderCitation = citation as PlaceholderCitation;
			if (placeholderCitation == null) return false;
			
			String placeholderCitationPageRangeString = placeholderCitation.PageRange.OriginalString;
			if (string.IsNullOrEmpty(placeholderCitationPageRangeString)) return false;
			placeholderCitationPageRangeString = Regex.Replace(placeholderCitationPageRangeString, "(S.)(\\s)", "");
			
			String referenceStartPageString = reference.PageRange.StartPage.PrettyString;
			if (string.IsNullOrEmpty(referenceStartPageString)) return false;
			
			if (placeholderCitationPageRangeString.StartsWith(referenceStartPageString)) return true;

			return false;
		}
	}
}
Der ursprüngliche Code guckte, ob der Zitatseitenbereich mit der Startseite beginnt, und vergleicht dabei Strings. Wenn also der Zitatseitenbereich mit "S. " beginnt, der Seitenbereich des Titels aber nur eine Zahl ist, kommt da falsch bei raus, die Bedingung greift nicht. Der Code filtert jetzt "S." gefolgt von einem Whitespace-Zeichen aus dem Zitatseitenbereich raus. Nun ja, was die Eleganz dieser Lösung betrifft bin ich skeptisch, ggf. muss man das auch für Rn. anders machen (wobei Werke, bei denen der Beginn von Beiträgen Randnummern statt Seitenzahlen identifiziert werden eher selten sind) aber das konkrete Problem löst das.

Antworten (12)

Foto
1

Guten Tag Simon,


vielen Dank für Ihre umfassende Problembeschreibung.


Leider können wir Ihnen auch in Citavi 6 noch keine andere Lösung anbieten, als einen manuellen Schalter z.B. "Option 1" zu verwenden.


Auch die Eingabe von mehreren Seitenbereichen desselben Titels hat sich nicht geändert.

Da Eingaben wie "633f., 640, 655 ff. u. pass." nicht als Zahl erkannt werden, kann bisher auch nicht die Startseite "633" nicht extrahiert werden.


Es tut mir leid, dass ich keine bessere Nachricht für Sie habe.


Viele Grüße

Jana

Foto
1

Mir sei der Hinweis gestattet, dass sich das relativ einfach lösen ließe, wenn Citavi nur Mehrfachnachweise aus dem selben Titel erlauben würde. "Auch in Citavi 6" ist insofern missverständlich. In Citavi 5 war das noch vegleichsweise trivial zu implementieren.

Foto
3

Achso, und übrigens, das müsste sich lösen lassen in Citavi 6, nur dann nicht-trivial. Man könnte eine Bedingung programmieren, welche den String des Feldes Zitat-Seiten nimmt, eine an Leerzeichen getrennte Liste daraus erstellt, und dann überprüft, ob das erste Element dieser Liste als Integer mit der Startseite des Aufsatzes übereinstimmt. Wenn das so ist, soll eine neue Vorlage zum Tragen kommen, welche die Startseite nicht druckt (weil die ja eh in den Zitat-Seiten steht) und bei der die Komponente für Zitatseiten keine Kommas hat (das ist also Lösung 1). Ich probiere das gerne mal aus am Wochenende, jetzt wird es aber für mich Schlafenszeit in Neuseeland. Mit dem Umzug erhöht sich die Wartezeit auf die JJ-Skripte.

Foto
Foto
1

@Jana, Sehr schade, danke trotzdem.


@Jan, leider würde dies mein Problem nicht lösen, da sich Mehrfachnachweise nur mit einem einzigen festgelegten Zeichen trennen lassen. Ich bräuchte aber mindestens zwei. Ein Komma für die beschriebene Situation, ein Semikolon für "normale" Mehrfachnachweise mit mehreren Autoren. Und selbst das wäre keine wirklich zufriedenstellende Lösung da der User immernoch entscheiden müsste ob er die mehrern Nachweise direkt in das "andere von-bis" Feld eingibt oder einen Mehrfachnachweis erstellt.Edit: nvm

Siehe zu diesem Problem auch hier insb die letzte Antwort.


EDIT: Da haben sich unsere Antworten wohl überschnitten. Der Vorschlag hört sicht logisch an, übersteigt meine Fähigkeiten aber bei weitem. Wenn Sie Zeit und lust haben sich dem Problem zu widmen wäre ich Sehr dankbar.

Foto
2

Nur in Kürze: das mit den Trennzeichen wäre kein Problem, das habe ich selber in Citavi 5 noch gemacht. Citavi kann nämlich erkennen, ob der Vorgänger im Mehrfachnachweis aus dem gleichen Titel stammt oder nicht, da gibt es sogar eine eingebaute Bedingung für, und wenn das geht, und unter Zuhilfenahme der Citavi-Ersetzungsregeln lässt sich so das Trennzeichen differenzieren. Der andere Punkt stimmt. Der Nutzer dürfte dann nur "echte" Mehrfachnachweise machen, das wäre aber streng genommen eh der richtige Ansatz. Naja, ist jedenfalls in Citavi 6 derzeit alles egal (bitte wieder Mehrfachnachweise aus einem Titel erlauben), daher setze ich mich die Tage an die programmierte Lösung.

Foto
2

Ich hab jetzt mal folgendes als Vorlagenbedingung gebastelt.


using System;
using System.Linq;
using System.Collections.Generic;

using SwissAcademic.Citavi;
using SwissAcademic.Citavi.Metadata;
using SwissAcademic.Collections;

namespace SwissAcademic.Citavi.Citations
{
	public class CustomTemplateCondition
		:
		ITemplateConditionMacro
	{
		public bool IsTemplateForReference(ConditionalTemplate template, Citation citation)
		{
			if (citation == null) return false;
			
			Reference reference = citation.Reference;
			if (reference == null) return false;
			
			PlaceholderCitation placeholderCitation = citation as PlaceholderCitation;
			if (placeholderCitation == null) return false;
			
			String placeholderCitationPageRangeString = placeholderCitation.PageRange.OriginalString;
			if (string.IsNullOrEmpty(placeholderCitationPageRangeString)) return false;
			
			String referenceStartPageString = reference.PageRange.StartPage.PrettyString;
			if (string.IsNullOrEmpty(referenceStartPageString)) return false;
			
			if (placeholderCitationPageRangeString.StartsWith(referenceStartPageString)) return true;

			return false;
		}
	}
}
Das ganze hat das in Fußnote 3 ersichtliche Ergebnis.

Foto
1

Wow, vielen Dank. Die Vorlagenbedingung funktioniert perfekt. Ich bin hellauf begeistert.

Foto
1

Ich muss leider diesen uralten Thread wieder aufmachen. Der Filter scheint nicht in der Lage zu sein "S. " aus dem "Seiten von-bis" Bereich zu entfernen/zu ignorieren.

heißt um das hier zu erzielen:


Arendt, in: Die Wandlung 1949, S. 754 ff., bes. S. 761, 766, 770

muss "754 ff., bes. S. 761, 766, 770" bei "Seite von bis" eingegeben werden. Sofern "S. 754 ff., bes. S. 761, 766, 770" eingegeben wird, greift der Filter nicht mehr. Dies ist eine Abweichung vom normalen Eingabemuster bei mehreren Zitaten im Selben Werk und wird Verwirrung stiften.

Soweit ich das verstanden habe, soll doch .PrettyString dafür sorgen, dass nur Zahlen im String stehen, das scheint aber nicht zu funktionieren. Ich bin mit meinem ohnehin schon begrenztem Latein am Ende.


Danke im Voraus,


Simon

Foto
2

Naja, wenn der Thread uralt ist, will ich nicht wissen, was ich bin.


Das kann deshalb im Moment nicht funktionieren, ohne daß ich jetzt aus dem Stand sagen könnte, was genau PrettyString macht und warum ich mich dafür entschieden habe, weil für die placeholderCitation.PageRange der OriginalString genommen wird. Wenn da "S. 754 ff." steht, ist das nur dann mit reference.PageRange.StartPage identisch, wenn da auch "S. 754 ff." stünde. Das erfasst so aber kein Mensch, da steht natürlich nur 754. reference.PageRange.StartPage ist also in der Tat eine nackte Zahl, aber das, was im Nachweis steht, ist es nicht. Meines Erachtens sollte das nicht so gemacht werden. Man sollte in Nachweis-Seitenbereich nur Zahlen oder Zahlenbereiche schreiben, alles andere ist Präfix, Suffix, oder Nummerierungsart. Dessen ungeachtet: mit ein wenig Aufwand könnte man die Bedingung ändern, aber das würde nur die falsche Dateneingabe perpetuieren, und irgendwann kommt dann der nächste Sonderfall, welcher nicht abgedeckt ist. Ich würde wirklich eher in den Nachweisseitenbereichen nackte Zahlen eingeben, und den übrigen Gedönsrat durch Präfix und Zitationsstil richtig machen. Das versemmelt einem Citavi 6 aber, weil es dem Nutzer verbietet, Mehrfachnachweise aus einem Titel zu machen, es sei denn, man erfaßt alles als Wissenselement.

Foto
2

Ich weiß, daß das keine sonderlich hilfreiche Antwort ist. Ich mach mich auch an die Friemellösung, aber ich verstehe wirklich nicht, warum Citavis Funktionalität hier so extrem beschnitten wurde, und man gezwungen wird, unsaubere Lösungen zu machen, welche erfordern, dass man Sachen wie "S.", "bes.", "ff." ins Nachweis-Zitatenseitenbereichfeld schreiben muss, bloß weil ein paar Leute zu schnell geklickt haben. Notfalls kann da ja ein Warnhinweis kommen "Sie sind dabei mehrere Nachweise aus einem Titel zu einzufügen. Wollen Sie das wirklich?" Warnhinweise liest zwar auch keiner, sondern jederman klickt nur auf "Jaja, mach schon", aber das wäre besser als der Status Quo.

Foto
1

Sie haben vollkommen recht, eigentlich wäre es (beim momentanen Stand von citavi) sauberer "754-756, bes. 766, 770-771, pass." einzugeben um dann:


Arendt, in: Die Wandlung 1949, S. 754 ff., bes. S. 761, 766, 770 f., pass.


zu erhalten. Das wäre sozusagen "der große Wurf". Schlicht die zu zitierenden Textbereiche eingeben, citavi macht den Rest. Deutlich, deutlich einfacher wäre es natürlich über mehrere einzelne Zitationen hintereinander.

Foto
Foto
2

using System;
using System.Linq;
using System.Collections.Generic;
using System.Text.RegularExpressions;

using SwissAcademic.Citavi;
using SwissAcademic.Citavi.Metadata;
using SwissAcademic.Collections;

namespace SwissAcademic.Citavi.Citations
{
	public class CustomTemplateCondition
		:
		ITemplateConditionMacro
	{
		public bool IsTemplateForReference(ConditionalTemplate template, Citation citation)
		{
			if (citation == null) return false;
			
			Reference reference = citation.Reference;
			if (reference == null) return false;
			
			PlaceholderCitation placeholderCitation = citation as PlaceholderCitation;
			if (placeholderCitation == null) return false;
			
			String placeholderCitationPageRangeString = placeholderCitation.PageRange.OriginalString;
			if (string.IsNullOrEmpty(placeholderCitationPageRangeString)) return false;
			placeholderCitationPageRangeString = Regex.Replace(placeholderCitationPageRangeString, "(S.)(\\s)", "");
			
			String referenceStartPageString = reference.PageRange.StartPage.PrettyString;
			if (string.IsNullOrEmpty(referenceStartPageString)) return false;
			
			if (placeholderCitationPageRangeString.StartsWith(referenceStartPageString)) return true;

			return false;
		}
	}
}
Der ursprüngliche Code guckte, ob der Zitatseitenbereich mit der Startseite beginnt, und vergleicht dabei Strings. Wenn also der Zitatseitenbereich mit "S. " beginnt, der Seitenbereich des Titels aber nur eine Zahl ist, kommt da falsch bei raus, die Bedingung greift nicht. Der Code filtert jetzt "S." gefolgt von einem Whitespace-Zeichen aus dem Zitatseitenbereich raus. Nun ja, was die Eleganz dieser Lösung betrifft bin ich skeptisch, ggf. muss man das auch für Rn. anders machen (wobei Werke, bei denen der Beginn von Beiträgen Randnummern statt Seitenzahlen identifiziert werden eher selten sind) aber das konkrete Problem löst das.