
나는 미니멀리스트 접근 방식을 좋아하기 때문에 zathura를 사용하고 있지만 이것이 내 문제를 해결한다면 mupdf 또는 다른 것으로 전환할 수도 있습니다.
PDF 및 epub 문서의 모든 단어를 처음부터 끝까지 하나씩 강조 표시해야 합니다. 텍스트에 어떤 움직임이 있으면 텍스트에 더 잘 집중할 수 있기 때문입니다. 내 접근 방식은 모든 단어와 일치하는 정규식 검색을 수행하는 것이었지만 zathura나 mupdf는 검색에서 정규식을 지원하지 않습니다. 이를 수행할 수 있는 방법이 있습니까?
나는 zathura를 포크하려고 노력하지만 솔직히 말해서 필요한 작업을 수행하는 또 다른 최소 Gnu/Linux 호환 문서 뷰어가 있다면 그 정도의 시간을 보내고 싶지 않습니다. 그리고 zathura에서 결과를 강조하는 것과 같은 터미널 도구를 사용하는 방법이 있다면 pdfgrep
그 작업도 수행할 수 있습니다.
답변1
기본 텍스트 선택
에 따르면자투라 위키피디아 페이지:
Zathura는 텍스트를 검색하고 기본 X 선택 항목에 텍스트를 복사할 수 있습니다.
이는 읽을 때 텍스트를 선택하는 기능이 내장되어 있음을 의미하지만 마우스가 필요할 수 있습니다(키보드 제어 선택에 대한 솔루션을 찾기가 어려울 것입니다).
얼마나 미니멀리스트가 필요합니까? 나는 사용한다아트릴, 약간 더 가벼운 포크증거하다(그놈 문서 뷰어). Atril은메이트 데스크탑(그놈 2의 연속). 꽤 가볍지만 여전히 GTK+ 종속성이 있습니다.
또 다른 옵션은Xpdf애플리케이션. 또한보십시오Wikipedia의 PDF 소프트웨어 목록 § Linux 및 Unix.
정규식
내가 아는 유일한 (사용 가능한) 정규식 검색 구현은 다음과 같은 명령줄 도구를 제외하고는 다음과 같습니다.pdfgrep, 실제로는 웹 브라우저입니다. 그다지 유용하지는 않지만 Firefox의 솔루션은 다음과 같습니다. Firefox에서 PDF를 열고 개발자 도구 Javascript 콘솔(F12 또는 Ctrl+Shift+K)을 엽니다. 다음 명령을 실행하십시오.
» pdf = document.getElementById("viewer").innerText.replace(/[ \t]+/g, " ");
» function grep(what, context=100) { return pdf.match(RegExp(`[\\s\\S]{0,${context}}${what}[\\s\\S]{0,${context}}`), "img"); }
» grep("put your regex here")
» grep("get more context", 300)
백슬래시를 이스케이프 처리해야 합니다. 이 grep
명령에는 선택적인 두 번째 인수, 즉 각 측면에 제공할 컨텍스트 문자 수(기본값=100)가 있습니다.
PDF 뷰어가 내장된 Chrome 및 기타 브라우저는 다소 비슷하지만 실제 PDF 콘텐츠가 포함된 HTML 개체가 무엇인지 파악해야 합니다( id="viewer"
Firefox의 요소이며 다른 요소는 확실하지 않습니다. 최악의 경우에는 단지 대신 document.body
에 document.getElementById("viewer")
목차의 항목을 일치시킬 수 있습니다.)
답변2
내가 착각한 것이 아니라면 처음부터 끝까지 각 단어를 선택하는 Adobe Acrobat Reader
기능이 있습니다 .read out loud