back
▲ 238 points

Show HN: Sioyek – PDF viewer for reading research papers and textbooks

github.com
by hexomancer·4y ago·81 comments·view on hn ↗
Some of the features:

* Quickly preview or jump to figures/references/equations/etc. (even if the PDF doesn't have links)

* Search paper names in google scholar by middle clicking on their name

* Searchable table of contents

* Searchable highlights/bookmarks

* Browser-like history navigation

* Mark locations for quick navigation (Vim style)

* Synctex support

Video demo of some features: https://www.youtube.com/watch?v=yTmCI0Xp5vI

81 comments
Previous discussion from 7 months ago: https://news.ycombinator.com/item?id=27893303
For research work I prefer LiquidText on a 12.9” iPad with an Apple pencil. It’s critical for me to make notes and annotations.

It’s crazy how far pen computing has come. I was an early adopter of this as a college student back in the 2000’s. I had a Toshiba laptop which had a screen that would rotate around and fold on itself to become a tablet. It had a pen for writing and ran a special version of Windows designed for tablets. (https://the-gadgeteer.com/2006/04/27/toshiba_portege_m200/)

There weren’t many good sources of PDFs so I made my own. I would take my textbooks to Kinkos where they had an industrial paper cutter that was able to slice off the binding, leaving me with a bunch of loose pages. I would use a double sided auto-feed scanner to scan all the pages into searchable PDFs.

Sadly the technology wasn’t ready for prime time. The software wasn’t good enough, drawing was limited and not many apps took advantage of the pen. The hardware was heavy, bulky, and I always had to be around an outlet because the battery life was abysmal.

An iPad + pencil is a truly remarkable experience compared to that previous setup.

> It’s critical for me to make notes and annotations.

What notes and annotations do you usually make? I can understand notes when you're at a lecture discussing a paper, but my experience is that the lecture rarely pertains to one specific paper.

I don't really take a lot of notes, so I wonder if I'm doing something wrong.

Could you please tell me what generation is your 12.9” iPad? I am thinking about getting an older model for annotating papers, taking notes, and to use as a whiteboard during Zoom calls. I am trying to figure out what is the oldest model that would be appropriate for these tasks. Would the first gen be performant enough?
The only thing missing is full-fledged Zotero, or something as good!
It would be great to reflow the document in single column mode, not to scroll back from the bottom of the left one to the top of the right one.

Actually, if these document are mostly consumed on screen, just write them single column, half of an A4 or Letter, or plain HTML. Do they keep creating PDFs because publishers sell paper journals?

I prefer PDFs hundred times over plain HTML, both for research papers and books. HTML can only reproduce proper structuring with great pain and it is essential for most scientific content. I rather scroll sideways over not having the essential equation displayed correctly.
PDFs are much better to distribute. You get a consistent rendering on any device, which is particularly important for mathematical expressions, tables, and figures. I don't want to navigate the zillion libraries I can use to do this in HTML, which will break anyway because the viewer won't have the right version. PDF works just fine for scientific papers.
In my field, almost no one really buys paper journals. I think it's mostly a matter of tradition at this point. However, PDF does also mean the author gets control over what the document looks like. Of course it's possible to produce similar quality work using HTML, but many authors and publishers are just so accustomed to the existing stack that a lot of it is tradition. Fortunately, it's becoming fairly common for IEEE to provide HTML versions of papers generated from the LaTeX source that are single column. They're not perfect, but they can be a nicer reading experience in some cases.

Personally, if I'm doing any serious paper reading, I'm often doing it on my reMarkable so I like a nicely formatted PDF.

I haven't tried this yet, but the idea that I can click on a reference and have a window pop up to show me the equation/figure/table without actually taking me there is awesome. I've been trying to figure out how to do this pop-up thing in latex so it would do this in regular pdf viewers but the current methods I've seen are all too clunky. To be able to do this purely in the viewer is fantastic.
I usually read PDFs in Firefox, with two tabs open for the same document. I use the second tab to scroll around without loosing context.

This also possible to achieve in Emacs with pdf-tools, and with just one instance of the document, by setting marks and following hyperlinks.

evince does that when you hover over links.
The preview feature, in particular, is exceptionally important. I cannot overstate what a difference it makes when reading deeply cross-referenced material.
This looks great. It was obviously created by someone who reads technical papers, and figured out how to make the process more convenient. Going to install as soon as I finish enjoying the videos—which are also well done.
A nice feature would be the ability to say from which page, page counts starts.

Many books label the first page of chapter 1 as page 1, and the preceding pages I… XI …

My solution is to split the pdf into 3

- before page 1 - main content - index (everything after main content)

This makes it possible to type the page number and go to that page.

We have this feature! See https://github.com/ahrm/sioyek/issues/86.
Since this topic is likely to garner people who do or use research I hope to find an answer to the burning question of why on Earth don't researchers put a freaking publication year in their paper. Sometimes it's virtually impossible to learn if the paper is 20- or 2-years old. For something that matters quite a lot I always find this "tradition" a bit nonsensical.
I don't know, but usually searching for the paper title online, e.g. in google scholar or (for CS papers) on dblp, will turn up the venue where it's published, including publication date. In fact, if it's in dblp, it will show the year right on the results page.
How can the researchers be 100% sure in what year the paper will get published? I imagine that at best they could put the year of submission into the paper, but that's about it.
You mean in a preprint or something? Because in any published version, of course, the year is right there.
Are the notes and highlights stored in the PDF? Asking because I use Zotero in several machines and I need annotations and highlights to be synchronized without much hassle.

Zotero is quite close to provide a PDF reader itself (available in the Beta release, AFAIK), but nice to see alternatives with academic documents in mind.

No, however, we have a command which exports a version of PDF file with embedded notes and highlights.
This looks really neat. I hope to make use of it.

I noticed a minor error in the tutorial under Basics: "scrolling down half of screen width" should be something like "scrolling down half the window height". Animating the scrolling would make it much less disorienting.

Is there a way to see a list of marks? Slices of the screen like the reference preview would be great, but just a list of defined mark names and page numbers would be useful.

I'd love proper touch support. It's so much faster for zooming in on figures or scrolling through pages quickly.

I often view PDFs with two pages side by side in Adobe Reader or Sumatra, and that's great for looking for things (move through documents with left and right arrows). I'd miss that.

Currently there is no way to see list of marks but you can see the list of bookmarks.
Installed using the zip file, and it works great. Fantastic job!

But I thought you’d like to know that I couldn’t get it to compile on a Debian system. I followed your instructions, but found I also had to install

    libglu1-mesa-dev
    libxi-dev
    libxrandr-dev
and then the build script failed with

    Project ERROR: Unknown module(s) in QT: core gui sql opengl widgets quickwidgets 3dcore 3danimation 3dextras 3dinput 3dlogic 3drender openglextensions
I have QT installed, but I couldn’t figure out which packages are missing.
You may need to install q3d-dev and qtdeclarative5 (the exact package names might be different for your distribution). Also see this: https://github.com/ahrm/sioyek/issues/97#issuecomment-962556...
I have been using this as the PDF viewer on Windows for few months now, and like it. Thanks for creating this. I like the fast bookmark lookup (t+start typing), vim like bindings. Dark mode also works well. Real estate is maximally used for the content.

There were couple of features that I missed - and needed to fire up a different viewer: 1. View PDF properties 2. Enter a slide-show mode, where a full page is shown and arrow keys advance (not scroll) the page.

We added slide-show mode a while back: https://github.com/ahrm/sioyek/issues/52
What about notes? Is there a way to add notes to highlights? It would be nice if they are also displayed on the side.
The bookmark feature is basically notes, though they are not currently displayed on the side.
This looks great. Now I need it in emacs. pdf-tools could probably emulate some of these features with enough work…
What I like most about this is the the idea of clicking a reference to display a floating preview of the concerning paper information, figure or table. That seems like a really nice solution!

Any idea which other PDF viewers implement this behavior?

If you're on Linux, GNOME Document viewer (aka evince) does this when you hover over a link. It doesn't work for non-linked references afaik though.
Skim.app also does this
Pdfs often have huge margins, so a feature I'd like to have is soft crop - just for viewing, without modifying the file, like goodreader has. Although it's not as important on desktop as it is on a tablet.
So I use Moonreader on Android and it preserves the zoom level as you scroll/flip through pages so it kind of does this. Not sure if that's relevant for you.
What would be the benefit of using this compared to something like Sumatra?
I used to use sumatra myself, in fact before I started developing sioyek, I tried to add some of the features to sumatra here: https://github.com/sumatrapdfreader/sumatrapdf/pull/869 .

Anyway, I don't think sumatra has these features:

* Marks

* Preview links

* Jump to figures if the PDF doesn't have links

* Portals

* Searchable highlights

And some other features which are shown in the video and github page. Also sioyek is available on linux and macos.

Does it fit page correctly according to each page size, rather than the max page size? This is one bug in zathura that bothers me.
Yes, there is a "smart fit page" shortcut which automatically fits to screen width as you scroll.
It'd be nice if it would automagically find the PDF's BibTex corresponding entry...
I wonder how far from Linux-equivalent of Marginotes we are. Seems like a lot
Does this work on Linux?
It does
From a world-class research university, I hold a Ph.D. in math and am pretty good with D. Knuth's math word processing software TeX.

I don't like trying to read PDF files of math on a computer screen: Typically the fonts are way, Way, WAY too small unless I magnify the display of the file a LOT, but then the lines are WAY too long to fit on the screen forcing me to use the horizontal scroll bar as the main effort in reading the math. Or put another way, in PDF files of math documents, nearly always there are WAY too many characters per line. The situation seems to be that the journal wanted to save on paper and ink!!!! When I develop a document with TeX, I use the TeX commands to magnify the fonts by a LOT. Bluntly, without a screen at least four feet wide with maybe 16,000 pixels per line, reading the usual PDF file of math is a PAIN. So, sure, I'm eager for better ways to read PDF files of math.

My reactions to this OP (original post):

(1) I have no idea what is meant by a "middle click", nor would I have any idea where to look up the meaning. There might be a rule in technical writing -- never, ever, but NEVER, not even once in a whole career, on risk of horrible pain, e.g., a barbed wire enema, use terminology that is not very, VERY, essentially universally, well understood without explanation or at least a reference. This rule would also apply to acronyms.

(2) For searching a PDF file of math, I have no idea how I would type in the math expression to be searched for. Maybe the software is accepting TeX syntax -- I can guess that even that approach would have problems.

(3) For the video, the text is far, far too small to read and goes by far too fast to get any information at all.

Broadly I can't make any useful sense out of the OP at all.

I'm eager for better ways to read PDF files of math papers, and maybe there is some good work and good utility here, but I have zip, zilch, zero understanding of what is being attempted or how it would work -- nichts, nil, nada, none.

Uh, this is not nearly the only place where some technical material could use better technical writing.

> nor would I have any idea where to look up the meaning

https://www.google.com/search?q=middle+click

There. Does your "world-class research university" block the use of search engines?

Goes to show you someone can get a PhD in math, do research at a "world class institution", not know what a middle click is, and still be a dick about your technical writing. Does wonders for y'alls imposter syndrome eh?
> I have no idea what is meant by a "middle click", nor would I have any idea where to look up the meaning.

Clicking the middle button on a mouse. Searching for [middle click] on Duck Duck Go or Google would tell you what it is.