Skip to content

Releases: vedang/pdf-tools

`pdf-view-roll-minor-mode` - Continuous Scroll Mode

01 Jan 10:09

Choose a tag to compare

This release brings a highly requested feature that has been maintained as a parallel fork for years by @aikrahguzar : continuous scrolling through PDFs with multiple pages visible simultaneously.

New functionality to improve overall user experience

Add pdf-view-roll-minor-mode for continuous scrolling @aikrahguzar and others #224

This feature enables smooth, continuous scrolling through PDF documents. Enable with M-x pdf-view-roll-minor-mode.

  • Smooth pixel-level scrolling across page boundaries
  • Multiple pages visible at once in tall windows
  • Works with pixel-scroll-precision-mode for trackpad scrolling
  • Configurable page margins via pdf-roll-vertical-margin and pdf-roll-margin-color
  • Closes: #18
  • Closes: #104

Add pdf-annot-edit command for avy-style annotation editing @dalanicolai #224

Press e in pdf-annot-list-mode or use M-x pdf-annot-edit to quickly select and edit annotations using keyboard labels.

Functionality improvements and fixes

  • Isearch now searches across all visible pages in roll mode #224
    • When pdf-view-roll-minor-mode is active, isearch highlights matches on all displayed pages simultaneously.

API changes (for package developers)

  • pdf-view-active-region now returns page information
    • The region format includes the page number for multi-page awareness.
  • pdf-isearch-hl-matches signature changed
    • Now accepts a list of pages parameter for multi-page highlighting.

⚠️ Experimental Feature

The continuous scroll mode is marked as experimental. While it works well in testing, please report any issues you encounter.

Release v1.2.1

31 Dec 17:53

Choose a tag to compare

Functionality fixes

  • Fix: Replace obsolete registerv-make with cl-defstruct #333
    • The registerv-make function was removed in Emacs 30. This change updates pdf-tools to use the modern cl-defstruct approach for register support, ensuring compatibility w
      ith Emacs 30+.
  • Fix: Use correct key function for filtering page links in pdf-virtual #327
    • Fixes an issue where virtual PDF page links were not filtered correctly.

Native compilation fixes

  • Fix: Resolve all native-comp warnings across multiple files #333
    • Added declare-function declarations to pdf-cache, pdf-info, pdf-util, and pdf-view to eliminate byte-compilation and native-comp warnings.
    • Fixed docstring formatting issues that caused native-comp warnings.

Installation and platform compatibility improvements

  • Add doas as privilege escalation fallback in autobuild #323
    • The autobuild script now supports doas (used on Alpine Linux and OpenBSD) as an alternative to sudo for installing dependencies.

Infrastructure

  • Move CI from CircleCI/AppVeyor to GitHub Actions
    • All testing now runs on GitHub Actions with a unified workflow for Ubuntu, macOS, and Windows.
    • Pre-built Windows binaries are now available as artifacts from CI runs.

Release v1.2.0

30 Dec 13:17

Choose a tag to compare

New functionality to improve overall user experience

  • Allow creation of markup annotations without a text selection @astoff #191
    • This means that you can now highlight an exact region, for example on OCR PDFs! Just select the region by holding down the Meta key and dragging the mouse. Then invoke pdf-annot-add-highlight-markup-annotation (with C-c C-a h) and voila!
    • Please note that only the highlight markup annotation is supported on rectangular regions.
  • Add option to display page labels in mode line @rafaelbeirigo #331
    • PDFs with custom page labels (Roman numerals, section numbering) can now show these labels in the mode-line. Enable with pdf-view-mode-line-position-use-labels.
  • Add pdf-metadata-buffer-mode for the metadata buffer @aidan-hall #305
    • The metadata buffer now has its own major mode derived from special-mode, allowing you to press q to close it.
  • Add horizontal scrolling support via mouse wheel @aikrahguzar #234
    • mwheel-scroll-left-function and mwheel-scroll-right-function are now properly set in pdf-view-mode.
  • Allow scroll-other-window to work in pdf-view buffers @whatacold #280
    • You can now scroll a PDF buffer from another window using C-M-v and C-M-S-v.
  • Add gamma correction option to midnight mode @vizziv #329
    • New customization options for gamma correction to improve contrast of colorful text in midnight mode. Also fixes a color conversion bug (dividing by 256 instead of 255).

Functionality improvements and fixes

  • Allow setting selection-style via the Easy Menu @astoff #190
  • Improve the experience of editing Annotations @astoff #192
  • Enable pdf-view-dark-minor-mode automatically if the current Emacs theme is dark #166
  • Fix: Use kill-current-buffer instead of deprecated kill-this-buffer @michaelmhoffman #330
    • Fixes keybinding issue in Emacs 30. Closes #287.
  • Fix: Use absolute line number in pdf-sync-forward-correlate @haselwarter #222
    • Forward sync now works correctly in narrowed buffers.
  • Fix: Support pdf-buffer bookmarks in workspace managers @aikrahguzar #188
    • Bookmark restoration no longer assumes the buffer is displayed, fixing errors with workspace managers like activities.el, burly.el, and tabspaces.el.
  • Fix: Suppress errors when scrolling past document boundaries with C-n / C-p @benthamite #303
    • pdf-view-next-line-or-next-page and pdf-view-previous-line-or-previous-page no longer throw errors at document boundaries when debug-on-error is enabled.
  • Fix: Set slice to common bounding box across all pages @tpapp #326
    • pdf-view-set-slice-from-bounding-box now computes the bounding box from all pages, not just the current page. Closes #325.
  • Fix: Annotation sync error "No such annotation" @bramadams #260
    • Refreshes annotations on the current page to keep buffer and file in sync. Closes #246.

