Helm-Bibtex : Ivy-Bibtex :
Helm-Bibtex 및 Ivy-Bibtex를 사용하면 Bibtex 참고 문헌을 검색하고 관리 할 수 있습니다. 둘 다 동일한 일반 백엔드 인 Bibtex-Completion을 공유하지만 Helm 완료 프레임 워크와 다른 아이비를 프론트 엔드로 사용합니다.
bibtex-completion-watch-bibliography . 참고 문헌의 자동 재 장전을 비활성화하는 데 사용할 수 있습니다.ivy-bitex 의 여러 항목에 표시하고 행동 할 수 있습니다. 여기를 참조하십시오.helm-bibtex-with-local-bibliography 및 ivy-bibtex-with-local-bibliography 이제 ORG 파일에서 국부적이고 전 세계적으로 정의 된 서지를 사용합니다. 이들은 새로운 #+BIBLIOGRAPHY: 키워드 및 변수 org-cite-global-bibliography .bibtex-completion-format-citation-org-cite (구성 변수 bibtex-completion-format-citation-functions )=has-pdf= 함께 항목 =has-note= 검색 할 수 있습니다.helm-bibtex-with-notes 와 ivy-bibtex-with-noted .author-or-editor 추가되었습니다.@string 상수에 대한 지원이 추가되었습니다.Old News는 News.org를 참조하십시오.
Helm-Bibtex '및 Ivy-Bibtex의 주요 판매 포인트는 강력한 검색 표현식과 EMACS 워크 플로에 엄격한 통합을 사용하여 대규모 참고 문헌에서 효율적인 검색입니다. 둘 다 검색 표현식과 일치하는 항목에 대해 다음과 같은 작업을 수행 할 수 있습니다. 항목, URL 또는 DOI와 관련된 PDF를 열고 해당 항목에 대한 인용, Bibtex 키, Bibtex 항목 또는 일반 텍스트 참조를 삽입하고 PDF를 이메일에 첨부하고 BIBTEX 항목 편집. 개인 선호도에 맞게 많은 측면을 구성 할 수 있습니다.
아래는“눈 추적”표현이 포함 된 항목에 대한 Helm-Bibtex 검색을 보여주는 스크린 샷입니다.

