I've been using Xournalpp[1] for many years, highlighting books as I read them, adding in text/hand drawn annotations in whitespaces if necessary. Unlike other PDF readers/annotators, it saves a separate file, so the original PDF is untouched. It can also export the annotated PDF as a new PDF with highlights and annotations. I've used Xournalpp with a convertible laptop with a builtin digitizer+pen, but you can also use it with a mouse to highlight stuff, drawing would be awkward with a mouse though.
Obsidian[2] also has PDF support, where you can open a markdown document side by side with the PDF to take notes as you read. I think it also lets you highlight the PDF itself.
Emacs I think has a similar feature, via plugins/org-mode(?) to the Obsidian setup.
And of course your typical PDF reader probably has support for highlighting PDFs too, but I find them clunky and they save by exporting a PDF, which can be a bit heavy-handed IMO compared to just saving the annotations/highlights as a separate file as Xournalpp does.
> Unlike other PDF readers/annotators, it saves a separate file, so the original PDF is untouched.
Just to give people another perspective on these issues [edit: not to deny the parent's perspective, just to add another]:
In PDFs, annotations are effectively (or actually?) on a separate layer from the document. It's not like marking up a paper book; in a PDF the annotations leave the original untouched, and can be easily hidden or removed.
Another advantage of using PDF annotations is that they are retained, readable, and editable for decades. There's no other file to retain. And if Xournalpp stops being developed, what happens to your annotations?
Fair enough. I was providing alternatives, not prescribing a single solution. You'll notice I said what I use and also provided suggestions that I don't use.
Xournalpp uses layers as well, hiding annotations is also possible there.
Just a different solution to the same problem.
Xournalpp, is free and open source. It is actually a fork of an older software called Xournal. If it stops being developed, C++ compilers aren't going anywhere, I'll compile it myself -- beyond that it's just pedantic to discuss what and what won't be possible in decades.
PDF readers on the other hand, especially proprietary ones have a bad habit of, for lack of a better word, enshitifying (cloud, saas, subscription, etc). I've had PDF a editor corrupt my PDF as well (sample size 1, so not indicative of all PDF editors), my fault for not having backups I suppose, but I've avoided them since.
But whatever works for you, I'm not here to dictate what you can or should use. Just providing ideas as the OP originally asked in the root comment.
Anyhow, the only solution that will survive ultimately is plain text. All others rely on abstractions upon abstraction (C++, compilers, libraries, etc). Plaintext is bits and bytes you can decode by hand if you wanted.
> Fair enough. I was providing alternatives, not prescribing a single solution.
Yes, I agree completely. Sorry that I gave a different impression.
> Xournalpp, is free and open source. It is actually a fork of an older software called Xournal. If it stops being developed, C++ compilers aren't going anywhere, I'll compile it myself -- beyond that it's just pedantic to discuss what and what won't be possible in decades.
Few users will compile anything, and eventually incompatibilities arise between the application and the latest platform. My PDF reader functions fine with documents that are decades old - that is part of the PDF specification; it's not pedantic, it's deliberately and successfully engineered.
> PDF readers on the other hand, especially proprietary ones have a bad habit of, for lack of a better word, enshitifying (cloud, saas, subscription, etc). I've had PDF editors corrupt my PDF as well, my fault for not having backups I suppose, but I've avoided them since.
There are many, many PDF readers. I have no problem finding a good one (I agree, stay away from Adobe, which you seem to describe). Yes, I'd be careful with PDF editors - that's not really what PDFs are designed for afaik.
One of the nice things about Xournalpp is that is just plain XML (the save file). So its really just plaintext, I don't have to bother with reading hundreds of pages of PDF spec to try and write a reader in the future. If I needed to, I only need to write an application capable of rendering a PDF page, then drawing text/lines as described by the XML. Assuming libraries to render the PDF will continue to exist in this theoretical future we're describing here.
<stroke tool="highlighter" color="#00ff007f" width="7.86" fill="60" capStyle="butt">254.802 713.98302 283.955 713.98302</stroke>
<stroke tool="highlighter" color="#00ff007f" width="9" fill="60" capStyle="butt">283.955 714.01302 539.992 714.01302</stroke>
<stroke tool="highlighter" color="#00ff007f" width="0" fill="60" capStyle="butt">539.992 718.51302 539.992 718.51302</stroke>
<text font="Sans" size="8" x="456.87471" y="427.46622" color="#ff0000ff" ts="0" fn="">Here the first capture group is
`([\"'])`, which captures either a
`"` or a `'`. Then the `(.-)` lazy matches
any thing, and finally `%1` matches
the original type of (closing) quote</text>
</layer>
</page>
<page width="612" height="792">
<background type="pdf" pageno="95"/>
<layer>
<stroke tool="highlighter" color="#00ff007f" width="9" fill="60" capStyle="butt">120 78 169.674 78</stroke>
<stroke tool="highlighter" color="#00ff007f" width="7.86" fill="60" capStyle="butt">265.784 77.97 292.676 77.97</stroke>
<stroke tool="highlighter" color="#00ff007f" width="9" fill="60" capStyle="butt">292.676 78 397.442 78</stroke>
Very cool. One thing I dislike about PDFs is the complexity, and like you I do use text when possible (text files aren't so great if I want to annotate them, unfortunately).
Searching and bookmarking make navigation much faster and easier, including for cross-referencing, glossaries, etc.
Annotations are far more powerful; they are editable, copyable, come in many forms (highlight, underline, text boxes, draw, hyperlinks, etc etc.). You can type much faster and fit much more than you can write with a pen.
PDFs are of course far more portable, and they are durable over decades (esp. PDF/A).
I'll never study a book on paper again; it's just too inefficient, so much that it's not worth matching PDF functionality. I'll just wait however long it takes to obtain the PDF.
> Personally i find studying from a pdf basically impossible.
Agreed. Until and unless i can get a e-ink/e-paper display (minimum A4 size, 13" or more is better) which will not cause eye strain/fatigue it is impossible to read any kind of technical book electronically for long periods of time. And this i say as a person who owns a 27" iMac, a iPad, a Nexus10 and a couple of 10" and 16" inch laptops. I have a huge collection of technical books as pdfs which i only consult on my devices. For serious studying of any books i always get a paper copy; nothing else works.
I mentioned/implied three things; a) The nature of the display causing eye-strain/fatigue b) The size of the display being inadequate and c) The needs of a technical book/paper rendering. This trifecta has not been solved (i believe intentionally) by the Industry at reasonable cost. All i am asking for is A4 (or larger) size display using some technology which does not cause eye-strain/fatigue and some software which can render pdf/epub/whatever correctly.
My current setup is iBooks on iPad, MoonReader Pro on Android and Adobe on desktop/laptop none of which is optimal for reading/studying for long periods of time.
If i had to guess, its because i have never found highlighting particularly useful (whether in physical or digital form), and i generally find it easier to read things in order first and then go back to fill in gaps of understanding instead of constant cross referencing which breaks the flow of thought. So in essence i personally find most of the benefits of digital form is lost on me leaving just the downsides (not lugging around 100lb book would be nice though) But to each their own.
The point im trying to make is that there is no one true way. Reasons why probably aren't fully portable between people and blindly copying what other people do wont get you very far. What one should do is try all the different possibilities and figure out what works for yourself. There is no magic formula.
1) Read the ToC carefully to see what each chapter is about. Identify which chapters/sections are about "Concepts/Ideas" vs. "Implementation/Technology".
2) Read the book's Foreward/Preface/Introduction where the author(s) often lay out a plan of action for reading the book. This will give you the dependencies among the chapters and which are the most important so that you can decide on your path of action.
3) If the book has appendices/introductory chapter which lays out some needed background knowledge refresher in Mathematics/etc. read these first.
4) Go through each chapter's beginning introductory section and last summary section in sequence for all the chapters. Now you have an idea of what each chapter is about (motivation and summary) even though much is still unknown. Mark/Underline/Annotate key points/terms as needed.
5) Now from (1) & (2) you have a set of chapters/sections dealing with the fundamental "Concepts/Ideas" which is what you now start studying in sequence. Have paper and pencil handy to mark/underline/annotate the text and take notes as needed. You could use "SQ3R" (https://en.wikipedia.org/wiki/SQ3R) and "Cornell Note-taking method" (https://en.wikipedia.org/wiki/Cornell_Notes) as techniques.
6) Make another pass over (5) to better grasp the "Concepts/Ideas". For difficult to grasp subjects this might not be enough. Make a note of why; perhaps you still lack some needed background knowledge/Mathematics which you need to brush up on. Make sure you don't go too deep into tangents; sometimes it can be treated as a black box i.e you just need to know "what it is" and "how to use it".
7) Now with some understanding of Concepts/Ideas in hand go through the chapters sequentially looking at the "Implementation/Technology" sections. Follow and understand the logic of the solved examples/code snippets/etc. This will help cement your understanding.
8) Make another pass over (7) but now also work out some exercises from each chapter as needed. A lot of folks get hung-up on this in the early stages which is counter-productive. Only when you have some idea of the concepts involved will you find the motivation to do the exercises. Obviously, for Mathematical subjects this is of higher importance but even here go according to your comfort level and needs/wants.
Finally, keep in mind that Reading/Studying should be positive/enjoyable so that you keep doing it. Work around anything that makes you anxious/demotivated so you never get into a negative mental state when you think about studying. Your memories of learning should always be pleasant.