BUG: `is_odd` should be applied to `$n_pages`, not `$half_n_pages`