Có thể làm cho okular không flash khi tải lại một tập tin?


11

Khi tôi đang viết một tài liệu TeX, tôi sử dụng một thiết lập để tự động biên dịch lại các tệp * .tex của mình thành pdf ngay khi tệp nguồn thay đổi (sử dụng latexmk). Vì vậy, tôi đặt một thiết bị đầu cuối với nvim ở một bên của màn hình và okular với đầu ra pdf ở phía bên kia của màn hình.

Điều khó chịu là đèn flash / nhấp nháy mỗi lần cập nhật pdf. Điều này đặc biệt đáng chú ý khi tôi có bảng chú giải + tài liệu tham khảo + chỉ mục. Okular sau đó sẽ flash 3 đến 5 lần tùy thuộc vào những gì đã thay đổi trong nguồn * .tex và tôi thấy điều này thực sự gây mất tập trung. Có cách nào để vô hiệu hóa hành vi nhấp nháy này?


3
Cài đặt -> Cấu hình Okular -> Chung -> Tính năng chương trình -> bỏ chọn "Tải lại tài liệu khi thay đổi tệp". Sau đó nhấn F5 để tải lại pdf chỉ khi muốn.
林果

Vâng, điều này giải quyết vấn đề nhấp nháy nhưng giới thiệu một vấn đề mới, bây giờ tôi phải nhấn F5 mỗi lần tôi muốn xem cập nhật. Tôi đã hy vọng có một số cách để tự động tải lại tập tin mà không cần đèn flash gây mất tập trung, nhưng có lẽ điều này là không thể với okular. Dù sao, thx cho cách giải quyết tạm thời.
Sam De Meyer

1
Các tập tin được cập nhật một số lần trong quá trình xây dựng. Mỗi khi tập tin được cập nhật, Okular sẽ làm mới nó. Okular dường như không có tùy chọn "nếu nó cập nhật, hãy đợi N giây để xem nó có cập nhật lại không trước khi làm mới".
Andy Dalton

Ngay cả điều này đã được hỏi cách đây một thời gian, tôi muốn chỉ ra, chứng tỏ hành vi có thể giống như những gì bạn muốn. Nếu bạn tìm thấy một giải pháp tốt khác trong khi đó, hãy cho chúng tôi biết. Tôi có cùng một vấn đề ... (và không thể sử dụng chứng minh, vì nó có vấn đề với chuyển tiếp x)
Exocom

Câu trả lời:


2

Được rồi, tôi đã chơi xung quanh một chút nữa và đưa ra một giải pháp, mặc dù đó là một giải pháp khá khó khăn.

Lần thử đầu tiên - pdf_update_command + Okular

Điều này không hoạt động đầy đủ, vì nó sẽ luôn nhảy đến đầu tập tin, sau khi tải lại. Để hoàn thiện, tôi vẫn thêm nó vào.

Trong Okular tắt tự động tải lại bằng "Cài đặt" -> "Định cấu hình Okular" -> Tắt "Tải lại tài liệu và thay đổi tệp".

Thay đổi tệp .latexmkrc thành:

$pdf_previewer = 'start okular --uniuqe %S';
$pdf_update_method = 4;
$pdf_update_command = 'okular --unique %S';

Điều này nói với latexmk rằng nó sẽ thực thi pdf_update_command sau khi cập nhật xong tệp pdf. Những gì không hoạt động, tài liệu trong Okular có thể nhìn thấy mọi lúc trong quá trình biên dịch và được tải lại khi hoàn thành. Thật không may, khi lệnh cập nhật được thực thi, bạn sẽ nhảy đến phần đầu của tài liệu. Đó không phải là điều tôi muốn.

Lần thử thứ hai - pdf_update_command + cp

Vì lần thử trước không thành công, giờ tôi đang đi với giải pháp hackier. Đối với điều này, tải lại tài liệu phải được bật trong Okular.

Các .latexmkrc sẽ trông như thế này:

$pdf_previewer = 'start okular';
$pdf_update_method = 4;
$pdf_update_command = 'cp ~/path/to/doc.pdf ~/path/to/doc_preview.pdf';

Điều này sao chép tệp tài liệu thực tế đến một vị trí xem trước. Vì vậy, Okular cần phải được mở cho tệp xem trước này (và đối với tệp khác, bạn phải đóng tệp thủ công). Điều này chắc chắn không lý tưởng, nhưng nó làm những gì tôi muốn:

  1. Cập nhật tệp pdf trong nền
  2. Chỉ cập nhật khi tệp đã sẵn sàng
  3. Hoạt động trên ssh

Cập nhật (nhờ Sam De Meyer):

Nếu bạn không muốn trình xem trước bắt đầu, hãy để trống $ pdf_previewer:

$pdf_previewer = ''

Mặt khác, nếu bạn thích đóng một cửa sổ hơn là mở một cửa sổ, có thể chỉ định 'doc_preview.pdf' cùng với pdf gốc. Tôi chưa tìm được cách nào, chỉ mở tệp pdf thứ hai:

$pdf_previewer = 'start okular ~/path/to/doc_preview.pdf'

PS: Điều này hoạt động với bất kỳ trình soạn thảo nào tự động tải lại các tệp, ví dụ như evince.


1
Xin chào, thủ thuật 'cp' có thể hoạt động. Bạn có thực sự cần phải làm 'bắt đầu okular' trong 'trình xem trước pdf'. Có lẽ bạn chỉ có thể để trống hoặc chỉ định một lệnh không có gì? Sau đó, tất cả những gì bạn phải làm là mở okular trên bản sao vào lần đầu tiên bạn biên dịch. Điều đó sẽ không giải quyết vấn đề?
Sam De Meyer

Vâng, để trống nó không có mẹo bắt đầu okular. Cảm ơn. Sẽ cập nhật câu trả lời (cũng như với một bổ sung bắt đầu trình xem trước cho cả hai tệp). Toàn bộ, việc cập nhật một tệp chỉ xuất hiện sau khi quá trình biên dịch kết thúc sẽ giúp ích rất nhiều. Tôi chỉ đang viết một luận án lớn hơn, nơi mà điều này thực sự có ích.
Exocom
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.