Hey people! I want to learn typst, a modern alternative to LaTeX written in Rust.

screenshot

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.

It can be as small and minimal for that task as possible.

Priorities:

  1. No flicker (no text re-alignment, no disappearing scroll bars, no changing UI)
  2. Fast refresh
  3. Smooth text refresh (maybe with a fade in)
  4. 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 and cargo build, only A4 pages which seems totally sufficient)
  • pdf_renderer (security focused, pure Rust, may crash, incomplete)
  • Ephera
    link
    fedilink
    arrow-up
    6
    ·
    edit-2
    1 month ago

    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…

      • Ephera
        link
        fedilink
        arrow-up
        2
        ·
        1 month ago

        Ah, it does look like that for me, too. Yeah, the Okular icon is a bit weird there…

        • boredsquirrel@slrpnk.netOP
          link
          fedilink
          arrow-up
          1
          ·
          1 month ago

          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.

  • pmk@lemmy.sdf.org
    link
    fedilink
    arrow-up
    5
    ·
    1 month ago

    I use the Gnome document viewer, and every time I recompile it automatically refreshes and keeps position etc. I compile with $ luatex <myfile.tex>, not sure if that matters.

    • boredsquirrel@slrpnk.netOP
      link
      fedilink
      arrow-up
      1
      ·
      1 month ago

      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.

        • boredsquirrel@slrpnk.netOP
          link
          fedilink
          arrow-up
          1
          ·
          1 month ago

          Yeah, that is likely the best way when you are more knowledgeable, but currently I would explore how to do everything with direct feedback.

          • pmk@lemmy.sdf.org
            link
            fedilink
            arrow-up
            2
            ·
            1 month ago

            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.

            • boredsquirrel@slrpnk.netOP
              link
              fedilink
              arrow-up
              1
              ·
              1 month ago

              Same. I really need to learn typst, it is very cool.

              Markdown is kinda useless, because

              1. 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.
              2. I need something more powerful for actual papers, just like Typst. Possibly other candidates too, but it needs pagination and more.
              • pmk@lemmy.sdf.org
                link
                fedilink
                arrow-up
                2
                ·
                edit-2
                1 month ago

                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.

  • MonkderDritte@feddit.de
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    1 month ago

    I think Evince and Atril have a setting for that? Or was it mupdf? Else you could script something with inotifywait or watch.

    Btw, just googled it, less automatically uses lesspipe with pdftotext, so watch -n 2 less your.pdf works. Then there’s fbpdf and fbgs of fbi.

    • boredsquirrel@slrpnk.netOP
      link
      fedilink
      arrow-up
      1
      ·
      1 month ago

      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

      • MonkderDritte@feddit.de
        link
        fedilink
        arrow-up
        2
        ·
        1 month ago

        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 <file.pdf> | less. Though no images, for that the other tools.

  • barbara
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    1 month ago

    pulsar (atom successor) is great for it, vscodium should do it, evince (gnome pdf viewer) works good.

    What nonremovable popup a d dancing text in okular?

    • boredsquirrel@slrpnk.netOP
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      1 month ago

      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.

        • boredsquirrel@slrpnk.netOP
          link
          fedilink
          arrow-up
          1
          ·
          1 month ago

          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)

  • gnuhaut
    link
    fedilink
    arrow-up
    3
    ·
    1 month ago

    I know gv can auto-reload, though not sure if it’s any faster or less flickery than evince or mupdf. Maybe worth testing.

  • catloaf@lemm.ee
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    1 month ago

    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.

    • boredsquirrel@slrpnk.netOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      1 month ago

      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.