Como mencionado nas instruções que você vinculou:
The default glob expansion puts the pages in alphabetical order.
A página de índice vincula a nove documentos diferentes, cujos nomes não estão em ordem alfabética. Quando você diz htmldoc ... *.html
, as ferramentas os veem nessa ordem e colocam as páginas no documento em ordem alfabética. Você precisa listar os arquivos na linha de comando na ordem em que deseja que htmldoc
os processe.
Nesse caso específico, você pode produzir uma lista ordenada de nomes de arquivos à medida que eles são vinculados no índice com:
awk '/http:|\.\./ {next}; /<a href.*\.html/ { gsub(/.*href="/, "") ; gsub(".html.*", ".html") ; print }' index.html | uniq
então
htmldoc --webpage -f gdb.pdf index.html $(awk '/http:|\.\./ {next}; /<a href.*\.html/ { gsub(/.*href="/, "") ; gsub(".html.*", ".html") ; print }' index.html | uniq)
terá o efeito desejado.