Biblatex Numeric-comp 스타일 사용시 직접 인용 참조

Biblatex Numeric-comp 스타일 사용시 직접 인용 참조

제가 선호하는 인용 스타일은 옵션이 있는 스타일 biblatex입니다 . 그러나 때로는 텍스트의 특정 참조를 참조해야 하므로 이 경우 와 같은 것으로 전환하고 싶습니다 .numeric-compautocite=superscriptauthoryear

를 사용하면 \textcite위 첨자 옵션이 무효화됩니다. 두 가지 인용 스타일을 혼합할 수 있는 새로운 함수를 작성하는 것이 가능합니까?

MWE:

\documentclass{report}

\begin{filecontents}{example.bib}
@article {Example_article,
 AUTHOR = {Author, A. B.},
 TITLE = {A example paper},
 JOURNAL = {Example journal},
 VOLUME = {1},
 YEAR = {2018},
 NUMBER = {1},
 PAGES = {1-100}}
\end{filecontents}

\usepackage[style=numeric-comp,
      autocite=superscript,
      backend=biber
]{biblatex}

\addbibresource{example.bib}

\begin{document}

I normally cite like this \autocite{Example_article} which is great but sometimes I want to do this \textcite{Example_article} but it doesn't seem to to work.

\end{document}

이는 다음을 생성합니다.

나는 일반적으로 이 1을 인용하는 것이 훌륭하지만 때로는 이 저자 [1]를 인용하고 싶지만 작동하지 않는 것 같습니다.

내가 원하는 것은 다음과 같습니다:

나는 일반적으로 이 1 과 같이 훌륭하게 인용하지만 때로는 이 저자(2018)를 인용하고 싶지만 작동하지 않는 것 같습니다.

바람직하게는 단 한 명의 저자 등. (연도)는 저자가 여러 명인 경우 나열됩니다.

답변1

일반적으로 \DeclareCiteCommand여러 \cite...명령을 \newcommand. 특정 사용 사례에서는 이점을 얻지 못할 수도 있지만 나쁜 습관을 피하는 것이 좋습니다. \newcommand특히 사전 및 사후 메모가 있거나 여러 출처를 동시에 인용하려는 경우 접근 방식이 잘못될 수 있습니다 .

\documentclass{report}

\usepackage[style=numeric-comp,
      minbibnames=3,
      maxbibnames=5, 
      maxcitenames=2, 
      mincitenames=1,
      autocite=superscript,
      backend=biber,
      labeldateparts,
]{biblatex}

\usepackage{hyperref}

\newbibmacro{aycite}{%
  \printtext[bibhyperref]{%
    \printnames{labelname}%
    \setunit{\addspace}%
    \printtext[parens]{%
      \ifnumequal{\value{citecount}}{1}
        {\usebibmacro{prenote}}
        {}%
      \printlabeldate
      \setunit{\addsemicolon\space}%
      \printtext{ref\adddot}%
      \setunit{\addspace}%
      \printfield{labelprefix}%
      \printfield{labelnumber}%
      \ifnumequal{\value{citecount}}{\value{citetotal}}
        {\usebibmacro{postnote}}
        {}}}}

\DeclareCiteCommand{\aycite}
  {}
  {\usebibmacro{citeindex}%
   \usebibmacro{aycite}}
  {\multicitedelim}
  {}

\addbibresource{biblatex-examples.bib}

\begin{document}
How about this where \aycite{sigfridsson} discus a topic.

How about this where \aycite[cf.][1]{sigfridsson} discuss a topic.

How about this where \aycite{sigfridsson,worman} discuss a topic.

\printbibliography
\end{document}

여기에 이미지 설명을 입력하세요

답변2

만족스럽다고 생각되는 답변을 얻었습니다. 그 과정에서 다음 두 가지 질문이 도움이 되었습니다.질문 1그리고질문 2

hyperref나는 또한 참조 라벨에 대한 @cfr의 의견에 동의한다고 말해야 하지만, 나는 일반적으로 패키지를 사용하여 인용과 참조가 링크되기 때문에 이것이 내 마음의 최우선 사항이 아니었습니다 . 나는 일반적으로 인용을 참조 테이블의 키로 사용하는 대신 인용을 클릭하기만 합니다. 따라서 나는 라벨을 내 솔루션에 통합했습니다.

이것이 내가 가진 것입니다:

\documentclass{report}

\begin{filecontents}{example.bib}
@article {Example_article,
 AUTHOR = {Author, A. B.}, 
 TITLE = {A example paper},
 JOURNAL = {Example journal},
 VOLUME = {1},
 YEAR = {2018},
 NUMBER = {1},
 PAGES = {1-100}}
\end{filecontents}

\usepackage[style=numeric-comp,
      minbibnames=3,
      maxbibnames=5, 
      maxcitenames=2, 
      mincitenames=1,
      autocite=superscript,
      backend=biber
]{biblatex}

\usepackage{hyperref}

\DeclareCiteCommand{\tabcite}
  {\usebibmacro{cite:init}%
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite:comp}}
  {}
  {\usebibmacro{cite:dump}%
   \usebibmacro{postnote}}

\addbibresource{example.bib}

\newcommand{\citelink}[2]{\hyperlink{cite.\therefsection @#1}{\citeauthor{#1} (\citeyear{#1}; ref. \tabcite{#1})}}

\begin{document}


How about this where \citelink{Example_article}{} discusses a topic.


\printbibliography

\end{document}

이는 다음을 생성합니다.

Author(2018; 참조 1)가 주제를 논의하는 곳은 어떻습니까?

적절한 참고문헌 참조로 연결됩니다.

관련 정보