From 1e3d0fa57744c6a3cd5c1a773b877d13cadc7fb2 Mon Sep 17 00:00:00 2001 From: Barrett Ruth Date: Thu, 5 Mar 2026 22:29:30 -0500 Subject: [PATCH] fix(nvim): simplify preview.nvim config --- spec/synctex_zathura.lua | 37 +++++++++++++++++++ test.tex | 80 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 117 insertions(+) create mode 100644 spec/synctex_zathura.lua create mode 100644 test.tex diff --git a/spec/synctex_zathura.lua b/spec/synctex_zathura.lua new file mode 100644 index 0000000..16c7e76 --- /dev/null +++ b/spec/synctex_zathura.lua @@ -0,0 +1,37 @@ +vim.cmd([[set runtimepath=$VIMRUNTIME]]) +vim.opt.runtimepath:append('.') +vim.opt.packpath = {} +vim.opt.loadplugins = false + +require('preview.commands').setup() + +vim.fn.serverstart('/tmp/nvim-preview.sock') + +local synctex_pdf = {} +vim.api.nvim_create_autocmd('User', { + pattern = 'PreviewCompileSuccess', + callback = function(args) + synctex_pdf[args.data.bufnr] = args.data.output + end, +}) + +vim.g.preview = { + latex = { + open = { + 'zathura', + '--synctex-editor-command', + 'nvim --server /tmp/nvim-preview.sock' + .. [[ --remote-expr "execute('b +%{line} %{input}')"]], + }, + }, +} + +vim.keymap.set('n', 's', function() + local pdf = synctex_pdf[vim.api.nvim_get_current_buf()] + if pdf then + vim.fn.jobstart({ + 'zathura', '--synctex-forward', + vim.fn.line('.') .. ':0:' .. vim.fn.expand('%:p'), pdf, + }) + end +end) diff --git a/test.tex b/test.tex new file mode 100644 index 0000000..835d1de --- /dev/null +++ b/test.tex @@ -0,0 +1,80 @@ +\documentclass{article} +\title{SyncTeX change} +\author{preview.nvim} +\date{} + +\begin{document} +\maketitle + +\section{Introduction} +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor +incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis +nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. +Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore +eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident. + +\section{Background} +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac +turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor +sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies +mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien +ullamcorper pharetra. + +\section{Methods} +Curabitur pretium tincidunt lacus. Nulla gravida orci a odio. Nullam varius, +turpis molestie dictum semper, diam lectus aliquam diam. Morbi facilisis +porttitor enim at ullamcorper. Phasellus at erat eget augue pulvinar sodales. +Etiam sodales felis eget urna aliquet interdum. Fusce bibendum lorem at justo +commodo, at tempus est lobortis. Integer at odio nec felis facilisis blandit. + +\subsection{Data Collection} +Nullam at lectus in augue fringilla lobortis. Proin in justo at diam blandit +sollicitudin. Nulla vestibulum elementum magna. Donec consectetur erat et +turpis malesuada, at interdum tortor iaculis. Cras imperdiet sagittis augue +quis lobortis. Vestibulum ante ipsum primis in faucibus orci luctus. + +\subsection{Analysis} +Fusce vel dui. Sed in libero ut nibh placerat accumsan. Proin faucibus arcu +quis ante. In consectetuer turpis ut velit. Nulla sit amet est. Praesent dapibus, +neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros +eu erat. Aliquam erat volutpat. Duis accumsan risus quis sapien bibendum. + +\section{Results} +Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi. Morbi +auctor lorem non justo. Nam lacus libero, pretium at, lobortis vitae, ornare +quis libero. Maecenas commodo nisi non quam. Donec tellus eros, lobortis non +tristique id, aliquam ut ipsum. Sed lorem urna, eleifend eget pretium id. + +\subsection{Primary Findings} +Pellentesque condimentum, magna ut suscipit hendrerit, ipsum augue ornare nulla, +non luctus diam neque sit amet urna. Curabitur vulputate vestibulum lorem. +Fusce sagittis, libero non molestie mollis, magna orci ultrices dolor, at +vulputate neque nulla lacinia eros. Sed id ligula quis est convallis tempor. + +\subsection{Secondary Findings} +Integer vulputate sem a nibh rutrum consequat. Nunc aliquet, augue pretium +mattis consectetur, mauris urna posuere arcu, eget commodo enim lectus quis +lorem. Phasellus tristique purus a augue condimentum adipiscing. Aenean sagittis. +Etiam leo pede, rhoncus venenatis, tristique in, dictum non, justo. + +\section{Discussion} +Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis +luctus, metus. Phasellus ultrices nulla quis nibh. Quisque a lectus. Donec +consectetuer ligula vulputate sem tristique cursus. Nam nulla quam, gravida non, +commodo a, sodales sit amet, nisi. + +Nunc nulla. Fusce risus nisl, viverra et, tempor et, pretium in, sapien. Donec +venenatis vulputate lorem. Morbi nec metus. Phasellus blandit leo ut odio. +Nullam accumsan lorem in dui. Cras ultricies mi eu turpis hendrerit fringilla. +Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia. + +\section{Conclusion} +This is the final section. Forward search from the introduction should jump to +the top of the PDF. Forward search from here should jump to the bottom. Inverse +search from anywhere in the PDF should jump back to this source file at the +corresponding line. + +Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis +luctus, metus. Phasellus ultrices nulla quis nibh. Quisque a lectus. + +\end{document}