У меня была такая задача.
Делал через перекрессные ссылки. Городишь пару стилей ссылок (один на заголовок и страницу заголовка, второй на дефис и конечную страницу).
Сначала ловишь абзац с заголовком. И делаешь абзац на финал главы с уникальным именем стиля и ловишь его тож для последней страницы.
Единственный геморой надо руками все проделать для книги, зато потом все само работает. Есть скрипты позволяющие перекресные ссылки на лету делать, упрощает задачу.
Можно через TOC сделать.
Так же делаешь пустой абзац со стилем вконце главы (только придется пробельчик поставить без него не словится) и генерируешь двухуровневое оглавление потом заменой через ГРЕП проходишь, а то они будут на разных строках.
Только это обновлять потом геморойнее, хотя если грепы настроить то и это быстро.
Что-то диапазонами страниц не могу понять. Я представляю и видел как работает перекрсная ссылка, но тяжело представить как это же применить к созданию диапазона страниц...