我已经实现了脚注放置的基本页面布局算法。基本上是:
在每一步,我都会检查总高度(正文+脚注文字+间隙)是否超过页面高度。如果是,我删除最近布置的行,页面就完成了。
我的问题是:如何处理正文文本分为两列的情况?
我基本上需要提前知道总体允许的正文文本高度才能正确布置列,但在知道脚注文本的高度之前无法知道。
由于线条高度,线条间距,段落间距等的变化,我也不能只取身体文本行的累积高度并除以2。
答案 0 :(得分:1)
有趣的问题。 (阅读:你应该得到更多的赞成。)
如何处理正文文本分为两列的情况?
我认为没有直截了当的回答。答案实际上取决于您为文档设定的审美理想。
我会稍微修改你的算法,以便:
在这种情况下,请选择适合多列布局的文本量。接下来,确定文本该部分中的所有脚注。重新编号脚注(例如,如果您将几页压缩成一页)。现在,将脚注布置在指定区域的单列中。
问题/问题:
如果脚注的总文本不适合脚注部分:从我看到的内容中,您可能需要将脚注文本移到下一页。
你的脚注应该是多列吗?我从来没有见过一个文档,其中脚注是多列的,但这取决于你。
如果有一个硬性要求,所有脚注文本应与引用它的内容位于同一页面中:您需要在算法上弄清楚(动态编程会浮现在脑海中)您可以适应多少给定的页面约束,把剩下的部分拿出来,并尽可能多地布局,然后摆弄文本,这样就没有太多的空白来打扰读者。
答案 1 :(得分:1)
你有3个街区 - 两个用于列,一个用于脚注。显然(列的高度+脚注的高度+间隙)必须低于页面高度。
您可以将旧算法用于第一列。对于第二列,当您添加脚注并导致第一列太长时,将行从第一列的末尾移动到第二列的开头。如果这使得第二列太长,则将线移回第一列并移除最后一个脚注线。