effective float strategies
play

Effective Float Strategies Frank Mittelbach DocEng Conference - PowerPoint PPT Presentation

Effective Float Strategies Effective Float Strategies Frank Mittelbach DocEng Conference 2017, Malta Introduction Visualization Adding Floats Frank Mittelbach Results frank.mittelbach@latex-project.org Comparisons The End L A T EX3


  1. Visualization of the algorithm The basics Effective Float Strategies Frank Mittelbach 230 200 Introduction 1 1 Visualization ① ① ① ① ① ① Adding Floats Results ✻ Comparisons too close The End Step ◮ Other active nodes will fail too, so try next breaks . . . ( ) : :

  2. Visualization of the algorithm The basics Effective Float Strategies Frank Mittelbach 230 200 Introduction 1 1 Visualization ① ① ① ① ① ① Adding Floats Results ✻ Comparisons still too close The End Step ◮ Continue trying . . . ( ) : :

  3. Visualization of the algorithm The basics Effective Float Strategies Frank Mittelbach 230 200 Introduction 1 1 Visualization ① ① ① ① ① ① Adding Floats Results ✻ Comparisons still too close The End Step ◮ Continue trying . . . ( ) : :

  4. Visualization of the algorithm The basics Effective Float Strategies Frank Mittelbach 230 200 Introduction 1 1 Visualization ① ① ① ① ① ① Adding Floats Results ✻ Comparisons 160 The End Step ◮ . . . success (costs 160) . . . ( ) : :

  5. Visualization of the algorithm The basics Effective Float Strategies Frank Mittelbach 230 200 Introduction 1 1 Visualization ① ① ① ① ① ① Adding Floats Results ✻ ✻ Comparisons 160 The End 200 Step ◮ . . . alternative solution (costs 200) . . . ( ) : :

  6. Visualization of the algorithm The basics Effective Float Strategies Frank Mittelbach 230 200 390 Introduction 1 1 2 Visualization ① ① ① ① ① ① Adding Floats Results ✻ ✻ Comparisons 160 The End 200 Step ◮ Make active node for best solution . . . ( ) : :

  7. Visualization of the algorithm The basics Effective Float Strategies Frank Mittelbach 230 200 390 Introduction 1 1 2 Visualization ① ① ① ① ① ① Adding Floats Results ✻ Comparisons 100 The End Step ◮ Next break with solution (costs 100) . . . ( ) : :

  8. Visualization of the algorithm The basics Effective Float Strategies Frank Mittelbach 230 200 390 Introduction 1 1 2 Visualization ① ① ① ① ① ① Adding Floats Results ✻ ✻ Comparisons 100 The End 110 Step ◮ . . . alternative solution (cost 110) . . . ( ) : :

  9. Visualization of the algorithm The basics Effective Float Strategies Frank Mittelbach 230 200 390 310 Introduction 1 1 2 2 Visualization ① ① ① ① ① ① Adding Floats Results ✻ ✻ Comparisons 100 The End 110 Step ◮ Second solution is best overall, make active node . . . ( ) : :

  10. Visualization of the algorithm The basics Effective Float Strategies Frank Mittelbach 230 200 390 310 Introduction 1 1 2 2 Visualization ① ① ① ① ① ① Adding Floats Results ✻ ✻ ✻ Comparisons 100 The End 110 too close Step ◮ Try next active node to make third page (fail) . . . ( ) : :

  11. Visualization of the algorithm The basics Effective Float Strategies Frank Mittelbach 230 200 390 310 Introduction 1 1 2 2 Visualization ① ① ① ① ① ① Adding Floats Results ✻ Comparisons too far away now The End Step ◮ Try next break with first active node . . . ( ) : :

  12. Visualization of the algorithm The basics Effective Float Strategies Frank Mittelbach 230 200 390 310 Introduction 1 1 2 2 Visualization ① ① ① ① ① ① Adding Floats Results ✻ Comparisons too far away now The End Step ◮ . . . disable active node (too far away) . . . ( ) : :

  13. Visualization of the algorithm The basics Effective Float Strategies Frank Mittelbach 230 200 390 310 Introduction 1 1 2 2 Visualization ① ① ① ① ① ① Adding Floats Results ✻ ✻ Comparisons The End 140 Step ◮ Try next active node (success, costs 140) . . . ( ) : :

  14. Visualization of the algorithm The basics Effective Float Strategies Frank Mittelbach 230 200 390 310 340 Introduction 1 1 2 2 2 Visualization ① ① ① ① ① ① Adding Floats Results ✻ ✻ Comparisons The End 140 Step ◮ Make new active node for solution . . . ( ) : :

  15. Visualization of the algorithm The basics Effective Float Strategies Frank Mittelbach 230 200 390 310 340 Introduction 1 1 2 2 2 Visualization ① ① ① ① ① ① Adding Floats Results ✻ ✻ ✻ Comparisons The End 140 too close Step ◮ Look at active nodes ending second page (fail) . . . ( ) : :

  16. Visualization of the algorithm The basics Effective Float Strategies Frank Mittelbach 200 390 310 340 Introduction 1 2 2 2 Visualization ① ① ① ① ① ① Adding Floats Results Comparisons The End Step ◮ . . . continue with next break . . . ( ) : :

  17. Visualization of the algorithm Complexity Effective Float Strategies Frank Mittelbach 230 200 390 310 340 Introduction 0 1 1 2 2 2 Visualization ① ① ① ① ① ① Adding Floats Results Comparisons The End Complexity ◮ Loop through all n breakpoints ◮ and try making pages back to each active node ◮ Thus the complexity is ◮ O ( n × � average length of active list � ) ( ) : :

  18. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 660 580 830 Mittelbach 5 5 6 Introduction Visualization ① ① ① ① ① ① Adding Floats Results Comparisons The End In later parts of the document . . . ◮ active nodes for different pages may get close together ( ) : :

  19. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 660 580 830 Mittelbach 5 5 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ Results 110 Comparisons The End Step ◮ One candidate solution . . . ( ) : :

  20. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 660 580 830 Mittelbach 5 5 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ Results 110 Comparisons 120 The End Step ◮ Another candidate solution . . . ( ) : :

  21. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 660 580 830 Mittelbach 5 5 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ ✻ Results 110 Comparisons 120 The End 200 Step ◮ And as page height is identical this one competes too . . . ( ) : :

  22. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 660 580 830 Mittelbach 5 5 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ ✻ Results 110 Comparisons 120 The End 200 Step ◮ So we only need to remember the best of them . . . ( ) : :

  23. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 660 580 830 700 Mittelbach 5 5 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats Results Comparisons The End Step ◮ . . . and make one active node for it . . . ( ) : :

  24. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 660 580 830 700 Mittelbach 5 5 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ Results too far away Comparisons The End Step ◮ And . . . ( ) : :

  25. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 660 580 830 700 Mittelbach 5 5 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ Results too far away Comparisons The End Step ◮ And so . . . ( ) : :

  26. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 660 580 830 700 Mittelbach 5 5 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ Results Comparisons 100 The End Step ◮ And so on . . . ( ) : :

  27. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 660 580 830 700 Mittelbach 5 5 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ ✻ Results Comparisons 100 The End 160 Step ◮ And so on with . . . ( ) : :

  28. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 660 580 830 700 Mittelbach 5 5 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ ✻ ✻ Results Comparisons 100 The End 160 too close Step ◮ And so on with all . . . ( ) : :

  29. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 660 580 830 700 Mittelbach 5 5 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ ✻ ✻ Results Comparisons 100 The End 160 too close Step ◮ And so on with all further . . . ( ) : :

  30. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 660 580 830 700 680 Mittelbach 5 5 6 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ ✻ ✻ Results Comparisons 100 The End 160 too close Step ◮ And so on with all further breaks . . . ( ) : :

  31. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 580 830 700 680 Mittelbach 5 6 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ Results too far away Comparisons The End Step ◮ And so on with all further breaks . . . ( ) : :

  32. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 580 830 700 680 Mittelbach 5 6 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ Results too far away Comparisons The End Step ◮ And so on with all further breaks . . . ( ) : :

  33. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 580 830 700 680 Mittelbach 5 6 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ Results Comparisons 145 The End Step ◮ And so on with all further breaks . . . ( ) : :

  34. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 580 830 700 680 Mittelbach 5 6 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ ✻ Results Comparisons 145 The End too close Step ◮ And so on with all further breaks . . . ( ) : :

  35. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 580 830 700 680 975 Mittelbach 5 6 6 6 7 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ ✻ Results Comparisons 145 The End too close Step ◮ And so on with all further breaks . . . ( ) : :

  36. Visualization of the algorithm Pages have identical heights Effective Float Strategies Frank 830 700 680 975 Mittelbach 6 6 6 7 Introduction Visualization ① ① ① ① ① ① ① ① ① Adding Floats Results Comparisons The End Step ◮ And so on with all further breaks . . . (total of 4) ( ) : :

  37. Visualization of the algorithm Pages have different heights Effective Float Strategies Frank 660 580 830 Mittelbach 5 5 6 Introduction Visualization ① ① ① ① ① ① Adding Floats Results Comparisons The End Different page heights are the more complex situation ◮ as we will have more active nodes to deal with . . . ( ) : :

  38. Visualization of the algorithm Pages have different heights Effective Float Strategies Frank 660 580 830 Mittelbach 5 5 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ Results 110 Comparisons The End Step ◮ Trying to build page 6 (success) . . . ( ) : :

  39. Visualization of the algorithm Pages have different heights Effective Float Strategies Frank 660 580 830 Mittelbach 5 5 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ Results 110 Comparisons 120 The End Step ◮ . . . an alternative (slightly higher costs) . . . ( ) : :

  40. Visualization of the algorithm Pages have different heights Effective Float Strategies Frank 660 580 830 700 Mittelbach 5 5 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ Results 110 Comparisons 120 The End Step ◮ but overall better . . . ( ) : :

  41. Visualization of the algorithm Pages have different heights Effective Float Strategies Frank 660 580 830 700 Mittelbach 5 5 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ ✻ Results 110 Comparisons 120 The End 200 Step ◮ We can also make page 7 end here . . . ( ) : :

  42. Visualization of the algorithm Pages have different heights 1030 Effective Float Strategies 7 Frank 660 580 830 700 Mittelbach 5 5 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ ✻ Results 110 Comparisons 120 The End 200 Step ◮ . . . thus we make another active node . . . ( ) : :

  43. Visualization of the algorithm Pages have different heights 1030 Effective Float Strategies 7 Frank 660 580 830 700 Mittelbach 5 5 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ Results too far away Comparisons The End Step ◮ Try next break . . . ( ) : :

  44. Visualization of the algorithm Pages have different heights 1030 Effective Float Strategies 7 Frank 660 580 830 700 Mittelbach 5 5 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ Results too far away Comparisons The End Step ◮ First active node no longer reachable, thus disable . . . ( ) : :

  45. Visualization of the algorithm Pages have different heights 1030 Effective Float Strategies 7 Frank 660 580 830 700 Mittelbach 5 5 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ Results Comparisons 100 The End Step ◮ Next one is possible (costs 100) . . . ( ) : :

  46. Visualization of the algorithm Pages have different heights 1030 Effective Float Strategies 7 Frank 660 580 830 700 680 Mittelbach 5 5 6 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ Results Comparisons 100 The End Step ◮ . . . thus another solution for page 6 . . . ( ) : :

  47. Visualization of the algorithm Pages have different heights 1030 Effective Float Strategies 7 Frank 660 580 830 700 680 Mittelbach 5 5 6 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ ✻ Results Comparisons 100 The End 160 Step ◮ A candidate for page 7 (costs 160) . . . ( ) : :

  48. Visualization of the algorithm Pages have different heights 1030 Effective Float Strategies 7 Frank 660 580 830 700 680 Mittelbach 5 5 6 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ ✻ ✻ Results Comparisons 100 The End 160 too close Step ◮ In fact the only one (as this one is too short), so . . . ( ) : :

  49. Visualization of the algorithm Pages have different heights 1030 990 Effective Float Strategies 7 7 Frank 660 580 830 700 680 Mittelbach 5 5 6 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ ✻ ✻ Results Comparisons 100 The End 160 too close Step ◮ . . . make yet another active node . . . ( ) : :

  50. Visualization of the algorithm Pages have different heights 1030 990 Effective Float Strategies 7 7 Frank 660 580 830 700 680 Mittelbach 5 5 6 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ ✻ ✻ ✻ Results Comparisons 100 The End 160 too close Step ◮ Ending page 8 here doesn’t work . . . ( ) : :

  51. Visualization of the algorithm Pages have different heights 1030 990 Effective Float Strategies 7 7 Frank 580 830 700 680 Mittelbach 5 6 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ Results too far away Comparisons The End Step ◮ Next break is too far from first active node . . . ( ) : :

  52. Visualization of the algorithm Pages have different heights 1030 990 Effective Float Strategies 7 7 Frank 580 830 700 680 Mittelbach 5 6 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ Results too far away Comparisons The End Step ◮ . . . so we disable it . . . ( ) : :

  53. Visualization of the algorithm Pages have different heights 1030 990 Effective Float Strategies 7 7 Frank 580 830 700 680 Mittelbach 5 6 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ Results Comparisons 145 The End Step ◮ But next active node is a candidate for page 7 . . . ( ) : :

  54. Visualization of the algorithm Pages have different heights 1030 990 Effective Float Strategies 7 7 Frank 580 830 700 680 Mittelbach 5 6 6 6 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ ✻ Results Comparisons 145 The End too close Step ◮ In fact the only one, so . . . ( ) : :

  55. Visualization of the algorithm Pages have different heights 1030 990 Effective Float Strategies 7 7 Frank 580 830 700 680 975 Mittelbach 5 6 6 6 7 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ ✻ Results Comparisons 145 The End too close Step ◮ . . . make yet another active node . . . ( ) : :

  56. Visualization of the algorithm Pages have different heights 1030 990 Effective Float Strategies 7 7 Frank 580 830 700 680 975 Mittelbach 5 6 6 6 7 Introduction Visualization ① ① ① ① ① ① Adding Floats ✻ ✻ ✻ ✻ Results Comparisons 145 The End too close Step ◮ Page 8 is not possible from here, so we are done . . . ( ) : :

  57. Visualization of the algorithm Pages have different heights 1030 990 Effective Float Strategies 7 7 Frank 830 700 680 975 Mittelbach 6 6 6 7 Introduction Visualization ① ① ① ① ① ① ① ① ① Adding Floats Results Comparisons The End Step ◮ . . . and so on and so forth . . . (total of 6 in this example) ( ) : :

  58. Visualization of the algorithm Complexity II Effective Float Strategies Pages have identical heights (after some page) Frank ◮ Active list is bounded by a constant Mittelbach ◮ Thus Introduction ◮ O ( n × � average length of active list � ) = O ( n ) Visualization Adding Floats Pages have varying heights Results Comparisons ◮ Active list can grow arbitrarily (i.e., O ( n ) ) The End ◮ Thus we end up with ◮ O ( n × � average length of active list � ) = O ( n 2 ) Spread and paragraph variations ◮ They add a factor of O (1) to the length of the active list ◮ Thus the complexity doesn’t change! ( ) : :

  59. Visualization of the algorithm Complexity II Effective Float Strategies Pages have identical heights (after some page) Frank ◮ Active list is bounded by a constant Mittelbach ◮ Thus Introduction ◮ O ( n × � average length of active list � ) = O ( n ) Visualization Adding Floats Pages have varying heights Results Comparisons ◮ Active list can grow arbitrarily (i.e., O ( n ) ) The End ◮ Thus we end up with ◮ O ( n × � average length of active list � ) = O ( n 2 ) Spread and paragraph variations ◮ They add a factor of O (1) to the length of the active list ◮ Thus the complexity doesn’t change! ( ) : :

  60. Visualization of the algorithm Complexity II Effective Float Strategies Pages have identical heights (after some page) Frank ◮ Active list is bounded by a constant Mittelbach ◮ Thus Introduction ◮ O ( n × � average length of active list � ) = O ( n ) Visualization Adding Floats Pages have varying heights Results Comparisons ◮ Active list can grow arbitrarily (i.e., O ( n ) ) The End ◮ Thus we end up with ◮ O ( n × � average length of active list � ) = O ( n 2 ) Spread and paragraph variations ◮ They add a factor of O (1) to the length of the active list ◮ Thus the complexity doesn’t change! ( ) : :

  61. Managing floats Effective Float Strategies Frank Mittelbach Introduction Visualization Adding Floats Results Comparisons The End John Tenniel, 1870 ( ) : :

  62. Managing floats A visualization Effective Float Strategies Frank Mittelbach Introduction Visualization Adding Floats 660 580 Results 2 2 Comparisons The End ① ① ① ① ① ① We extend the algorithm at the point where we . . . ◮ . . . add active nodes for a new spread (here page 3) ( ) : :

  63. Managing floats A visualization Effective Float Strategies Frank Mittelbach Introduction Visualization Adding Floats 660 580 Results 2 2 Comparisons The End ① ① ① ① ① ① ✻ 110 Step ◮ Trying to build page 3 (success) . . . ( ) : :

  64. Managing floats A visualization Effective Float Strategies Frank Mittelbach Introduction Visualization Adding Floats 660 580 Results 2 2 Comparisons The End ① ① ① ① ① ① ✻ ✻ 110 120 Step ◮ . . . an alternative (slightly higher costs) . . . ( ) : :

  65. Managing floats A visualization Effective Float Strategies Frank Mittelbach Introduction Visualization Adding Floats 660 580 700 Results 2 2 3 Comparisons The End ① ① ① ① ① ① ✻ ✻ 110 120 Step ◮ but overall better . . . so this ends the spread! ( ) : :

  66. Managing floats A visualization Effective Float Strategies Frank Mittelbach Introduction Visualization Adding Floats 660 580 700 Results no floats 2 2 3 Comparisons The End ① ① ① ① ① ① ✻ ✻ 110 120 Now we prepare float placements for the next spread ◮ . . . this is for the case without floats ( ) : :

  67. Managing floats A visualization 700 Effective Float . Strategies . . 3 Frank 700 Mittelbach float placement B 3 Introduction 700 Visualization float placement A 3 Adding Floats 660 580 700 Results no floats 2 2 3 Comparisons The End ① ① ① ① ① ① ✻ ✻ 110 120 Now we prepare float placements for the next spread ◮ . . . and for each layout with floats add another node ( ) : :

  68. Managing floats A visualization 700+... Effective Float . Strategies . . 3 Frank 700+B Mittelbach float placement B 3 Introduction 700+A Visualization float placement A 3 Adding Floats 660 580 700 Results no floats 2 2 3 Comparisons The End ① ① ① ① ① ① Now we prepare float placements for the next spread ◮ . . . which may have extra costs associated . . . ( ) : :

  69. Managing floats A visualization 700+... Effective Float . Strategies . . 3 Frank 700+B Mittelbach float placement B 3 Introduction 700+A Visualization float placement A 3 Adding Floats 660 580 700 Results no floats 2 2 3 Comparisons The End ① ① ① ① ① ① ✻ too far away Step ◮ . . . then we continue looping . . . ( ) : :

  70. Managing floats A visualization 700+... Effective Float . Strategies . . 3 Frank 700+B Mittelbach float placement B 3 Introduction 700+A Visualization float placement A 3 Adding Floats 660 580 700 Results no floats 2 2 3 Comparisons The End ① ① ① ① ① ① ✻ too far away Step ◮ . . . then we continue looping . . . ( ) : :

  71. Managing floats A visualization 700+... Effective Float . Strategies . . 3 Frank 700+B Mittelbach float placement B 3 Introduction 700+A Visualization float placement A 3 Adding Floats 660 580 700 Results no floats 2 2 3 Comparisons The End ① ① ① ① ① ① ① ① ① ✻ Step ◮ . . . and so on and so forth . . . ( ) : :

  72. Executing the extended algorithm Main points Effective Float When ending a spread Strategies Frank ◮ Add new active nodes for each candidate placement Mittelbach ◮ Add “costs” in case the placement involves a preference rule Introduction that can be determined at this point Visualization (e.g., some float regions are preferred over other) Adding Floats Results When seeing a call-out Comparisons ◮ Check if any call-out/float relation is violated and The End if so deactivate the corresponding active node ◮ If a call-out/float preference rule is triggered we add the corresponding costs to the active node When attempting to make a page (or column) ◮ Make a new active node only if we have seen all required call-outs (i.e., otherwise the attempt fails) ( ) : :

  73. Executing the extended algorithm Main points Effective Float When ending a spread Strategies Frank ◮ Add new active nodes for each candidate placement Mittelbach ◮ Add “costs” in case the placement involves a preference rule Introduction that can be determined at this point Visualization (e.g., some float regions are preferred over other) Adding Floats Results When seeing a call-out Comparisons ◮ Check if any call-out/float relation is violated and The End if so deactivate the corresponding active node ◮ If a call-out/float preference rule is triggered we add the corresponding costs to the active node When attempting to make a page (or column) ◮ Make a new active node only if we have seen all required call-outs (i.e., otherwise the attempt fails) ( ) : :

  74. Executing the extended algorithm Main points Effective Float When ending a spread Strategies Frank ◮ Add new active nodes for each candidate placement Mittelbach ◮ Add “costs” in case the placement involves a preference rule Introduction that can be determined at this point Visualization (e.g., some float regions are preferred over other) Adding Floats Results When seeing a call-out Comparisons ◮ Check if any call-out/float relation is violated and The End if so deactivate the corresponding active node ◮ If a call-out/float preference rule is triggered we add the corresponding costs to the active node When attempting to make a page (or column) ◮ Make a new active node only if we have seen all required call-outs (i.e., otherwise the attempt fails) ( ) : :

  75. Executing the extended algorithm Main points Effective Float When ending a spread Strategies Frank ◮ Add new active nodes for each candidate placement Mittelbach ◮ Add “costs” in case the placement involves a preference rule Introduction that can be determined at this point Visualization (e.g., some float regions are preferred over other) Adding Floats Results When seeing a call-out Comparisons ◮ Check if any call-out/float relation is violated and The End if so deactivate the corresponding active node ◮ If a call-out/float preference rule is triggered we add the corresponding costs to the active node When attempting to make a page (or column) ◮ Make a new active node only if we have seen all required call-outs (i.e., otherwise the attempt fails) ( ) : :

Recommend


More recommend