[GastForen Programme Print/Bildbearbeitung Adobe InDesign Zeilenumbruch v. Fußnoten über Seiten

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Zeilenumbruch v. Fußnoten über Seiten

Thaler
Beiträge gesamt: 139

10. Nov 2014, 16:03
Beitrag # 1 von 6
Bewertung:
(5874 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Indesign 6, Win

Hallo zusammen,

ich muss viel mit Fußnoten arbeiten. Diese sollen über mehr Seiten laufen (Fußnotenoptionen: Geteilte Fußnoten zulassen).
Es soll aber keine einzelnen Zeile einer Fußnote auf einer Seite Seite stehen (kein Schusterjunge/Hurenkind).
Dazu setze ich die Umbruchoptionen des Fußnotenabsatzformats Zeilen oben/unten nicht trennen jeweils auf den Wert 2.

Leider kommt es dennoch vor, dass Indesign eine einzelne Zeile eines Fußnotenabsatzes auf der nachfolgenden Seite stehen läßt.

Kennt jemand den Bug, bzw. gibt es dafür eine Lösung, dass ich nicht jede Fußnote nachkonroliieren muss?

Gruß
Gregor
X

Zeilenumbruch v. Fußnoten über Seiten

Martin Fischer
  
Beiträge gesamt: 12783

10. Nov 2014, 17:13
Beitrag # 2 von 6
Beitrag ID: #533939
Bewertung:
(5850 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gregor,

dieses Verhalten kann ich (leidgeprüft) bestätigen.

Es taucht dann auf, wenn der Text einer dreizeiligen Fußnote nicht mehr komplett auf die Seite des Verweises passt und wenn die Schusterjunge/Hurenkind-Anweisung auf 2/2 steht.

In diesem Fall entscheidet sich InDesign für das größere Übel, das Hurenkind, statt dem kleineren Übel, dem Schusterjungen.

Den Fehler habe ich schon vor längerer Zeit und wiederholt an Adobe gemeldet.
Vielleicht hilft es, wenn der Fehler auch von anderen Benutzern dokumentiert und mit einem Vorschlag für das gewünschte Verhalten ergänzt wird: Bug Report-Formular

Abhilfe (unbefriedigend): ändere die Schusterjunge/Hurenkind-Anweisung auf 1/2.

Alternativ könnten die Fehlerstellen per Skript ermittelt und angezeigt werden.


als Antwort auf: [#533934]
(Dieser Beitrag wurde von Martin Fischer am 10. Nov 2014, 18:07 geändert)

Zeilenumbruch v. Fußnoten über Seiten

Martin Fischer
  
Beiträge gesamt: 12783

10. Nov 2014, 21:20
Beitrag # 3 von 6
Beitrag ID: #533948
Bewertung:
(5795 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gregor,

hier ein einfaches Skript, das dreizeilige Absätze in Fußnoten auf Hurenkinder überprüft.

Code
main(); 

function main()
{
var doc = app.documents.firstItem(),
i = 0, bl_2, bl_3; _error = 0,
fn_para = doc.stories.everyItem().footnotes.everyItem().paragraphs.everyItem().getElements();

for (var i = 0; i < fn_para.length; i++)
{
if (fn_para[i].lines.length == 3)
{
// Grundlinien der Zeilen 2 und 3 ermittelbar?
try
{
bl_2 = fn_para[i].lines.item(1).insertionPoints.firstItem().baseline;
bl_3 = fn_para[i].lines.item(2).insertionPoints.firstItem().baseline;
if (bl_2 >= bl_3)
select_it(fn_para[i].lines.item(2));
}
catch(e)
{
// Grundlinien der Zeilen 2 und 3 nicht ermittelbar
_error++;
}
}
}

if (_error > 0)
alert('Achtung!\n' + _error + ' kritische Stellen konnten nicht untersucht werden.\nBitte auf Übersatz prüfen.');


function select_it( theObj )
{
app.select(theObj,SelectionOptions.replaceWith);
app.activeWindow.zoomPercentage = app.activeWindow.zoomPercentage;
var _choice = confirm ('Weitersuchen?' );
if (_choice == false)
exit();
}
}


Das Skript geht von bestimmten Voraussetzungen aus:
1. Der Fehler taucht nur in Fußnotenabsätzen mit genau drei Zeilen auf;
2. der Fußnotenapparat steht immer unten am Satzspiegelrand (die Position der unteren Kante aller Textrahmen mit Fußnoten ist gleich).
post scriptum: Diese Voraussetzung könnte entfallen, wenn nicht die Grundlinien der Zeilen 2 und 3 untersucht würden, sondern deren übergeordnete Textrahmen

Das Skript prüft bei dreizeiligen Fußnotenabsätzen die Position der Grundlinien der Zeilen 2 und 3.
Ist die Position der Grundlinie der Zeile 2 größer oder gleich der Position der Grundlinie von Zeile 3, dann befinden sich beide Zeilen in unterschiedlichen Textrahmen. Und da die dritte Zeile in einem dreizeiligen Absatz die letzte ist, muss sie ein Hurenkind sein.

Dreizeilige Fußnotenabsätze im Übersatz können nicht untersucht werden, da dort die Position der Grundlinie nicht zu ermitteln ist.


als Antwort auf: [#533934]
(Dieser Beitrag wurde von Martin Fischer am 10. Nov 2014, 21:27 geändert)

Zeilenumbruch v. Fußnoten über Seiten

Martin Fischer
  
Beiträge gesamt: 12783

11. Nov 2014, 08:04
Beitrag # 4 von 6
Beitrag ID: #533951
Bewertung:
(5723 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Und hier eine Ausarbeitung des Ansatzes, der über den Vergleich der übergeordneten Textrahmen geht:

Code
/* 
Hurenkinder_in_Fussnoten_auffinden.jsx

//DESCRIPTION:Ermittelt Seiten mit alleinstehenden Zeilen von dreizeiligen Fußnoten oder Textüberlauf.
VERSION: 0.1
AUTHOR: Martin Fischer
EMAIL: InDesign@MartinFischer.de
DATE: 11.11.14
*/

main();

function main()
{
var doc = app.documents.firstItem(),
i = 0, tf_2, tf_3; pg_overflow = [], pg_overflow = [], pg_widows = [];
fn_para = doc.stories.everyItem().footnotes.everyItem().paragraphs.everyItem().getElements();

pg_overflow = get_overflow(doc);

pg_widows = get_widows(fn_para);

if (pg_overflow.length > 0)
{
pg_overflow.sort(num_sort);
alert('Achtung!\nTextüberlauf auf folgenden Seiten: ' + pg_overflow.join(', '));
}

if (pg_widows.length > 0)
{
pg_widows.sort(num_sort);
alert('Achtung!\nHurenkinder in Fußnoten auf folgenden Seiten: ' + pg_widows.join(', '));
}



// ---------------------------------------------------------
// Textüberlauf ermittlen
// ---------------------------------------------------------
function get_overflow(doc)
{
var pg = null, _arr = [], i = 0;

for (i = 0; i < doc.stories.length; i++)
{
if (doc.stories.item(i).overflows == true)
{
pg = findPage(doc.stories.item(i).textContainers[doc.stories.item(i).textContainers.length - 1]);
if (pg != null)
_arr.push(pg.name);
}
}
return _arr;
}

// ---------------------------------------------------------
// Hurenkinder ermittlen
// ---------------------------------------------------------
function get_widows(fn_para)
{
var pg = null, _arr = [];

for (i = 0; i < fn_para.length; i++)
{
if (fn_para[i].lines.length == 3)
{
tf_2 = fn_para[i].lines.item(1).parentTextFrames[0];
tf_3 = fn_para[i].lines.item(2).parentTextFrames[0];
if (tf_2 != tf_3)
{
pg = (tf_3 != undefined ) ? findPage(tf_3) : findPage(tf_2);
if (pg != null)
_arr.push(pg.name);
}
}
}
return _arr;
}

// ---------------------------------------------------------
// Seitenzahlen ermittlen
// Gregor Fellenz · 27.7.2010 · http://forums.adobe.com/message/3003131#3003131
// ---------------------------------------------------------
function findPage( theObj )
{
if ( theObj.hasOwnProperty( "baseline" ) )
{
theObj = theObj.parentTextFrames[0];
}
while ( theObj != null )
{
if ( theObj.hasOwnProperty ( "parentPage" ) )
return theObj.parentPage;
var whatIsIt = theObj.constructor;
switch ( whatIsIt )
{
case Page : return theObj;
case Character : theObj = theObj.parentTextFrames[0]; break;
case Footnote :; // drop through
case Cell : theObj = theObj.insertionPoints[0].parentTextFrames[0]; break;
case Note : theObj = theObj.storyOffset.parentTextFrames[0]; break;
case XMLElement : if ( theObj.insertionPoints[0] != null ) { theObj = theObj.insertionPoints[0].parentTextFrames[0]; break; }
case Application : return null;
default: theObj = theObj.parent;
}
if ( theObj == null )
return null;
}
return theObj
}

function num_sort (a, b)
{
return Number(a.replace(/\D+/g,'')) - Number(b.replace(/\D+/g,''));
}

}



als Antwort auf: [#533948]
(Dieser Beitrag wurde von Martin Fischer am 11. Nov 2014, 08:23 geändert)

Zeilenumbruch v. Fußnoten über Seiten

Thaler
Beiträge gesamt: 139

11. Nov 2014, 09:14
Beitrag # 5 von 6
Beitrag ID: #533955
Bewertung:
(5701 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

vielen Dank für die Skripts. Ich habe das erste ausprobiert. Fuktioniert bestens.

Was mir noch nicht aufgefallen war, dass das Problem nur bei dreizeiligen Fußnoten auftaucht. Ist das so richtig?

liebe Grüße
Gregor


als Antwort auf: [#533948]

Zeilenumbruch v. Fußnoten über Seiten

Martin Fischer
  
Beiträge gesamt: 12783

11. Nov 2014, 09:48
Beitrag # 6 von 6
Beitrag ID: #533957
Bewertung:
(5679 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gregor,

Antwort auf: Was mir noch nicht aufgefallen war, dass das Problem nur bei dreizeiligen Fußnoten auftaucht. Ist das so richtig?


So ist es nach meiner Erfahrung.
Ich erkläre mir das folgendermaßen:

Voraussetzung:
1. Fußnotenabsatz-Umbruchoption 2 Zeilen am Anfang und Ende des Absatzes nicht trennen.
2. Fußnotenoption geteilte Fußnoten zulassen.

InDesign versucht, die Textrahmen möglichst zu füllen.
Kommt nun am Ende eines Textrahmens eine längere Fußnote, wird diese bei aktivierter Option "geteilte Fußnoten zulassen", teilweise in den nächsten Textrahmen umbrochen.
Diese Regel dominiert die Einstellungen bei den nicht zu trennenden Zeilen am Absatzende(!).

Bei zweizeiligen (und einzeiligen) Fußnoten wird der Konflikt so entschieden, dass die Zeile mit dem Verweis und die dazugehörige Fußnote in den nächsten Textrahmen verschoben werden.
Hier nimmt InDesign in Kauf, dass der Textrahmen nicht optimal gefüllt ist.
Die Anweisung, 2 Textzeilen am Anfang zusammenzuhalten, dominiert im Konfliktfall die Regel, den Textrahmen möglichst zu füllen.

Bei vierzeiligen Absätzen versucht InDesign die 2 Zeilen am Absatzanfang im Textrahmen noch unterzubringen. Was danach kommt, geht ohne Konflikt auf die nächste Seite.
Wenn die 2 Zeilen der Fußnote nicht unterzubringen sind, wird der Absatz komplett in den nächsten Textrahmen verschoben (wenn der erste Absatz der Fußnote, dann zusammen mit der Zeile, in der der Verweis steht).

Der Konflikt eskaliert bei dreizeiligen Absätzen, bei welchen die ersten beiden Zeilen noch im Textrahmen untergebracht werden können, die dritte aber nicht mehr.
Hier dominiert die Regel, den Textrahmen möglichst zu füllen gegenüber der Anweisung, 2 Zeilen am Absatzende zusammenzuhalten.

Und das ist Käse!
InDesign nimmt hier m.E. eine falsche Gewichtung vor.
Hurenkinder sind laut Konvention (zumindest bei meinen Kunden) schlimmer als Schusterjungen.
Schusterjungen können schon mal zugelassen werden, Hurenkinder, vor allem wenn sie nur aus einer Silbe oder einem Wort bestehen, sind absolut verboten.

Es wäre m.E. akzeptabel, wenn in dem o.g. Konfliktfall ein Schusterjunge entstehen würde.
Konsequenter – und leichter auf Sicht kontrollierbar – wäre eine zwingende Umsetzung der 2/2-Regel bei den zusammenzuhaltenden Zeilen. Damit entstünde eine deutliche Lücke, für die der Anwender eine Lösung durch Einbringen oder Austreiben von Absätzen (oder Änderung der Absatzabstände) davor korrigieren könnte.

Hurenkinder sind ein no go!


als Antwort auf: [#533955]
X