better support for reading multi-column documents
@danw
Submitted by Dan Winship Link to original bug (#166830)
Description
[Note: this is a distant future/wishlist/blue sky kind of idea. It's just something I'd been thinking about before evince even started and I wanted to throw it out there and see what other people think.]
All existing PDF viewers suck for reading multi-column documents (assuming you can't comfortably fit an entire page on your monitor all at once). This really sucks given that multi-column layouts are extremely common in PDF files.
The way you end up having to read them currently is that first you see the top 2/3 or so of the page, and you read the top of the first column:
+---------------------------------+
| The licenses the software |
| for most is free for |
| software are all its |
| designed to users. This |
| take away General |
| your freedom Public |
| to share and License |
| change it. applies to |
| By contrast, most of the |
| the GNU Free |
| General Software |
| Public Foundation's |
| License is software and |
| intended to to any other |
+---------------------------------+
Then you scroll down and read the final bit of the first column:
+---------------------------------+
| guarantee program |
| your freedom whose |
| to share and authors |
| change free commit to |
| software--to using it. |
| make sure (Some other |
| 1 | <- end of page 1
| ---------------------------- |
| | <- start of page 2
| Free software, we |
| Software are |
| Foundation referring to |
| software is freedom, not |
| covered by price. Our |
+---------------------------------+
But then you have to scroll backwards to get back to the top of the page so you can start reading the second column. And you have to jump back and forth like this through every single page of the document.
It would be easier if the viewer could present the text in a single flow somehow. One possibility would be to display each page twice, first with the right column grayed out, and then with the left column grayed out:
+---------------------------------+
| The licenses ... ........ | "..."s mean dimmed text
| for most .. .... ... |
| software are ... ... |
| designed to ...... .... |
| take away ....... |
| your freedom ...... |
| to share and ....... |
| change it. ....... .. |
| By contrast, .... .. ... |
| the GNU .... |
| General ........ |
| Public ............ |
| License is ........ ... |
| intended to .. ... ..... |
+---------------------------------+
+---------------------------------+
| guarantee ....... |
| your freedom ..... |
| to share and ....... |
| change free ...... .. |
| software--to ..... ... |
| make sure ..... ..... |
| 1 | <- end of page 1
| ---------------------------- |
| | <- start of page 1 again
| ... ........ the software |
| ... .... is free for |
| ........ ... all its |
| ........ .. users. This |
| .... .... General |
+---------------------------------+
+---------------------------------+
| .... ....... Public | rest of page 1...
| .. ..... ... License |
| ...... ... applies to |
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
| .... .... (Some other |
| 1 | <- end of page 1
| ---------------------------- |
| | <- start of page 2
| Free ......... .. |
| Software ... |
| Foundation ......... .. |
| software is ........ ... |
| covered by ...... ... |
+---------------------------------+
Things that didn't seem to be exclusively part of either column (page numbers, diagrams, sidebars, etc) could be ungrayed in both views.
I don't know how much work it is for either the frontends or backends to automatically figure out that a given document uses multiple columns. It would probably need to be figured out on a per-page basis anyway, since some papers use a single-column layout on the front page and then switch to two-column. Maybe this would have to be something the user turned on explicitly, rather than being figured out automatically.
Maybe people think this particular idea is awful, but the fact remains that it's currently really annoying to read multi-column PDFs, and it would be very cool if we could find a way to make it not be.