Installation and platform compatibility improvements

  • Add support for MSYS2 UCRT64 environment on Windows @legends2k #308
    • UCRT64 is the recommended default MSYS2 environment. This change adds proper detection and fixes build issues with GCC 14+. Closes #282, #286.
  • Fix: Replace deprecated tempnam with mkstemp / _tempnam @wyuenho #309
    • Uses platform-appropriate secure temp file creation. Closes #110.
  • Add support for Android Emacs using Termux @johanwiden #230
    • pdf-tools-install now works on Android Emacs via Termux. Note: This is not an officially supported platform, and touchscreen gestures have limitations.
  • Add support for Nobara Linux (Fedora derivative) @gs-101 #301
  • Add GNU Guix installation instructions to README @bird-dancer #315
  • Update README with clearer installation prerequisites @CalumFreeman #289
  • Add Makefile target to generate autoloads @Thaodan #238

Release v1.1.0

10 Jun 15:15
v1.1.0

Choose a tag to compare

Improve overall user experience

  • Make selection-style configurable when selecting text, via
    pdf-view-selection-style @hrdl-github #73
    • This feature enabled us to change the default selection-style used
      in pdf-tools from GLYPH to WORD.
    • The change makes highlighting / selecting text much snappier. If
      you want to go back to the old behaviour of selecting by glyph
      instead of word, or if you want to select a whole line instead,
      customize pdf-view-selection-style
  • Track rotation of pages and add a command to make rotation of pages
    easy @Vizs #165
    • The new command is bound to R in pdf-view-mode-map.
  • Add support for maintaining hue in pdf-view-midnight-minor-mode
    using the OKLab color space @smithzvk #69 #197
    • This inversion method is now enabled by default and can be
      controlled by the pdf-view-midnight-invert variable. Check out the
      images in the PR for how beautiful the colors look in midnight mode
      now.
    • Also thanks to @Atreyagaurav for pushing fixes which improved this
      feature.

Functionality fixes and improvements

  • Fix: Saving a PDF when buffer-file-name is missing will now prompt
    for a filename (eg: in EWW) @akater #178
  • Fix: Ensure pixel-scroll-precision-mode is deactivated correctly
    @mssdvd #206

Installation and Platform Compatibility improvements

Please note: as of this release, users are not expected to manually set
anything on their machines during installation. (for example:
$PKG_CONFIG_PATH). The installation should just work. If it does
not, please open a ticket so that we can track it.

  • Add cairo-devel to Void Linux package list @crzjp #203

Release v1.0.0

29 Nov 06:36
v1.0.0

Choose a tag to compare

Breaking changes:

  • Raise the minimum supported version of Emacs to 26.3 #26
    Drop support for Emacs 24 and 25. This allows for some code
    cleanup. This is a major breaking change.

  • Change the default value of pdf-view-use-scaling #133
    pdf-view-use-scaling is now true by default, leading to rendering
    of crisp images on high-resolution screens. This should not cause
    problems on low-resolution screen (other than taking up more cache
    space / increasing rendering time), but if it does, please (setq pdf-view-use-scaling nil) in your configuration.


Other than the breaking changes, this release contains a lot of
changes related to user experience improvements and installation /
compatibility improvements.

It also sets up the stage for adding new features and closing
long-standing PRs into pdf-tools. I'm hoping to follow this release
up with a 1.1.0 release before the year is out, which will contain
some of these pending PR changes.

Thanks, and enjoy!

Release v0.91

31 Dec 11:10
v0.91

Choose a tag to compare

This is the last release to support Emacs 24.x. Release 1.0.0 will update the minimum supported Emacs version.

NEWS:

  • Make changes required by newer versions of Emacs: A number of changes are made to support new elisp / package changes. There is no impact of this on existing users.
    • Emacs 27, Emacs 28 and Emacs 29 are supported now.
    • Synctex 1.21 is supported now.
  • Improve overall install experience
    • Running M-x pdf-tools-install should just work now.
  • Add support for high-resolution displays (Retina display on Mac)
    • Setting pdf-view-use-scaling to a non-nil value now renders crisp images on high-resolution displays.
  • Change the keybindings for traversing history
    • This is a minor but breaking change. l (backward) and r (forward) are the conventional bindings for history navigation in Emacs, but pdf-tools uses B and N. The previous keybindings are kept as-is for people who were used to it, while introducing l and r keybindings as well.
    • This is a breaking change because r was previously bound to revert-buffer. However, g is also bound to revert-buffer and is the conventional binding for revert so this should be okay.