정규 표현식 eye.?tracking Tracking은 다른 철자를 검색 할 수 있습니다 ( "눈 추적", "눈 추적", "Eyetracking"). 항목 옆에 루프가있는 사각형 기호 (⌘)는 PDF를 사용할 수 있음을 나타냅니다. 펜 기호 (✎)는이 항목에 첨부 된 메모가 있음을 의미합니다. 맨 아래에는 온라인 데이터베이스에서 검색하는 데 사용할 수있는 항목이 있습니다.
Helm-Bibtex 또는 Ivy-Bibtex를 설치하는 가장 쉬운 방법은 Melpa를 통한 것입니다. 또는 파일 Bibtex-Completion.el 및 helm-bibtex.el 또는 Ivy-Bibtex.el 파일을로드-포지에 포함 된 디렉토리에 넣고 시작 파일에 다음 줄을 추가하십시오 (일반적으로 init.el ).
( autoload 'helm-bibtex " helm-bibtex " " " t )또는
( autoload 'ivy-bibtex " ivy-bibtex " " " t )
; ; ivy-bibtex requires ivy's `ivy--regex-ignore-order` regex builder, which
; ; ignores the order of regexp tokens when searching for matching candidates.
; ; Add something like this to your init file:
( setq ivy-re-builders-alist
'((ivy-bibtex . ivy--regex-ignore-order)
( t . ivy--regex-plus)))Helm-Bibtex 및 Ivy-Bibtex는 Melpa를 사용하면 자동으로 설치 될 여러 패키지에 따라 다릅니다.
Helm-Bibtex 또는 Ivy-Bibtex를 사용하는 경우 Helm 또는 Ivy가 올바르게 구성되어 있는지 확인하십시오 (Helm 문서 또는 Ivy 문서 참조).
최소한의 구성에는 Bibtex-Completion에게 참고 문헌을 찾을 수있는 곳을 찾는 것이 포함됩니다.
( setq bibtex-completion-bibliography
'( " /path/to/bibtex-file-1.bib "
" /path/to/bibtex-file-2.bib " )) ORG-BIBTEX 사용자는 ORG 모드 참고 문헌 파일을 지정할 수 있으며,이 경우 Bibtex 파일이 ORG 대신 동일한 이름 및 확장 BIB로 존재한다고 가정합니다. BIB 파일의 이름이 다른 경우, Cons Cell ("orgfile.org" . “bibfile.bib") 사용하십시오.
( setq bibtex-completion-bibliography
'( " /path/to/bibtex-file-1.bib "
" /path/to/org-bibtex-file.org "
( " /path/to/org-bibtex-file2.org " . " /path/to/bibtex-file.bib " )))PDF를 찾을 수있는 위치를 지정하십시오.
( setq bibtex-completion-library-path '( " /path1/to/pdfs " " /path2/to/pdfs " )) Bibtex-Completion은 PDF의 이름이 Bibtex 키로 구성된 .pdf 가정합니다. 예를 들어, Bibtex 항목에 Key Darwin1859 가있는 경우 Bibtex-Completion은 Darwin1859.pdf 검색합니다.
Bibtex 항목에 PDF에 대한 전체 경로를 지정하는 필드가있는 경우 해당 필드도 사용할 수 있습니다. 예를 들어, Jabref와 Zotero는 File 이라는 필드에 PDFS의 위치를 저장합니다.
( setq bibtex-completion-pdf-field " File " ) bibtex-completion-pdf-field 가 Non-Nil 인 경우 Bibtex-Completion은 먼저이 필드에 지정된 파일을 검색하려고합니다. 필드가 항목으로 설정되지 않았거나 지정된 파일이 존재하지 않는 경우 Bibtex-Completion은 위에서 설명한 방법으로 돌아갑니다 ( bibtex-completion-library-path 에 나열된 디렉토리에서 key + .pdf 를 검색).
파일 사양은 Bare Paths이거나 Jabref, Zotero, Caliber 및 Mendeley가 사용하는 형식을 따를 수 있습니다. 이 형식은 또한 여러 파일 (예 : 메인 용지 및 보충 자료)의 사양도 허용합니다. 예 :
File = {/path/to/article.pdf}File = {:/path/to/article.pdf:PDF}File = {:/path/to/article.pdf:PDF;:/path/to/supplementary_materials.pdf:PDF} Bibtex-Completion은 메모 저장을위한 두 가지 방법을 지원합니다. 모든 메모를 하나의 파일에 저장하거나 여러 파일에 메모를 저장할 수 있습니다. 게시 당 하나의 파일. 첫 번째 경우, 사용자 정의 변수 bibtex-completion-notes-path 메모 파일의 전체 경로로 설정해야합니다.
( setq bibtex-completion-notes-path " /path/to/notes.org " ) 출판 당 하나의 파일이 선호되는 경우 bibtex-completion-notes-path 메모 파일을 저장하는 데 사용되는 디렉토리를 가리 려야합니다.
( setq bibtex-completion-notes-path " /path/to/notes " ) 이 파일의 이름은 Bibtex 키와 사용자 정의 접미사 (기본적으로 .org )로 구성됩니다.
이 시점에서 대부분의 사람들은 갈 준비가 될 것입니다. Helm-Bibtex 및 Ivy-Bibtex를 사용하는 방법을 확인하려면 아래의 사용으로 건너 뜁니다.
포인트가 조직 모드 인용에있을 때 helm-bibtex 또는 ivy-bibtex 호출하면 해당 키를 자동으로 선택합니다. 그러나 조직 인용에 대한 기본 org-open-at-point 는 해당 서지 입력으로 안내합니다. 다음 코드는이 동작을 변경하여 RET 입력하거나 클릭하여 조직 인용을 따를 때 helm-bibtex-follow 열도록 변경합니다.
( setq org-cite-follow-processor 'helm-bibtex-org-cite-follow ) 참고 여러 키가있는 조직 인용의 경우, 위의 코드는 [cite: 부분이 선택 될 때 어떤 항목도 미리 선택하지 않습니다. 아이비 대안은 여기를 참조하십시오.
변수 bibtex-completion-display-formats 사용하여 검색 결과를 입력 당 유형으로 제시하는 방법을 사용자 정의 할 수 있습니다. 기본값은입니다
'(( t . " ${author:36} ${title:*} ${year:4} ${=has-pdf=:1}${=has-note=:1} ${=type=:7} " )) 이는 모든 입력 유형이 동일한 방식으로 제시됨을 의미합니다. 저자, 제목, 연도,…이 형식 문자열에서 숫자는 각 필드에 얼마나 많은 공간이 예약되어 있는지를 나타냅니다. 숫자 대신 * 가 있으면이 필드는 공간이 남아 있음을 의미합니다. 다음은 다른 입력 유형에 대해 다른 레이아웃을 사용하는 설정입니다.
( setq bibtex-completion-display-formats
'((article . " ${=has-pdf=:1}${=has-note=:1} ${=type=:3} ${year:4} ${author:36} ${title:*} ${journal:40} " )
(inbook . " ${=has-pdf=:1}${=has-note=:1} ${=type=:3} ${year:4} ${author:36} ${title:*} Chapter ${chapter:32} " )
(incollection . " ${=has-pdf=:1}${=has-note=:1} ${=type=:3} ${year:4} ${author:36} ${title:*} ${booktitle:40} " )
(inproceedings . " ${=has-pdf=:1}${=has-note=:1} ${=type=:3} ${year:4} ${author:36} ${title:*} ${booktitle:40} " )
( t . " ${=has-pdf=:1}${=has-note=:1} ${=type=:3} ${year:4} ${author:36} ${title:*} " ))) 이 작업을 위해서는 bibtex-completion-additional-search-fields 에 journal 과 booktitle 추가해야합니다. 다음 섹션을 참조하십시오.
검색에 사용되는 기본 필드는 다음과 같습니다. 저자, 제목, 연도, Bibtex 키, 입력 유형 (기사, InproCeasing,…). 변수 bibtex-completion-addition-search-fields 사용 하여이 목록을 확장 할 수 있습니다. 예:
( setq bibtex-completion-additional-search-fields '(keywords))( setq bibtex-completion-pdf-symbol " ⌘ " )
( setq bibtex-completion-notes-symbol " ✎ " ) PDFS 파일이 Bibtex Key + .pdf 와 다른 명명 체계를 따르는 경우,이를 수용하도록 bibtex-completion-find-pdf-in-library 기능을 수정할 수 있습니다.
기본적으로 EMACS는 PDF 파일을 여는 데 사용됩니다. 즉, DocView가 사용되거나 설치된 경우 PDF 파일의 증분 검색 및 Adobe 소프트웨어가 작성한 주석과 호환되는 주석의 생성 및 수정과 같은 기능을 제공하는 훨씬 우수한 PDF-Tools 확장 기능이 있습니다.
다른 PDF 뷰어를 구성하려면 사용자 정의 변수 bibtex-completion-pdf-open-function 사용할 수 있습니다. 다음은 OS X PDF Viewer Skim에 대한 예제 구성입니다.
( setq bibtex-completion-pdf-open-function
( lambda ( fpath )
( call-process " open " nil 0 nil " -a " " /Applications/Skim.app " fpath)))다음은 Linux PDF 뷰어 Evince의 또 다른 예입니다.
( setq bibtex-completion-pdf-open-function
( lambda ( fpath )
( call-process " evince " nil 0 nil fpath))) PDF를 열기 위해 옵션 (EMACS 자체 및 외부 뷰어)을 모두 갖는 것이 바람직합니다. 다음은 P p 가진 일반 EMACS 뷰어 외에도 외부 시청자로서 A Evines와의 동작을 추가합니다. 이 작업은 Ivy-Bibtex와 함께 작동합니다. Helm-Bibtex에 대해 조정해야합니다 (필요한 경우 다른 뷰어로 경로를 변경) :
( defun bibtex-completion-open-pdf-external ( keys &optional fallback-action )
( let ((bibtex-completion-pdf-open-function
( lambda ( fpath ) ( start-process " evince " " *helm-bibtex-evince* " " /usr/bin/evince " fpath))))
(bibtex-completion-open-pdf keys fallback-action)))
(ivy-bibtex-ivify-action bibtex-completion-open-pdf-external ivy-bibtex-open-pdf-external)
(ivy-add-actions
'ivy-bibtex
'(( " P " ivy-bibtex-open-pdf-external " Open PDF file in external viewer (if present) " ))) 원래 PDF의 주석이 달린 버전, 보충 자료가 포함 된 파일 또는 챕터 파일과 같은 주어진 항목에 대한 추가 PDF를 저장할 수 있습니다. file 필드가 PDF를 항목에 연결하는 데 사용되는 경우 (섹션 PDF 파일 참조) 이러한 추가 PDF를 해당 필드에 간단히 추가 할 수 있습니다. "PDF 파일 열기"조치가 트리거되면 파일이 열리도록 메시지가 표시됩니다.
file 필드가 사용되지 않고 대신 이름 지정 체계 bibtex-key + .pdf (다시 PDF 파일 참조)와 동일한 동작을 얻을 수 있습니다.
( setq bibtex-completion-find-additional-pdfs t )Bibtex 키로 시작하는 모든 파일은 항목과 관련이 있습니다. 그런 다음 그에 따라 파일의 이름을 지정하는 것으로 충분합니다 (예 : 이름 변경 유틸리티). 예 :
bibtex-key-annotated.pdfbibtex-key-supplemental.pdfbibtex-key-chapter1.pdf 성능의 이유로 이러한 추가 파일은 "PDF 파일 열기"와 같은 작업을 트리거 할 때만 감지됩니다. 전체 참고 문헌이로드되면 "메인"PDF bibtex-key.pdf 만 감지됩니다.
이름 지정 체계 bibtex-key.pdf 를 통해 문서가 참조되지만 PDF와 다른 형식의 파일을 저장하는 경우 변수 bibtex-completion-pdf-extension 설정할 수 있습니다. 예:
( setq bibtex-completion-pdf-extension " .djvu " )파일을 다양한 형식으로 저장하는 경우 단일 파일 유형 대신 목록을 지정할 수 있습니다.
( setq bibtex-completion-pdf-extension '( " .pdf " " .djvu " , " .jpg " ))이 목록의 내선은 파일이 발견 될 때까지 순차적으로 시도됩니다. 이것이 큰 참고 문헌의 성능을 줄일 수 있음을 조심하십시오.
기본적으로 Bibtex-Completion은 EMACS의 기본값을 사용합니다. 그러나 다양한 대안이 있습니다 (전체 목록은 bibtex-completion-browser-function 의 문서를 참조하십시오). 예:
( setq bibtex-completion-browser-function 'browser-url-chromium )사용자 정의 기능도 사용할 수 있습니다.
( setq bibtex-completion-browser-function
( lambda ( url _ ) ( start-process " firefox " " *firefox* " " firefox " url))) bibtex-completion-watch-bibliography 사용하여 자동 재 장전을 구성 할 수 있습니다.
Bibtex-Completion은 인용이 삽입되는 주요 모드를 기반으로 인용을 만듭니다.
모드 목록을 확장 할 수 있고 인용 기능을 사용자 정의 변수 bibtex-completion-format-citation-functions 사용하여 변경할 수 있습니다. 예를 들어, EBIB를 사용하지 않는 사람들은 조직 모드 파일에서 EBIB-Links 대신 PDF에 대한 링크를 선호 할 수 있습니다.
( setq bibtex-completion-format-citation-functions
'(( org-mode . bibtex-completion-format-citation-org-link-to-PDF)
( latex-mode . bibtex-completion-format-citation-cite)
( markdown-mode . bibtex-completion-format-citation-pandoc-citeproc)
( default . bibtex-completion-format-citation-default))) Org-Mode에서 읽기 할 일 목록을 작성하려면 링크에서 PDF 파일의 제목을 사용하여 퍼 뜨릴 수 있습니다. 이 목표를 달성하려면 다음 코드 스 니펫을 사용하여 변수 bibtex-completion-format-citation-functions 수정할 수 있습니다.
( setq bibtex-completion-format-citation-functions
'(( org-mode . bibtex-completion-format-citation-org-title-link-to-PDF)
( latex-mode . bibtex-completion-format-citation-cite)
( markdown-mode . bibtex-completion-format-citation-pandoc-citeproc)
( default . bibtex-completion-format-citation-default)))인용 함수는 키 목록을 입력으로 수락하고 인용이 포함 된 문자열을 반환해야합니다. 예제는 사전 정의 된 인용 기능을 참조하십시오.
Bibtex-Completion은 라텍스 문서에 인용을 삽입 할 때 라텍스 인용 명령을 제기합니다. 자동 완성에 사용할 수있는 명령 목록은 변수 bibtex-completion-cite-commands 사용하여 정의 할 수 있습니다.
기본 설정에는 Biblatex에 정의 된 모든 인용 명령이 포함됩니다 (멀티 파인 명령 및 volcite et al. 제외). 명령이 입력되지 않으면 bibtex-completion-cite-default-command 사용하여 구성 할 수있는 기본 명령이 사용됩니다. 기본 명령의 기본값은 cite 됩니다. 변수 bibtex-completion-cite-default-as-initial-input 기본 명령의 사용 방법을 제어합니다. t 인 경우 사용자의 입력을 읽기 전에 미니 버퍼에 삽입됩니다. nil 인 경우 미니 버퍼에 삽입되지 않지만 사용자가 아무것도 입력하지 않으면 기본값으로 사용됩니다.
기본적으로 Bibtex-Completion은 인용의 선택적 사전 및 우편 번호를 제기합니다. 이는 변수 bibtex-completion-cite-prompt-for-optional-arguments nil 로 설정하여 꺼질 수 있습니다.
아래의 섹션 삽입 라텍스 인용 명령도 아래를 참조하십시오.
온라인 데이터베이스는 사용자 정의 변수 bibtex-completion-fallback-options 사용하여 구성 할 수 있습니다. 이 변수에는 각 항목의 첫 번째 요소가 데이터베이스 이름이고 두 번째 요소는 URL 또는 함수 인 Alist가 포함됩니다. URL은 현재 검색 표현식을 삽입 해야하는 위치에 %s 포함해야합니다. 함수를 사용하는 경우 해당 함수는이 검색 표현식을 단일 인수로 가져와야합니다.
참고 문헌에 빠르게 액세스하려면 검색 명령, helm-bibtex 또는 ivy-bibtex 를 편리한 키에 바인딩하십시오.
Helm-Bibtex : 메뉴 키를 모든 Helm 명령의 접두사 키로 사용하고 helm-bibtex b 에 바인딩합니다. 그런 다음 Helm-Bibtex는 <menu> b 사용하여 시작할 수 있습니다. helm-command-map 에서 helm-resume <menu> 에 바인딩하는 것도 유용합니다. 이 바인딩을 사용하면 <menu> <menu> 사용하여 마지막 헬름 검색을 다시 열 수 있습니다.
( global - set - key ( kbd " <menu> " ) ' helm-command-prefix)
(define-key helm-command-map "b" ' helm - bibtex )
( define - key helm - command - map " B " ' helm-bibtex-with-local-bibliography)
(define-key helm-command-map "n" ' helm - bibtex - with - notes )
( define - key helm - command - map ( kbd " <menu> " ) ' helm-resume) Ivy-Bibtex : ivy-bibtex <menu> b 에 비슷하게 바인딩하고 ivy-resume <menu> <menu> 에 바인딩 할 수 있습니다.
편의를 위해, 자주 검색을 명령으로 캡처하고 주요 조합으로 묶을 수 있습니다. 아래는 "Jane Doe"에서 작성한 출판물 검색을 정의하고 검색 명령을 Cx p 에 바인딩하는 예제 코드입니다.
Helm-Bibtex :
( defun helm-bibtex-my-publications ( &optional arg )
" Search BibTeX entries authored by “Jane Doe”.
With a prefix ARG, the cache is invalidated and the bibliography reread. "
( interactive " P " )
(helm-bibtex arg nil " Jane Doe " ))
; ; Bind this search function to Ctrl-x p:
( global-set-key ( kbd " C-x p " ) 'helm-bibtex-my-publications )아이비-바이텍스 :
( defun ivy-bibtex-my-publications ( &optional arg )
" Search BibTeX entries authored by “Jane Doe”.
With a prefix ARG, the cache is invalidated and the bibliography reread. "
( interactive " P " )
( when arg
(bibtex-completion-clear-cache))
(bibtex-completion-init)
(ivy-read " BibTeX Items: "
(bibtex-completion-candidates)
:initial-input " Jane Doe "
:caller 'ivy-bibtex
:action ivy-bibtex-default-action))
; ; Bind this search function to Ctrl-x p:
( global-set-key ( kbd " C-x p " ) 'ivy-bibtex-my-publications ) 출판물에서 <enter> 누르면 출판물과 관련된 PDF를 열거나 URL 또는 doi와 관련된 PDF를 열어 놓는 "기본 조치"를 트리거합니다. helm-bibtex 또는 ivy-bibtex의 Mo 에서 <tab> 누르면 사용 가능한 작업을 나열하는 작업 메뉴가 표시됩니다. 다음은 기능과 함께 사용 가능한 모든 작업 목록입니다 (이것은 일반적인 동작 함수, 헬름-바이텍스의 경우 기능 이름은 bibtex-completion- 대신 helm-bibtex- 로 시작하고 ivy-bibtex의 경우 대신 ivy-bibtex- 로 시작합니다).
bibtex-completion-open-anybibtex-completion-open-pdfbibtex-completion-open-url-or-doibibtex-completion-insert-citationbibtex-completion-insert-referencebibtex-completion-insert-keybibtex-completion-insert-bibtexbibtex-completion-add-PDF-attachmentbibtex-completion-edit-notesbibtex-completion-show-entrybibtex-completion-add-pdf-to-library Helm-Bibtex : 조치 목록은 helm-add-action-to-source 및 helm-delete-action-from-source 통해 수정할 수 있습니다. 예를 들어, 다음은 위의 목록의 첫 번째 항목 직후에 새로운 조치 helm-bibtex-open-annotated-pdf (위 참조)를 추가합니다.
(helm-add-action-to-source
" Open annotated PDF (if present) " 'helm-bibtex-open-annotated-pdf
helm-source-bibtex 1 ) helm-add-action-to-source 의 마지막 숫자 인수가 생략되면 목록 끝에 새로운 조치가 추가됩니다. 기본 조치는 단순히 동작 목록의 첫 번째 항목이므로 작업을 삭제하고 목록 상단에 다시 설치하여 기본 조치를 변경할 수 있습니다. 아래는 "Bibtex 키 삽입"을 만드는 방법을 보여주는 예입니다.
(helm-delete-action-from-source " Insert BibTeX key " helm-source-bibtex)
(helm-add-action-to-source " Insert BibTeX key " 'helm-bibtex-insert-key helm-source-bibtex 0 ) Ivy-Bibtex : 기본 조치 및 추가 사용 가능한 작업은 별도로 설정됩니다. 기본 동작은 변수 ivy-bibtex-default-action 및 ivy-bibtex-default-multi-action 에 의해 제어되며, 후자는 표시된 항목 목록을위한 것입니다 (여러 항목에 동작 적용을 참조). 예를 들어, 다음 코드는 기본 조치를 "Bibtex 키 삽입"으로 변경합니다.
( setq ivy-bibtex-default-action 'ivy-bibtex-insert-key )같은 방식으로 다음 코드는 "Bibtex Key 삽입"에 표시된 항목 목록에 대한 기본 조치를 설정하여 멋진 쉼표로 구분 된 키 목록을 삽입합니다.
( setq ivy-bibtex-default-multi-action 'ivy-bibtex-insert-key ) 추가 조치는 원하는 조치 목록을 명령 ivy-set-actions 으로 전달하여 설정됩니다. 예를 들어, 다음 코드는 기본 코드 외에도 사용 가능한 두 가지 작업 만 보관합니다.
(ivy-set-actions
'ivy-bibtex
'(( " p " ivy-bibtex-open-any " Open PDF, URL, or DOI " ivy-bibtex-open-any)
( " e " ivy-bibtex-edit-notes " Edit notes " ivy-bibtex-edit-notes))) 문자 p 와 e 액션 메뉴의 두 작업에 대한 주요 바인딩입니다. 키 바인딩 o 기본 조치를 위해 예약되어 있습니다. 이 코드의 액션의 두 번째 모양은 동작이 표시된 항목 목록을 처리 할 수 있다는 것을 ivy . 올바른 일이 단순히 각 항목에 조치를 차례로 적용하는 경우 안전하게 생략 할 수 있습니다.
작업 목록 끝에서 새로운 작업을 추가하려면 ivy-add-actions 명령을 대안으로 사용할 수 있습니다. 예를 들어, 다음은 조치 목록의 끝에 새로운 동작 ivy-bibtex-open-annotated-pdf (위 참조)를 추가합니다.
(ivy-add-actions
'ivy-bibtex
'(( " P " ivy-bibtex-open-annotated-pdf " Open annotated PDF (if present) " ivy-bibtex-open-annotated-pdf)))Helm-Bibtex 또는 Ivy-Bibtex에 대한 새로운 동작을 세 단계로 수행 할 수 있습니다. 예를 들어 위의 주석이 달린 PDF를 열는 조치를 참조하십시오.
첫 번째 및 주요 단계는 일반적인 동작 함수 bibtex-completion-<action> (예 : bibtex-completion-open-annotated-pdf )를 만드는 것입니다. 이 기능은 단일 인수로 Bibtex 키 목록을 사용하고 해당 Bibtex 항목에서 작업을 수행해야합니다.
두 번째 단계는 Helm-Bibtex 또는 Ivy-Bibtex의 일반 동작 함수를 조정하여 올바른 버퍼로 실행되고 선택한 항목의 키를 수신하는 것입니다).
Helm-Bibtex : 이것은 단순히 다음과 같습니다.
(helm-bibtex-helmify-action bibtex-completion-<action > helm-bibtex-<action > )Ivy-Bibtex : 이것은 단순히 다음과 같습니다.
(ivy-bibtex-ivify-action bibtex-completion-<action > ivy-bibtex-<action > ) 세 번째이자 마지막 단계는 조정 된 액션 함수 helm-bibtex-<action> 또는 ivy-bibtex-<action> 헬름-비텍스 또는 아이비-바이 텍스에서 액션 메뉴에 추가하여 사용할 수 있도록하는 것입니다. 사용 가능한 작업을 변경하십시오.
Helm-Bibtex : 기본적으로 helm-bibtex 전체 프레임을 사용하여 참고 문헌을 표시합니다. 이는 변수 helm-bibtex-full-frame nil 로 설정하여 변경할 수 있으며,이 경우 Helm의 표준이 사용됩니다 (일반적으로 수직 분할, Helm 검색이 하단 창에 표시됨).
Ivy-Bibtex : Ivy-Bibtex는 항상 미니 버퍼에 참고 문헌을 표시합니다. 변수 ivy-height 모든 아이비 명령에서 미니 버퍼 창에 대한 줄 수를 제어합니다.
Bibtex-Completion은 출판물에 대한 몇 가지 기본 정보로 새로운 메모를 채 웁니다. 모든 간행물에 대해 하나의 노트 파일 만 있으면 새 항목은 다음 예와 같습니다.
Gigerenzer, G. (1998) : 통계 의식이 아닌 통계적 사고가 필요합니다. :속성: : custom_id : gigerenzer1998 :끝:
새 섹션의 제목은 저자 이름, 연도 및 출판물 제목으로 구성됩니다. 특성 Custom_ID 항목의 Bibtex 키를 지정합니다 (Org-Ref와의 호환성을 위해 Custom_ID 로 명명됨).
게시 당 하나의 파일의 경우 새 메모 파일에는 다음 형식의 제목이 포함됩니다.
#+제목 : 참고 사항 : Gigerenzer, G. (1998) : 통계 의식이 아닌 통계적 사고가 필요합니다.
다른 형식이 원하는 경우, 사용자 정의 변수 bibtex-completion-notes-template-one-file 및 bibtex-completion-notes-template-multiple-files 사용하여 새 메모의 템플릿을 변경할 수 있습니다.
기본적으로 Bibtex-Completion은 메모 파일이 조직 모드 형식이라고 가정합니다. 그러나 다른 형식도 사용할 수 있습니다. 단 하나의 메모 파일의 경우 bibtex-completion-notes-path 원하는 파일을 가리키도록 설정하는 것으로 충분합니다. 다중 노트 파일의 경우 파일 유형은 사용자 정의 변수 bibtex-completion-notes-extension 사용하여 지정할 수 있습니다. 예를 들어, Markdown이 원하는 파일 유형 인 경우
( setq bibtex-completion-notes-path " /path/to/notes " )
( setq bibtex-completion-notes-extension " .md " )파일 유형이 Org-Mode 이외의 다른 것으로 설정된 경우 새 노트 파일의 템플릿도 조정해야합니다. 자세한 내용은 위의 섹션을 참조하십시오.
BIBTEX-COMPLETION 디스크에서 .bib 파일이 변경되면 서지를 자동으로 다시로드합니다. 그러나 Bibtex-Completion은 PDF와 메모를 보지 않습니다. 따라서 새로운 PDF 또는 메모가 추가되면 참고 문헌을 수동으로 다시로드하여 PDF 및 메모 기호를 올바르게 표시해야합니다 (예 : Cu Mx helm-bibtex 통해). 불행히도, Bibtex 완료가 PDF 및 메모를 처리 할 수있는 방법에 대해 매우 유연하기 때문에 PDF 및 메모에 대한 자동 재 장전을 구현하는 것은 완전히 간단하지 않습니다. 그러나 간단한 설정의 경우 쉬운 해결책이 있습니다. bibtex-completion-library-path 및 bibtex-completion-notes-path 디렉토리를보고 변경시 참고 문헌을 다시로드하십시오. PDF 디렉토리의 예 :
( setq tmalsburg-pdf-watch
( file-notify-add-watch bibtex-completion-library-path
'(change)
( lambda ( event ) (bibtex-completion-candidates)))) Mx helm-bibtex 또는 Mx ivy-bibtex 사용하여 새 검색을 시작하십시오. 검색을위한 기본 필드는 저자, 제목, 연도, Bibtex 키 및 입력 유형입니다. 정규 표현식을 사용할 수 있습니다. 예제 검색 :
Janet Fodor가 출판 한 모든 것 :
Janet Fodor
모든 박사 학위 :
박사
Lyn Frazier의 박사 학위 논문 :
Phdthesis Frazier
눈 추적에 관한 간행물. 정기적 인 표현은 다양한 철자 ( "눈물물", "눈 추적", "눈 추적")와 일치하는 데 사용됩니다.
눈.? Tracking
2013 년 컨퍼런스 프레젠테이션 :
2013 InproCeedings
2010 년과 2011 년 간행물 :
(2010 | 2011 )
David Caplan과 Gloria Waters가 공동 저술 한 기사 :
기사 Waters Caplan
Gloria Waters가 공동 저술 하지 않은 David Caplan의 기사 검색 :
기사 Caplan! Waters
bibtex-completion-bibliography helm-bibtex-with-local-bibliography ivy-bibtex-with-local-bibliography local-bibliography를 사용하십시오. 현재 파일이 Bibtex 파일 인 경우 해당 참고 문헌이 사용됩니다. 현재 파일이 라텍스 파일 인 경우 reftex는 표준 라텍스 참고 문헌 명령 bibliography 및 addbibresource 로컬 참고 문헌을 결정하는 데 사용됩니다. 파일이 조직 파일 인 경우 로컬 및/또는 글로벌 조직 참고 문헌이 사용됩니다 (새로운 #+BIBLIOGRAPHY: 키워드 및 변수 org-cite-global-bibliography 사용하여 지정). 국소 참고 문헌을 찾을 수없는 경우 글로벌 참고 문헌 ( bibtex-completion-bibliography )이 사용됩니다.
helm-bibtex-with-notes 또는 ivy-bibtex-with-notes 사용하여 메모가있는 항목 중에서 만 검색하십시오. ~ org-roam-bibtex.el ~와 함께 특히 유용합니다.
일반적인 사용 사례는 검색 용어가 문서 (라텍스 원고)에 작성된 곳이며 참고 문헌에서 검색하려는 경우입니다. 이 상황에서는 Helm-Bibtex 또는 Ivy-Bibtex를 시작하여 Mn 입력하십시오. 이것은 커서 아래에서 검색어로 단어를 삽입합니다. (이것은 Helm / Ivy 기능이며 Helm-Bibtex / Ivy-Bibtex뿐만 아니라 모든 Helm / Ivy 명령에 사용할 수 있습니다.) 검색에 Bibtex 키를 사용할 수도 있습니다. 따라서 커서가 Bibtex 키 (예 : 라텍스 인용 명령)에있는 경우 Helm-Bibtex 또는 Ivy-Bibtex를 시작하고 Mn 치고 해당 Bibtex 키와 관련된 항목을 볼 수 있습니다. 특별한 경우 : 커서 아래에서 Bibtex 키와 관련된 PDF를 열려고합니다 : Mx helm-bibtex Mn RET 또는 Mx ivy-bibtex Mn RET . 물론 helm-bibtex 또는 ivy-bibtex 편리한 키에 바인딩하는 경우 (키 바인딩 참조) 물론 더 짧습니다.
사용 가능한 조치는 다음과 같습니다.
Helm-Bibtex : 항목을 선택하고 <return> 눌러 기본 조치를 실행하십시오. 또는 TAB (Tabulator)을 눌러 사용 가능한 모든 작업 목록을보고 그 중 하나를 실행하고 Helm-Bibtex를 종료하십시오.
Ivy-Bibtex : 항목을 선택하고 <return> 눌러 기본 조치를 실행하십시오. 또는 Mo 눌러 사용 가능한 모든 작업의 목록을보고 그 중 하나를 실행하고 Ivy-Bibtex를 종료하십시오.
Helm-Bibtex : Helm-Bibtex를 시작하고 검색 표현식을 입력하고 커서를 일치하는 항목으로 이동하고 C-<space> (Control + Space Bar)을 입력 하여이 항목을 표시하고 선택적으로 검색 표현식을 변경하고 최종적으로 <return> 또는 <tab> 눌러 선택한 모든 항목에 대한 작업을 한 번에 실행합니다.
Ivy-Bibtex : Ivy-Bibtex를 시작하고, 검색 표현식을 입력하고, 커서를 일치하는 항목으로 이동하고 C-<space> (Control + Space Bar)를 입력 하여이 항목을 표시하고 선택적으로 검색 표현식을 변경하고 최종적으로 <return> 눌러 선택한 모든 항목에서 기본 조치를 실행하거나 다른 작업을 Mo 합니다. S-<space> (Shift + Space Bar)를 눌러 표시된 항목을 마크를 해제하십시오.
Helm-Bibtex : 동료 ( Cx m )에게 이메일을 시작하고 helm-bibtex 실행하십시오. 새 출판물을 검색하고 C-<space> 로 표시 한 다음 <f7> 눌러 "PDF 첨부 이메일에 첨부"를 실행하십시오. 그런 다음 Mx helm-resume (출판물이 여전히 표시됨) 및 <f6> 눌러 "Bibtex entry 삽입"조치를 실행합니다. 선택적으로 Mx helm-resume 및 <f4> 를 사용하여 더 인간 읽기 가능한 참조를 삽입하여 "삽입 참조"를 실행하십시오. 이메일을 보내십시오 ( Cc Cc ). 완료. 10 초 미만이 걸립니다.
Ivy-Bibtex : 동료 ( Cx m )에게 이메일을 시작하고 ivy-bibtex 실행하십시오. 새 출판물을 검색하고 C-<space> 로 표시 한 다음 CMo a 눌러 아이비를 열어 두는 동안 "PDF 첨부 이메일에 PDF 첨부"를 실행하십시오. 그런 다음 Mo b 눌러 "Bibtex Entry 삽입"조치를 실행하거나 Mo r 사용하여 더 인간 읽기 가능한 참조를 삽입하여 동작 "삽입 참조"를 실행하십시오. 이메일을 보내십시오 ( Cc Cc ). 완료. 10 초 미만이 걸립니다.
물론 이것은 MU4E를 통해 EMAC에서 이메일을 보내고 있다고 가정합니다.
Helm-Bibtex 및 Ivy-Bibtex에는 강력한 검색 기능이 있지만 관련 정보는 일반적으로 Bibtex 파일에 표시되지 않기 때문에 일부 일반적인 검색은 수행 할 수 없습니다. 예를 들어, Bibtex-Completion은 컨퍼런스 프레젠테이션이 inproceedings 인지 포스터인지 여부를 알지 못합니다. 따라서 회의 회담 목록 (예 : CV)을 편집하려면 추가 작업이 없으면 불가능합니다. 한 가지 해결책은 출판물을 "태그"하는 것입니다. 태그는 출판물의 내용을 나타내지 않고 메타 데이터를 나타내는 것을 제외하고는 키워드와 같습니다. 예:
@inproceedings { BibtexKey2015 ,
author = { Jane Doe and Monika Mustermann } ,
title = { This is the title } ,
crossref = { XYZ-conference-2015 } ,
keywords = { keyword1, keyword2 } ,
pages = { 10 } ,
tags = { poster } ,
} tags 표준 BIBTex 필드가 아니기 때문에 기본적으로 Bibtex-Completion은 검색 할 때이를 고려하지 않습니다. 태그를 검색하려면 Bibtex-Completion에 tags 필드도 관련이 있다고 말해야합니다.
(SETQ BIBTEX-COMPLETION-ADDITIONAL-SEARCH FIELDS '(TAGS))
태그를 사용할 수있는 다른 많은 방법이 있습니다. 예를 들어, 그들은 당신이 읽을 계획이거나 중요한 기사 나 원고 등을 표시하는 데 사용될 수 있습니다. 창의적이어야합니다.
인용 명령을 라텍스 문서에 인용 문서에 삽입하는 조치는 인용 명령에 대한 프롬프트 및 해당되는 경우 전 및 사후 결석 인수에 대해 프롬프트합니다. 인용 명령의 프롬프트에는 자체 미니 버퍼 기록이 있으며, 이는 헬름-비트 렉스의 <up> Mp 를 눌러 이전 입력에 액세스 할 수 있음을 의미합니다. <down> 누르면 Biblatex에 정의 된 모든 인용 명령의 목록에 액세스 할 수 있습니다 (다단계 명령 및 Volcite et al. 제외). 프롬프트는 또한 tab 키를 통한 자동 완성을 지원합니다. 명령이 입력되지 않으면 기본 명령이 사용됩니다. 기본 명령은 사용자 정의 변수 bibtex-completion-cite-default-command 에 정의됩니다. 기본적으로 Helm-Bibtex 및 Ivy-Bibtex는 인용의 사전 및 우편 번호를 자랑합니다. 이는 변수 bibtex-completion-cite-prompt-for-optional-arguments nil 로 설정하여 꺼질 수 있습니다.
Bibtex-Completion은 서지를 캐시하여 새 쿼리가 시작될 때 비용이 많이 드는 것을 방지합니다. 그러나 Bibtex-Completion은 마지막 읽기 이후 새 PDF 또는 메모가 추가되었는지 확인하지 않으므로 이러한 항목의 존재 또는 부재를 나타내는 기호가 잘못 될 수 있습니다. 접두사 인수를 사용하여 다시 읽을 수 있습니다.
Helm-Bibtex : Cu Mx helm-bibtex 또는 Cu 수행 한 다음 Helm-Bibtex를 호출하는 데 사용하는 키 바인딩이 이어집니다.
Ivy-Bibtex : Cu Mx ivy-bibtex 또는 Cu 수행 한 다음 Ivy-Bibtex를 호출하는 데 사용하는 키 바인드가 있습니다.
Helm-Bibtex : Helm-Bibtex를 시작하고 검색어를 입력하십시오. 그런 다음 "폴백 옵션"섹션에서 "Crossref"를 선택하십시오. (왼쪽 및 오른쪽 화살표 키를 사용하여 섹션간에 전환 할 수 있습니다.)
Ivy-Bibtex : Ivy-Bibtex를 시작하고 검색어를 입력하십시오. 그런 다음 Mo f 눌러 폴백 옵션 목록을 확인하고 "CrossRef"를 선택하십시오.
이것은 biblio.el을 사용하여 CrossRef 데이터베이스를 검색합니다. 결과 목록에서 관심있는 입력시 커서를 놓고 c 눌러 해당 항목의 Bibtex를 복사하거나 i 삽입 시점에 삽입하십시오. 검색 결과로 버퍼를 닫으려면 q 누르십시오. 자세한 내용은 Biblio.el의 문서를 참조하십시오.
때로는 검색어가 선택한 첫 번째 폴백 소스에서 원하는 결과를 얻지 못하며 동일한 검색어로 다른 폴백 옵션을 선택할 수 있습니다. 이를 위해 helm-resume (또는 ivy-resume )을 사용하여 마지막 검색 용어를 사용하여 다른 옵션을 효율적으로 선택할 수있게하여 초기 Helm (Ivy) 메뉴로 돌아갈 수 있습니다.
아래에서는 나 또는 다른 사용자에게 유용한 코드를 제공합니다. 이 코드는 설정에서 유지되지 않는 가정을 만들 수 있습니다. 실행하기 전에 코드를주의 깊게 읽고 필요에 따라 변경하십시오.
아래 코드는 bibtex-completion-notes-path 의 모든 노트 파일을 읽고 각 출판물에 대한 섹션이 포함 된 새 메모 파일을 만듭니다. 이 코드는 Bibtex-Completion이 여전히 다중 노트 파일에 대해 구성되어 있으며 bibtex-completion-notes-path 에 File notes.org 에 메모를 저장하려고한다고 가정합니다. 이 코드는 또한 개별 노트 파일에있는 모든 조직 헤드 라인에 레벨을 추가합니다 (최상위 제목은 새 노트 파일의 출판물에 사용되기 때문에). 참고 파일에 참고 문헌에 해당 항목이 없으면 무시됩니다.
( let ((note-files ( directory-files bibtex-completion-notes-path t " ^[^.]+ \ .org$ " ))
(bibtex-completion-notes-path (f-join bibtex-completion-notes-path " notes.org " )))
( cl-loop
for note-file in note-files
for key = (f-no-ext (f-filename note-file))
do ( condition-case nil
( progn
(bibtex-completion-edit-notes key)
( insert ( with-temp-buffer
( insert-file-contents note-file)
( replace-regexp " ^* " " ** " )
( buffer-string ))))
( error nil ))))기사에서 인용 한 항목 만 포함 된 Bibtex 파일을 작성하고 싶다고해서 다음 코드를 사용하여 새 Bibtex 파일을 항목으로 채울 수 있습니다.
( progn
( switch-to-buffer ( generate-new-buffer " my_new_bibliography.bib " ))
(--map ( insert (bibtex-completion-make-bibtex it)) (-distinct '( " Key1 " " Key2 " ))))라텍스가 기사를 작성하는 데 사용되는 경우 GREP 및 SED를 사용하여 인용 키를 추출 할 수 있습니다.
grep ' entry{ ' manuscript.bbl | sed ' s/^.*entry{([^}]*)}.*$/1/ ' This can be useful if you'd like to transfer all your PDFs to another directory or similar.
(flatten-tree
( mapcar
( lambda ( entry ) (bibtex-completion-find-pdf entry))
(bibtex-completion-candidates)))Helm-bibtex and ivy-bibtex display entries in the order in which they appear in the BibTeX file reversed. This way, entries that were added at the bottom of the BibTeX file show up at the top when searching. There is currently no support for sorting but if you want to reverse the order of entries you can use the code below:
( advice-add 'bibtex-completion-candidates
:filter-return 'reverse )ivy-bibtex as an org-cite-follow-processor As mentioned here, the default org-open-at-point on a org citation will take you to the corresponding bibliography entry. The following code will change this behavior to instead open ivy-bibtex when following an org citation by entering RET or clicking on it:
(org-cite-register-processor 'my-ivy-bibtex-org-cite-follow
:follow ( lambda ( _ _ ) (ivy-bibtex)))
( setq org-cite-follow-processor 'my-ivy-bibtex-org-cite-follow )This usually happens when a BibTeX file isn't well-formed. Common problems are opening quotes or parentheses that don't have matching counterparts. Unfortunately, Helm swallows the error message that is generated in these cases and just shows an empty buffer.
One way to diagnose the problem is to call the function for reading BibTeX directly and to see what error message it produces:
(bibtex-completion-candidates)당신이 보면
forward-sexp: Scan error: "Unbalanced parentheses", 181009, 512282
this means that there is an unmatched opening parenthesis at the position 181009. To find this parenthesis, open the BibTeX file and do M-: (goto-char 181009) RET . You can also use the command Mx bibtex-validate RET to check for errors. Fix any problems and try again.