biblatex: inproceedings/booktitle에서 대문자 사용을 유지합니다.

biblatex: inproceedings/booktitle에서 대문자 사용을 유지합니다.

저는 LyX와 Mendeley에서 제작한 Bibtex 파일과 함께 Biblatex-APA/Biber를 사용하고 있습니다. 문제없이 참고문헌을 제작할 수 있는데, inproceedings/booktitle의 참고문헌 스타일을 변경하고 싶습니다. 현재 내 참조는 다음과 같습니다.

Cole, R., Purao, S., Rossi, M. & Sein, M. (2005). Being proactive: Where action research meets design research. In Proceedings of the 26th international conference on information systems.

내 Bibtex 파일에서:

@inproceedings{Cole2005,
   author = {Cole, Robert and Purao, Sandeep and Rossi, Matti and Sein, Maung},
   booktitle = {Proceedings of the 26th International Conference on Information Systems},
   title = {{Being proactive: Where action research meets design research}},
   year = {2005}
}

이제 다음을 얻기 위해 진행 중/책 제목의 대문자를 유지하고 싶습니다.

Cole, R., Purao, S., Rossi, M. & Sein, M. (2005). Being proactive: Where action
research meets design research. In Proceedings of the 26th International Conference
on Information Systems.

다음을 실험했지만 성공하지 못했습니다.

\DeclareFieldFormat[inproceedings]{booktitle}{#1}

어떤 제안이 있으십니까?

답변1

참고문헌 스타일 파일 apa.bbx에서

\DeclareFieldFormat[inproceedings]{booktitle}{#1}

booktitle필드가 로 설정되어 있기 때문에 작동하지 않습니다 \printfield[apacase]{booktitle}. 여기서 apacase형식 지정 지시어는 다음과 같이 정의됩니다.

\DeclareFieldFormat{apacase}{\MakeSentenceCase*{#1}}

booktitle항목 유형 의 필드 에 대한 소스 대소문자를 유지하려면 참고 문헌 매크로나 문서 서문의 지시어를 @inproceedings다시 정의하면 됩니다 . 후자 접근 방식의 예는 다음과 같습니다.booktitleapacase

\DeclareFieldFormat{apacase}{%
  \ifboolexpr{ test {\ifentrytype{inproceedings}}
    and ( test {\ifcurrentfield{booktitle}}
          or test {\ifcurrentfield{booksubtitle}} ) }
    {#1}{\MakeSentenceCase*{#1}}}

origtitle원래 제목( )과 제목 추가 기능을 제외한 모든 문장에서 대소문자 구분을 피하려면 다음을 사용하세요.

\DeclareFieldFormat{apacase}{#1}

대신에. biblatex-apa별표 표시된 변형에만 의존하므로 서문 에 추가하고 파일 의 필드를 활용하여 \MakeSentenceCase*모든 문장 대/소문자 구분을 피할 수 있습니다 .\DeclareCaseLangs{}hyphenationbib

필드를 통해 일부 단어가 대문자로 변환되지 않도록 보호할 수 있습니다 subtitle. 예를 들어:

   title = {Being proactive},
   subtitle = {Where action research meets design research},

답변2

질문 문자를 중괄호 안에 넣으면 특정 대문자 사용을 유지할 수 있습니다. 그래서

@inproceedings{Cole2005,
   author = {Cole, Robert and Purao, Sandeep and Rossi, Matti and Sein, Maung},
   booktitle = {{Proceedings} of the 26th {International} {Conference} on {Information} {Systems}},
   title = {{Being proactive: Where action research meets design research}},
   year = {2005}
}

일을 할 것입니다. 그러나 대부분의 경우 제목과 마찬가지로 전체 줄을 중괄호로 묶는 것이 훨씬 쉽습니다.

답변3

적어도 나에게는 편리한 솔루션을 찾고 있었기 때문에 Mendeley에서 생성한 로컬 턱받이 파일을 구문 분석하는 작은 Python 스크립트를 작성했습니다. 이 스크립트는 책 제목을 두 개의 중괄호 안에 넣습니다.

import re
import fileinput

library = 'path/to/file'

import re

def re_sub_verbose(pattern, replace, string):
  def substitute(match):
    return match.expand(replace)

  result = re.sub(pattern, substitute, string)

  return result

for line in fileinput.input(library, inplace=1):
    print re_sub_verbose("booktitle = \{(.*)\},", "booktitle = {{\\1}},", line)

관련 정보