Hey people! I want to learn typst, a modern alternative to LaTeX written in Rust.
Typst can incrementally compile the files to PDF.
Ironically, there is no incrementally refreshing PDF viewer afaik. So for direct visual output of my progress, I would like the fastest, smoothest PDF viewer.
- Firefox loads too slow
- Okular fast (thanks for the tips guys), just flickering scrollbar and background icon
It can be as small and minimal for that task as possible.
Priorities:
- No flicker (no text re-alignment, no disappearing scroll bars, no changing UI)
- Fast refresh
- Smooth text refresh (maybe with a fade in)
- Generally solid
To test:
- evince / GNOME Document viewer
- atril
- mupdf
- zathura
- gv
Barebones:
Somehow monitor for changes
- pipdf (GTK4, but unmaintained)
- pdf_render (very minimal, maintained)
- pdf2pwg (needs
cargo add
andcargo build
, only A4 pages which seems totally sufficient) - pdf_renderer (security focused, pure Rust, may crash, incomplete)
I use zathura for that. It’s very minimal and one can use vim keybindings for navigation which I like
If by “nonremovable popup” in Okular, you mean that little toast-like notification in the top-left, that can be turned off in Settings → Configure Okular… → General → “Show hints and info messages”.
Not sure, what you mean by “dancing text”. I’m using Okular for my Lilypond escapades, which is basically Latex for sheet music, so not a ton of text that could be dancing, but well, it doesn’t.
You might be able to improve Okular’s (text rendering) speed by tweaking the settings in Settings → Configure Okular… → Performance…Thanks for the tip about the dialog! I will add that to the FR as a solution. It is not good to generally disable all warnings though.
Ah, it does look like that for me, too. Yeah, the Okular icon is a bit weird there…
Like, performancewise, why would you render an image in between 2 renders?
Or I suppose that may be a placeholder canvas with the icon.
Still, this is a stopper for future smooth transitions.
deleted by creator
deleted by creator
I use the Gnome document viewer, and every time I recompile it automatically refreshes and keeps position etc. I compile with $ luatex , not sure if that matters.
I have tried that too, but not for this task. Well packaged, so I will compare it.
You know, I am looking for something that doesnt flicker, at all.
I don’t know about flicker, since I only recompile once in a while.
Yeah, that is likely the best way when you are more knowledgeable, but currently I would explore how to do everything with direct feedback.
Oh yes, same for me if I’m positioning an image or making a table, I compile to double check every little edit to the code :) I just mostly have plain old text so no surprises.
Same. I really need to learn typst, it is very cool.
Markdown is kinda useless, because
- Always when I want to make notes, I want WYSIWYG to actually work with them. I dont write them for someone else or something. Pandocs defaults using texlive are bad, Okulars markdown style is also not very nice.
- I need something more powerful for actual papers, just like Typst. Possibly other candidates too, but it needs pagination and more.
I started with LaTeX back in the day, but it was too hacky and complex, so I went to ConTeXt, which felt more consistent and planned out. Then I did OpTeX for a while and eventually I picked up the TeXbook by Knuth and it all just started to make sense to me. So now I use plain TeX with my own macro file to fill the gaps in functionality, I implemented colour support and picture support and small macros that I needed. I am very much into grid typesetting, so I need to know where all the vertical material comes from. There are areas that still scare me, like modifying the output routine or several \expandafter in a row, but usually that’s not needed. With plain TeX I can know every detail of the code down to the primitives. Of course this is possible in LaTeX too, but, there’s just a lot of code, layer upon layer, and I’m not smart enough to keep all that in my head.
I think Evince and Atril have a setting for that? Or was it mupdf? Else you could script something with
inotifywait
orwatch
.Btw, just googled it,
less
automatically uses lesspipe with pdftotext, sowatch -n 2 less your.pdf
works. Then there’sfbpdf
andfbgs
offbi
.Could you explain? less would just monitor the binary PDF for changes and then pass that to any viewer?
I think this is really helpful for barebones renderers, thanks! That will be a very good piece of the puzzle for a minimal PDF reader for this task
No, less has the LESSOPEN variable, which can be used to run input-preprocessors. lesspipe misuses that to run specific tools with specific mimetypes, in this case pdftotext for pdf files. It’s basically equivalent to running
pdftotext -layout | less
. Though no images, for that the other tools.
deleted by creator
Right, forgot about Pulsar. Also have Lapce installed but that may not have the needed tools.
VSCodium also installed in a Distrobox, but tbh I dont want to use it. It is slow, Electron, Microsoft etc. Just not an option.
I am currently trying to add syntax highlighting for typst to kate, but I read that XML and damn thats complex.
deleted by creator
The preview plugin uses Okular, or at least some part of it.
On Kinoite Okular is no longer installed as system package, and it works well as Flatpak.
But yes, I should layer Okular again and try, because in my experience the preview had another issue (background follows system theme i.e. dark, causes flickers)
Btw that mockup paper is hillarious XD
I know gv can auto-reload, though not sure if it’s any faster or less flickery than evince or mupdf. Maybe worth testing.
You might be interested in https://mupdf.com/wasm/demo/index.html?file=../../docs/mupdf_explored.pdf, as I’ve seen people recommend this for large PDFs that would lag out even native viewers. I don’t know about flickering though as I haven’t tried it out much.
deleted by creator
Are you relaunching Firefox every time? You could just reload the file by refreshing.
But I don’t think any viewer is going to support keeping your place in the document when it changes.
No of course I was just refreshing. The problem is, the UI should stay completely still, just the render should refresh.
But I don’t think any viewer is going to support keeping your place in the document when it changes.
Okular does that just fine. Tested with multiple pages.