제가 선호하는 인용 스타일은 옵션이 있는 스타일 biblatex
입니다 . 그러나 때로는 텍스트의 특정 참조를 참조해야 하므로 이 경우 와 같은 것으로 전환하고 싶습니다 .numeric-comp
autocite=superscript
authoryear
를 사용하면 \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)가 주제를 논의하는 곳은 어떻습니까?
적절한 참고문헌 참조로 연결됩니다.