Releases: vedang/pdf-tools
`pdf-view-roll-minor-mode` - Continuous Scroll Mode
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-modefor trackpad scrolling - Configurable page margins via
pdf-roll-vertical-marginandpdf-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-modeis active, isearch highlights matches on all displayed pages simultaneously.
- When
API changes (for package developers)
pdf-view-active-regionnow returns page information- The region format includes the page number for multi-page awareness.
pdf-isearch-hl-matchessignature 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
Functionality fixes
- Fix: Replace obsolete
registerv-makewithcl-defstruct#333- The
registerv-makefunction was removed in Emacs 30. This change updates pdf-tools to use the moderncl-defstructapproach for register support, ensuring compatibility w
ith Emacs 30+.
- The
- 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-functiondeclarations 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.
- Added
Installation and platform compatibility improvements
- Add
doasas privilege escalation fallback in autobuild #323- The autobuild script now supports
doas(used on Alpine Linux and OpenBSD) as an alternative tosudofor installing dependencies.
- The autobuild script now supports
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
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(withC-c C-a h) and voila! - Please note that only the highlight markup annotation is supported on rectangular regions.
- 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
- 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.
- PDFs with custom page labels (Roman numerals, section numbering) can now show these labels in the mode-line. Enable with
- Add
pdf-metadata-buffer-modefor the metadata buffer @aidan-hall #305- The metadata buffer now has its own major mode derived from
special-mode, allowing you to pressqto close it.
- The metadata buffer now has its own major mode derived from
- Add horizontal scrolling support via mouse wheel @aikrahguzar #234
mwheel-scroll-left-functionandmwheel-scroll-right-functionare now properly set inpdf-view-mode.
- Allow
scroll-other-windowto work in pdf-view buffers @whatacold #280- You can now scroll a PDF buffer from another window using
C-M-vandC-M-S-v.
- You can now scroll a PDF buffer from another window using
- 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-stylevia the Easy Menu @astoff #190 - Improve the experience of editing Annotations @astoff #192
- Enable
pdf-view-dark-minor-modeautomatically if the current Emacs theme is dark #166 - Fix: Use
kill-current-bufferinstead of deprecatedkill-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, andtabspaces.el.
- Bookmark restoration no longer assumes the buffer is displayed, fixing errors with workspace managers like
- Fix: Suppress errors when scrolling past document boundaries with
C-n/C-p@benthamite #303pdf-view-next-line-or-next-pageandpdf-view-previous-line-or-previous-pageno longer throw errors at document boundaries whendebug-on-erroris enabled.
- Fix: Set slice to common bounding box across all pages @tpapp #326
pdf-view-set-slice-from-bounding-boxnow 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
- Fix: Replace deprecated
tempnamwithmkstemp/_tempnam@wyuenho #309- Uses platform-appropriate secure temp file creation. Closes #110.
- Add support for Android Emacs using Termux @johanwiden #230
pdf-tools-installnow 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
Improve overall user experience
- Make
selection-styleconfigurable when selecting text, via
pdf-view-selection-style@hrdl-github #73- This feature enabled us to change the default
selection-styleused
inpdf-toolsfromGLYPHtoWORD. - 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,
customizepdf-view-selection-style
- This feature enabled us to change the default
- Track rotation of pages and add a command to make rotation of pages
easy @Vizs #165- The new command is bound to
Rinpdf-view-mode-map.
- The new command is bound to
- 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 thepdf-view-midnight-invertvariable. 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.
- This inversion method is now enabled by default and can be
Functionality fixes and improvements
- Fix: Saving a PDF when
buffer-file-nameis missing will now prompt
for a filename (eg: in EWW) @akater #178 - Fix: Ensure
pixel-scroll-precision-modeis 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.
Release v1.0.0
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-scalingis 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
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-installshould just work now.
- Running
- Add support for high-resolution displays (Retina display on Mac)
- Setting
pdf-view-use-scalingto a non-nil value now renders crisp images on high-resolution displays.
- Setting
- Change the keybindings for traversing history
- This is a minor but breaking change.
l(backward) andr(forward) are the conventional bindings for history navigation in Emacs, butpdf-toolsusesBandN. The previous keybindings are kept as-is for people who were used to it, while introducinglandrkeybindings as well. - This is a breaking change because
rwas previously bound torevert-buffer. However,gis also bound torevert-bufferand is the conventional binding forrevertso this should be okay.
- This is a minor but breaking change.