제목이 중괄호 안의 단어로 끝나는 전체 인용 조판

제목이 중괄호 안의 단어로 끝나는 전체 인용 조판

나는 Biblatex를 사용하고 있으며 내 문서 텍스트에 전체 인용을 조판해야 하므로 다음을 사용하고 있습니다.모에의 \longfullcite명령. 대부분의 경우 올바르게 작동하지만 필드의 마지막 단어가 중괄호로 묶인(대문자 사용을 강제하기 위해) Biber/BibTeX 항목에 문제가 있습니다. 이러한 경우 \longfullcite다음 단어를 올바르게 대문자로 사용하지 못할 수 있습니다. 다음 예를 들어보세요.

\documentclass{article}

\usepackage{biblatex}
\makeatletter
\newcommand{\tempmaxup}[1]{\def\blx@maxcitenames{\blx@maxbibnames}#1}
\makeatother
\DeclareCiteCommand{\longfullcite}[\tempmaxup]
  {\usebibmacro{prenote}}
  {\usedriver
     {\DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\usepackage{filecontents}

\begin{filecontents}{test.bib}
@inproceedings{blow2015,
  author       = {Blow, Joe},
  title        = {{GNU} loves me},
  year         = 2015,
  booktitle    = {Proceedings of Some Conference},
}

@inproceedings{blow2016,
  author       = {Blow, Joe},
  title        = {I love {GNU}},
  year         = 2016,
  booktitle    = {Proceedings of Some Conference},
}
\end{filecontents}

\addbibresource{test.bib}

\begin{document}
\nocite{*}
\noindent
\longfullcite{blow2015}\\
\longfullcite{blow2016}
\printbibliography
\end{document}

출력은 다음과 같습니다.

위 문서의 출력에서 ​​첫 번째 \longfullcite는 "In"을 올바르게 대문자로 표시하지만 두 번째는 그렇지 않음을 보여줍니다.

두 명령에서 생성된 단어 "In"의 대문자 사용이 일관되지 않음에 유의하십시오 \longfullcite. 대조적으로, 에 의해 발행된 인용은 \printbibliography두 항목 모두에 대해 "In"을 올바르게 대문자로 표시합니다.

\longfullcite이러한 불일치의 원인은 무엇이며 이 문제를 해결하려면 어떻게 해야 합니까(파일 을 변경하는 것보다 정의를 변경하는 것이 바람직함 .bib)?

답변1

이는 알려진 문제입니다(https://github.com/plk/biblatex/issues/295) 그리고 텍스트 내 모든 인용에 영향을 주지만 아마도 \fullcite-like를 통해서만 실제로 볼 수 있습니다. 불행하게도 적절한 해결책이 나올 가능성은 매우 희박합니다. biblatex의 구두점 추적기는 기존 공간 요소를 크게 수정하지만 인용에서 그렇게 하면 인용 외부의 텍스트에 원치 않는 연쇄 효과가 발생할 수 있습니다.

\@제목 끝에 대문자를 추가해야 합니다 . 하지만 원하는 경우 해당 형식을 자동으로 수행하도록 할 수 있습니다.

\DeclareFieldFormat{title}{\mkbibemph{#1\@}}
\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {title}{\mkbibquote{#1\isdot\@}}
\DeclareFieldFormat
  [suppbook,suppcollection,suppperiodical]
  {title}{#1\@}

답변2

더러운 해킹:

너비 없이 보이지 않는 것을 삽입합니다. 이것이 문제를 일으킬 수 있다고 확신합니다. 어떤 문제가 있는지 아직 모르겠습니다 :)

\documentclass{article}

\usepackage{biblatex}
\makeatletter
\newcommand{\tempmaxup}[1]{\def\blx@maxcitenames{\blx@maxbibnames}#1}
\makeatother
\DeclareCiteCommand{\longfullcite}[\tempmaxup]
  {\usebibmacro{prenote}}
  {\usedriver
     {\DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\usepackage{filecontents}

\begin{filecontents}{test.bib}
@inproceedings{blow2015,
  author       = {Blow, Joe},
  title        = {{GNU} loves me},
  year         = 2015,
  booktitle    = {Proceedings of Some Conference},
}

@inproceedings{blow2016,
  author       = {Blow, Joe},
  title        = {I love {GNU}\mbox{}},
  year         = 2016,
  booktitle    = {Proceedings of Some Conference},
}
\end{filecontents}

\addbibresource{test.bib}

\begin{document}
\nocite{*}
\noindent
\longfullcite{blow2015}\\
\longfullcite{blow2016}
\printbibliography
\end{document}

관련 정보