Я реализовал базовый алгоритм макета страницы для размещения сносок. В основном:
- Разметка строки основного текста.
- Если он содержит ссылки на сноски, выкладывайте сноски строка за строкой.
- Перейти к 1.
На каждом шаге я проверяю, превышает ли общая высота (основной текст + текст сноски + пробел) высоту страницы. Если это произойдет, я удаляю последнюю выложенную строку, и страница завершена.
Мой вопрос: Как мне справиться с ситуацией, когда основной текст находится в двух столбцах?
По сути, мне нужно было бы заранее знать общую разрешенную высоту основного текста, чтобы правильно расположить столбцы, но это невозможно узнать, пока я не узнаю высоту текста сноски.
Я также не могу просто взять суммарную высоту строк основного текста и разделить на 2 из-за разной высоты строк, межстрочного интервала, расстояния между абзацами и т. Д.