N’abend. Ich habe ein Kapitel Quellennachweise. Nun kam mir der Gedanke, über Sprungmarken und Querverweisen Seitenzahlen dort einzufügen. Für die Print-Version bekomme ich dann das, was ich brauche:
Seite xyz: Quelle
Für die HTML-Version (EPUB) macht eine Seitenzahl keinen Sinn. Am liebsten hätte ich die Möglichkeit, so etwas zu tun:
IF outputformat=HTML THEN “Seite xyz” ELSE “LINK”.
Nur gibt es IF/THEN/ELSE nur als DB-Kommando, richtig?
Nun bin ich über das Menü Einfügen > Hypertext > HTML-Anweisung… gestolpert. Im Handbuch finde ich dazu nichts, aber ich schätze mal, hiermit kann man bei Bedarf HTML-Elemente hinzufügen. IF/THEN/ELSE gibt es zwar nicht, aber vielleicht könnte mann die Seitenzahlen auskommentieren?
Gäbe es andere Möglichkeiten für unterschiedlichen Content je nach Ausgabeformat? Abgesehen davon, mit einer Kopie pro Format zu arbeiten.
Nein, das gibt es auch im Querverweis-Dialog, wenn man Querverweis „auf beliebigen Ausdruck“ einstellt.
Eine direkte Abfrage des Ausgabeformats ist nicht möglich, aber man kann sich auf der Pinnwand eine Tabelle mit Schlüsseln und Werten anlegen, wobei das Wert-Tabellenfeld mit dem jeweiligen Schlüsselnamen benannt ist. So kann man eine Variable outputFormat definieren, die je nach Wunsch den Wert html oder pdf enthält und vor dem Export manuell angepasst werden muss.
Die Querverweise im Text legt man mit der Einstellung „auf beliebigen Ausdruck“ an und füllt das Ausdrucksfeld mit der IF/THEN/ELSE-Bedingung:
IF outputFormat == 'html'
THEN SPRUNGMARKENVERWEIS(Q1_Quelle_1)
ELSE SPRUNGMARKENVERWEIS_MIT_SEITE(Q1_Quelle_1)
Für die Querverweise mit und ohne Seitenangabe hat Papyrus verschiedene Funktionen, die anhand des Wertes von outputFormat ausgewählt werden. Die Querverweise passen sich nach der Änderung von outputFormat automatisch an.
Doch, sie ist enthalten. Sonst würde die Anpassung der Querverweise nicht funktionieren. In der Dokumentstatistik/Sprungmarken ist sie auch zu sehen. Das Ziel der Sprungmarke ist auf Seite 2.
Ich habe jetzt einfach mal dein Beispieldokument genommen und ein über Veröffentlichen → EPUB das Resultat sehen wollen (hab die Tabelle mit `outputFormat == html` so gelassen).
Ist das bei dir auch so? Und gibt es vielleicht auch ein Format für den Verweis, bei dem nur die Seitenzahl angezeigt wird (statt “Q1 Quelle 1 auf Seite 2” einfach “2” oder “Seite 2”). Jetzt wird’s fiddelig.
Die Meldung zu den ungültigen Links bekomme ich auch, aber erklären kann ich sie nicht. Das pap-Dokument enthält 2 Sprungmarken (Q1 und Q2) und 3 Querverweise (auf die 2 Sprungmarken sowie auf die Variable outputFormat), die alle gültige Ergebnisse liefern.
Diese Fehler werden nur beim epub-Export angezeigt, nicht aber beim HTML-Export. Vermutlich hängen sie mit den strengeren Regeln für XML- und XHTML-Dokumente zusammen.
Ich habe das epub mal entpackt und den Quelltext angesehen. Auf Seite 1 (ebook0.xhtml) vergisst Papyrus im XHTML-Code ein schließendes </pre> am Ende des Ausdrucks für den Querverweis . Dieses taucht erst am Beginn von Seite 2 (ebook1.xhtml) auf und hat dort kein öffnendes <pre>.
Abhilfe: Lösche den manuellen Seitenumbruch zwischen Ausdruck und Überschrift „Quellen“. Offenbar führt der zu Verschachtelungsfehlern beim epub-Export. Das ist ein Bug in Papyrus 12 @Leon
In meinem Manuskript ist es leider keine Lösung, den manuellen Seitenumbruch zu entfernen.
Ich habe noch ein wenig herumexperimentiert (das schließende “pre” kann man über HTML-Anweisung einfügen am Ende von Seite 1 einfügen, aber ein öffnendes “pre” zur Vervollständigung auf Seite 2 leider nicht - das landet hinter der ersten Überschrift und nicht direkt nach “body”).
Werde wohl in den sauren Apfel beißen und eine zweite Quellennachweis-Seite anlegen, so dass ich eine für EPUB und eine für PDF habe. Dann werfe ich vor der Veröffentlichung die jeweils andere Seite raus. Oder könnte ich vielleicht irgendwie eine Seite oder ein Kapitel mit “outputFormat” profilieren?
Du könntest den manuellen Seitenumbruch entfernen und stattdessen das Absatzformat für Kapitel so verändern, dass es immer auf einer neuen Seite beginnt, also automatisch einen Seitenumbruch davor durchführt (Absatz > Erweiterte Absatzformatierung). Das scheint den Fehler nicht hervorzurufen.
Ja, damit hatte ich zunächst ebenfalls erfolglos herumgespielt. Aber brauchst du denn den pre-formatierten Bereich? Ich hatte ihn nur deshalb eingefügt, um das Code-Schnipsel zu formatieren. Es könnte sein, dass Papyrus bei normalen Absätzen und Seitenumbrüchen den Verschachtelungsfehler nicht macht. Ich hab’s aber noch nicht ausprobiert.
pap 12 und gleiches macOS hier, aber ich glaube nicht, dass das System hier eine Rolle spielt. Es sieht nach einem Fehler im Kern von Papyrus aus.
Ah, deswegen…, genau, in deinem Beispieldokument (OutputFormat.pap) ist die IF/THEN/ELSE-Anweisung mit dem Absatzformat “Code” formatiert. Ich brauche die nicht, also habe ich den Absatz komplett entfernt. Danach zeigt mir das erzeugte EPUB keine Fehler mehr an - nur beim Generieren meckert er noch wegen kaputter Links.
Die “pre”-Elemente kamen also wohl vom Absatzformat “Code”.
Muss nochmal in mich gehen, welchen Weg ich jetzt gehe, aber wie immer vielen vielen Dank fürs Draufschauen und Rumknöstern.