In the PDF module, there is a macro that is used to prevent the file-too-big prompt for PDFs since they're always too big. However, this macro has an extra variable listed that then gets passed on to the wrapped function and causes an error if the function doesn't support the extra variable. This fix simply checks if the extra value is present or not and only calls the wrapped function with it if is actually present. After all, the variable will still be nil even if nil isn't passed. |
||
---|---|---|
.. | ||
config.el | ||
packages.el | ||
README.org |
tools/pdf
Description
This module improves support for reading and interacting with PDF files in Emacs.
It uses pdf-tools
, which is a replacement for the built-in doc-view-mode
for
PDF files. The key difference being pages are not pre-rendered, but instead
rendered on-demand and stored in memory; a much faster approach, especially for
larger PDFs.
Displaying PDF files is just one function of pdf-tools
. See its project
website for details and videos.
Maintainers
This module has no dedicated maintainers.
Module Flags
This module provides no flags.
Plugins
Hacks
- Added out-of-the-box support for HiDPI or Retina displays.
Prerequisites
This module requires epdfinfo
, a program the the pdf-tools
plugin will build
automatically when you open your first pdf file, unless you're on Windows.
Windows users must build it themselves.
Building epdfinfo
on Windows
- Install MSYS2 and update the package database and core packages using the instructions provided.
-
Update and install dependencies, skipping any you already have
pacman -Syu pacman -S base-devel pacman -S mingw-w64-x86_64-toolchain pacman -S mingw-w64-x86_64-zlib pacman -S mingw-w64-x86_64-libpng pacman -S mingw-w64-x86_64-poppler pacman -S mingw-w64-x86_64-imagemagick
-
Install PDF tools in Emacs, but do not try to compile the server. Instead, get a separate copy of the source somewhere else.
git clone https://github.com/politza/pdf-tools
- Open mingw64 shell (Note: You must use mingw64.exe and not msys2.exe)
-
Compile pdf-tools:
# Cask requires python2 (important: not 3!) pacman -S python2 # Make the mingw-shell aware of your python installation. Adjust the path if # Emacs is installed elsewhere! export PATH="/c/Program Files (x86)/Emacs/bin/:$PATH" # Cask needs to know where git.exe is; change this path if git is installed # elsewhere! export PATH="/c/Program Files/Git/bin:$PATH" # Install cask. Certificate errors can be ignored with (unsafe) -k option. curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python # Make sure the build process can see cask export PATH="$HOME/.cask/bin:$PATH" cd /path/to/pdf-tools make -s
- This should produce a file
server/epdfinfo.exe
. Copy this file into the~/.emacs.d/.local/straight/build/pdf-tools/
. - Start Emacs.
- Open a pdf file (or run
M-x pdf-tools-install
) - Test it out:
M-x pdf-info-check-epdfinfo