파일을 다시 로드할 때 okular가 깜박이지 않게 할 수 있나요?

파일을 다시 로드할 때 okular가 깜박이지 않게 할 수 있나요?

TeX 문서를 작성할 때 소스 파일이 변경되는 즉시 *.tex 파일을 pdf로 자동으로 다시 컴파일하는 설정을 사용합니다(Latexmk 사용). 그래서 화면 한쪽에는 nvim이 있는 터미널을 놓고 화면 반대편에는 pdf 출력이 있는 okular를 배치했습니다.

짜증나게도 okular는 PDF가 업데이트될 때마다 깜박이거나 깜박입니다. 용어집 + 참고문헌 + 색인이 있는 경우 특히 그렇습니다. 그러면 Okular는 *.tex 소스의 변경 사항에 따라 3~5번 깜박이게 되는데, 이는 정말 주의를 산만하게 합니다. 이 깜박이는 동작을 비활성화하는 방법이 있습니까?

답변1

글쎄, 나는 조금 더 놀았고 다소 험난한 해결책이지만 해결책을 찾았습니다.

첫 번째 시도 - pdf_update_command + Okular

다시 로드한 후 항상 파일의 시작 부분으로 이동하므로 완전히 작동하지 않습니다. 완전성을 위해 어쨌든 추가했습니다.

Okular에서 설정 -> Okular 구성 -> "문서 및 파일 변경 사항 다시 로드"를 끄고 자동 다시 로드를 끕니다.

.latexmkrc 파일을 다음으로 변경합니다.

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

이는 Latexmk에게 pdf 파일 업데이트가 완료된 후 pdf_update_command를 실행해야 함을 알려줍니다. 작동 방식은 Okular의 문서가 편집 중에 항상 표시되고 완료되면 다시 로드된다는 것입니다. 안타깝게도 업데이트 명령을 실행하면 문서의 시작 부분으로 이동하게 됩니다. 그것은 내가 원하는 것이 아닙니다.

두 번째 시도 - pdf_update_command + cp

이전 시도가 실패했기 때문에 이제 좀 더 해킹적인 솔루션을 사용하고 있습니다. 이렇게 하려면 문서를 Okular에서 열고 다시 로드해야 합니다.

.latexmkrc는 다음과 같아야 합니다:

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

그러면 실제 문서 파일이 미리보기 위치에 복사됩니다. 따라서 이 미리보기 파일에 대해 Okular를 켜야 합니다(다른 파일의 경우 수동으로 닫아야 함). 확실히 이상적이지는 않지만 내가 원하는 효과를 얻습니다.

  1. 백그라운드에서 PDF 파일 업데이트
  2. 파일이 준비된 경우에만 업데이트
  3. SSH에서 작동

업데이트(Sam De Meyer에게 감사드립니다):

미리보기를 시작하지 않으려면 $pdf_previewer를 비워 두세요.

$pdf_previewer = ''

반면, 창을 열지 않고 닫고 싶다면 원본 PDF와 함께 "doc_preview.pdf"를 지정할 수 있습니다. 아직 방법을 못 찾았어요오직두 번째 PDF 파일을 엽니다.

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

추신: 이는 evince와 같이 파일을 자동으로 다시 로드하는 모든 편집기에서 작동합니다.

관련 정보