-*- org -*-
- 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
- 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
- Make
selection-style
configurable when selecting text, viapdf-view-selection-style
@hrdl-github #73- This feature enabled us to change the default
selection-style
used inpdf-tools
fromGLYPH
toWORD
. - 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
- 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
R
inpdf-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 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.
- This inversion method is now enabled by default and can be controlled by the
- 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
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
From this version onward, we will follow Semantic Versioning for new pdf-tools
releases.
Drop support for Emacs 24 and 25. This allows for some code cleanup. This is a major breaking change.
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.
- Set
pdf-annot-list-highlight-type
to true by default.- Show annotation color when listing them by default, allow the user to turn them off if need be.
- Emacs 29 introduces
pixel-scroll-precision-mode
, which interferes withpdf-view
scrolling. This is fixed in #124
- Fix
revert-buffer
to correctly work over Tramp #128 - Fix sorting by date in
pdf-annot-list-mode
#75
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.
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.
Running M-x pdf-tools-install
should just work now.
Setting pdf-view-use-scaling
to a non-nil value now renders crisp images on high-resolution displays.
See variable pdf-annot-list-format
and pdf-annot-list-highlight-type
.
A new variable pdf-annot-default-annotation-properties
was introduced, subsuming and obsoleting pdf-annot-default-text-annotation-properties
and pdf-annot-default-markup-annotation-properties
. The new variable lets the user choose default properties, e.g. a color, for all supported annotations separately.
The autoloaded function pdf-loader-install
acts as a replacement for pdf-tools-install
and makes Emacs load and use PDF Tools as soon as a PDF file is opened, but not sooner.
This obsoletes the variable pdf-tools-handle-upgrades
, which does nothing anymore.
The files tablist.el
and tablist-filter.el
are no longer part of pdf-tools
, but continue to live on in the tablist
package, on which pdf-tools
now depends on.
When encountering an encrypted file, query for a password and attempt to decrypt it.
In isearch
, press M-s s
to visit the source of the current match.
New variable pdf-view-use-unicode-lighter
which allows for disabling the use of unicode in the mode-line.
The keys m
and '
now set respectively to jump to a register corresponding to a position in the PDF. Also ''
is handled special: It jumps to the position before the last register-jump.
See pdf-view-extract-region-image
.
The return value of many pdf-info-* functions was changed in order to prefer alists over other data-structures (indexed lists, trees).
A virtual PDF is a collection of pages (or parts thereof) of arbitrary documents, which appear to the rest of pdf-tools
as one big PDF, though they are always read-only.
You may now search for perl-compatible regular expressions (PCRE) in PDF documents, both via Isearch and Occur. If that scares you, customize the variable pdf-occur-prefer-string-search
.
Searching is performed asynchronously in a private server instance, i.e. it doesn’t block neither ordinary editing nor pdf-view-mode
.
Added the ability to search multiple documents in one occur buffer.
M-s o
now starts occur, while keeping the isearch session, like it is in text-buffers.
M-s w
now does a word search, which will also find hyphenated words (as determined by pdf-isearch-hyphenation-character
), though not at page boundaries.
M-g l
may be used to jump to a page by label, i.e. its displayed number.
Added the ability to display the page as it would be printed (e.g. w/o annotations) via pdf-view-printer-minor-mode
and to apply a color filter via pdf-view-midnight-minor-mode
.
New option pdf-outline-display-labels
, determining whether to display labels instead of plain page-numbers.
SyncTeX is pretty picky about source filenames. So instead of trying various filenames and hoping for best, we find it by directly inspecting the database.
Backward searching now tries to find the exact position in the LaTeX buffer. This may be disabled by setting pdf-sync-backward-use-heuristic
to nil
.
The old ones are still there but declared obsolete.
PDF Tools should now compile on OSX, though it is unsupported.
Try to handle an update via MELPA by package.el
by shutting down the server, recompiling and restarting it. This may be deactivated by setting pdf-tools-handle-upgrades
to nil.
A new minor mode which will automatically slice the page according to its bounding box.
I basically reimplemented the whole thing. (Not really, but a lot has changed.)
Rendering is now done almost completely in libpoppler
(no convert anymore), while PNG images are kept in memory and files are solely used as a means of exchange between Emacs and epdfinfo
. In essence, display should be much faster.
Hacking up doc-view.el
to support a server-based rendering engine would have been to awkward. So a new major-mode was needed : pdf-view-mode
. Both are very similar regarding user-interface. Some differences are:
- Setting the width to
fit-width
,fit-height
orfit-page
keeps up with window-size changes. - The values of the slice are relative, i.e. independent of the
image-size
.
Image data is cached, in order to keep the time it needs to display a page low. Some pages are pre-loaded for the same reason, while idling. The number of cached images per buffer may be customized using pdf-cache-image-limit
.
Provided epdfinfo
was build with a recent version of libpoppler
, you may now create and modify the following markup annotation types: highlight, squiggly, underline and strike-out.