|
/* */
/* Definition für Suhrkamp, Nachname zuerst */ /* N. Busch 18.05.2009 */ /* Dies ist die Beispielfunktion mit ausführlichen Kommentaren */ /* Lesen Sie bitte unbedingt auch die separate Dokumentation zum */ /* arbeiten mit Zitformen, bevor Sie eigene Zitformen erstellen */ /* Die Funktion Let dient dazu, vor der eigentlichen Berechnung */ /* Variablen festzulegen. Damit wird die Berechnung übersichtlicher */ Let( [$Periodikum = Case( DGlobals::d_SigleBenutzen_n = 1 and not IsEmpty( DTitel.Periodikum::d_Sigle_t ); DTitel.Periodikum::d_Sigle_t; DTitel.Periodikum::d_Titel_t ); /* Mit Case werden verschiedene Zustände abgefragt. Die Syntax folgt der Regel */ /* Case( Bedingung1 ist wahr ; Lösung 1 ; Bedingung 2 ist wahr ; Lösung 2) */ /* Optional kann am Ende eine Lösung für den Fall angegeben werden, dass keine */ /* der Bedingungen erfüllt ist. In diesem Beispiel gibt es nur eine Bedingung */ $HerausgeberStatus = Case( IsEmpty( d_HerausgeberName_t) and d_Herausgeber_n <> 1 ; 0; /* Einfacher Autor, kein Hg. (d_Herausgeber_n = 1 bedeutet, der Autor ist Hrsg.) */ IsEmpty( d_HerausgeberName_t) and d_Herausgeber_n = 1 ; 1 ; /* Autor ist Hg. */ not IsEmpty( d_HerausgeberName_t) and IsEmpty(d_AutorNachname_t); 2; /* Kein Autor, aber Hg. */ not IsEmpty( d_HerausgeberName_t) and not IsEmpty(d_AutorNachname_t); 3) /* Autor und separater Hg. */ ; $AutorPerson = /* Hier wird erst einmal der Name des "echten" Autors berechnet. Sofern es sich um */ /* ein Pseudonym handelt, wird die in xCalc_Pseudonym_ctu hinterlegte Berechnung */ /* des tatsächlichen Namens herangezogen. Der direkte Zugriff hierauf wäre über */ /* DTitel.Autor::d_Nachname_t und DTitel.Autor::d_Vorname_t möglich */ Trim( d_AutorNachname_t & Case( not IsEmpty( d_AutorVorname_t ) ; ", " & d_AutorVorname_t ) & xcalc_Pseudonym_ctu ) ; /* Trim schneidet alle vorne und hinten stehenden Leerzeichen weg */ $Coautoren = /* Existieren verknüpfte Coautoren, wird die Darstellung aus den Autoreneinträgen */ /* gerechnet, andernfalls nutzt die Zitierform das Feld DTitel::d_Coautoren_t */ Trim(Case( not IsEmpty( xCalc_NamenCoautorenNV_ctu) ; DGlobals::d_Coautortrenner_t & xCalc_NamenCoautorenNV_ctu ; not IsEmpty( d_CoAutoren_t ) ; ", " & d_CoAutoren_t )) ; $CoautorenSB = /* Die gleiche Übung für die Coautoren des Sammelbandes */ Trim(Case( not IsEmpty( DTitel.Titel.Sammelband::xCalc_NamenCoautorenNV_ctu) ; DGlobals::d_Coautortrenner_t & DTitel.Titel.Sammelband::xCalc_NamenCoautorenNV_ctu ; not IsEmpty( DTitel.Titel.Sammelband::d_CoAutoren_t ) ; ", " & DTitel.Titel.Sammelband::d_CoAutoren_t )); $Autor = Case( $Herausgeberstatus = 0; $Autorperson & $Coautoren; $Herausgeberstatus = 1; $Autorperson & $Coautoren & " (" & DGlobals::d_HerausgeberKürzel_t & ")" ; $Herausgeberstatus = 2; d_HerausgeberName_t & " (" & DGlobals::d_HerausgeberKürzel_t & ")" ; $Herausgeberstatus = 3; /* Sieht zunächst aus wie Variante 1, aber weiter unten wird in diesem Fall */ /* noch ein "Hg. von..." angehängt */ $Autorperson & $Coautoren ; ) // end case ] ; Case( d_Datentyp2_t = "Artikel"; // Zitform für Artikel Trim( $Autor & ": " & Quote(d_Titel_t) & ", in: " & /* Mit dem Befehl "Quote" wird der nachfolgende Ausdruck in Anführungszeichen */ /* ausgegeben */ TextStyleAdd( $Periodikum ; Italic) & /* Der Befehl TextStyeAdd nimmt als Parameter immer den zu formatierenden */ /* Text und den Textstil an. */ /* Achtung: Textstil nicht in Anführungszeichen */ Case( not IsEmpty( d_AusgabeVol_t ) ; /* Wenn AusgabeVol nicht leer ist ... */ " " & d_AusgabeVol_t & Case( not IsEmpty( d_Datierung_t ) ; "(" & d_Datierung_t & ")" ) ; /* Wenn AUCH Datierung nicht leer ist */ Case(not IsEmpty(d_Datierung_t) ; /* Wenn AusgabeVol leer ist, aber nicht Datierung */ ", " & d_Datierung_t ) ) // End Case & Case( not IsEmpty( d_AusgabeNr_t ); ", Nr. " & d_AusgabeNr_t ) & Case( not IsEmpty( d_AusgabeSeite_t) ; ", S. " & d_AusgabeSeite_t ) ) // End trim ; d_Datentyp2_t = "Aufsatz"; // Zitform für Aufsätze Trim( $Autor & ": " & quote(d_Titel_t) & ", in: " & Case( DTitel::_fk_Autor_ct <> DTitel.Titel.Sammelband::_fk_Autor_ct; DTitel.Titel.Sammelband::xCalc_NameAutorKomplett_cti& $CoautorenSB; /* Haben Aufsatz und Sammelband verschiedene Autoren, beide vollständig nennen */ not isempty( DTitel::xCalc_NamenCoautorenNV_ctu) and DTitel::xCalc_NamenCoautorenNV_ctu = DTitel.Titel.Sammelband::xCalc_NamenCoautorenNV_ctu ; "dies." ; /* Gleiche Autoren und gleiche Coautoren, dann "dies." */ DTitel.Autor::d_Geschlecht_t = "f"; "dies." & $CoautorenSB; /* Autorin, dann "dies." */ "ders." & $CoautorenSB ) & /* Gleicher Autor, dann "ders." */ Case( DTitel.Titel.Sammelband::d_Herausgeber_n = 1 ; " (" & DGlobals::d_HerausgeberKürzel_t & "), "; ", " ) & TextStyleAdd( DTitel.Titel.Sammelband::d_Titel_t ; Italic) & ", " & Case( not IsEmpty( DTitel.Titel.Sammelband::d_Ort_t ); DTitel.Titel.Sammelband::d_Ort_t ) & Case( not IsEmpty( DTitel.Titel.Sammelband::d_Ort_t ) and not IsEmpty(DTitel.Titel.Sammelband::d_Verlag_t ) ; ": ") & Case( not IsEmpty( DTitel.Titel.Sammelband::d_Verlag_t ) ; DTitel.Titel.Sammelband::d_Verlag_t ) & Case( not IsEmpty( DTitel.Titel.Sammelband::d_Datierung_t ) ; " " & DTitel.Titel.Sammelband::d_Datierung_t ) & Case( not IsEmpty( d_AusgabeSeite_t ) ; ", S. " & d_AusgabeSeite_t )& Case( not IsEmpty( DTitel.Titel.Sammelband::_fk_sammelband_t ); /* Ein Ausatz in Sammelband als Teil einer Werkausgabe */ " [" & Trim( DTitel.Titel.SB.Werkausgabe::d_Kurztitel_t & " " & DTitel.Titel.Sammelband::d_AusgabeVol_t & Case( not IsEmpty( DTitel.Titel.Sammelband::d_AusgabeVol_t ) and not IsEmpty( DTitel.Titel.Sammelband::d_AusgabeNr_t) ; "/") & DTitel.Titel.Sammelband::d_AusgabeNr_t ) & "]" ) //end case ) // End trim ; d_Datentyp2_t = "Vortrag"; // Zitform für Vorträge Trim( $Autor & ": " & quote( d_Titel_t ) & ", Vortrag, " & "" & quote( DTitel.Titel.Sammelband::d_Titel_t ) & ", " & Case( not IsEmpty( DTitel.Titel.Sammelband::d_Ort_t ); DTitel.Titel.Sammelband::d_Ort_t ) & Case( not IsEmpty( DTitel.Titel.Sammelband::d_Datierung_t ) ; " " & DTitel.Titel.Sammelband::d_Datierung_t ) ) // End trim ; d_Datentyp2_t = "Tagung"; // Zitform für Tagungen Trim( "Tagung " & " " & quote( d_Titel_t ) & "" & Case( not IsEmpty( d_Körperschaft_t ); ", " & d_Körperschaft_t ) & Case( not IsEmpty( d_Ort_t ) ; ", " & d_Ort_t ) & Case( not IsEmpty( d_Datierung_t ) ; ", " & d_Datierung_t ) ) // End trim ; // Zitform für Monographien und den Rest Trim( $Autor & ": " & TextStyleAdd( d_Titel_t ; Italic) & ", " & Case( $HerausgeberStatus = 3 ; "Hg. v. " & d_HerausgeberName_t & ", " ) & Case( not IsEmpty( d_Ort_t ); d_Ort_t ) & Case( not IsEmpty( d_Ort_t ) and not IsEmpty( d_Verlag_t ) ; ": ") & Case( not IsEmpty( d_Verlag_t ) ; d_Verlag_t ) & Case( not IsEmpty( d_Auflage_t ) ; " " & d_Auflage_t & ". Aufl. " ) & Case( not IsEmpty( d_Datierung_t ) ; " " & d_Datierung_t ) & Case( not IsEmpty( d_BibliogrZusätze_t ) ; " (" & d_BibliogrZusätze_t & ")") & Case( not IsEmpty( DTitel.Titel.Sammelband::_pk_GUID ); /* Eine Monographie mit Verknüpfung zu einem Sammelband ist Teil einer Werkausgabe */ " [" & Trim( DTitel.Titel.Sammelband::d_Kurztitel_t & Case( not isempty( d_AusgabeVol_t ) ;", Bd. " & d_AusgabeVol_t ) & Case(not IsEmpty( d_AusgabeVol_t ) and not IsEmpty(d_AusgabeNr_t) ; " Nr. "; not isempty(d_AusgabeNr_t) ; ", Nr. ") & d_AusgabeNr_t) & "]" ) //end case ) // End trim ) //End Case & DGlobals::v_ZitFormSchlusszeichen ) |