\cite와 \cite를 구별하는 이유는 무엇입니까?

\cite와 \cite를 구별하는 이유는 무엇입니까?

대신에 \cites둘 이상을 사용해야 하는 특별한 이유가 있나요 ?bibtex-key\cite

다음 MWE를 고려하십시오.

\documentclass{article}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\let\cite\cites
\begin{document}
\cite[12]{westfahl:space}[e.g.][23]{angenendt}

\cites[12]{westfahl:space}[e.g.][23]{angenendt}
\printbibliography
\end{document}

-command 에 \let\cite\cites다른 것을 추가하는 데 아무런 문제가 없으므로 여러 에 대한 in을 잊어도 상관 없습니다 .bibtex-key\cites\citesbibtex-keys

그렇게 하기 위해 저장한다면 의 기본 동작이 될 수는 없을까요 biblatex?

답변1

물론 이것은 설계상의 결정이며 패키지의 원래 관리자에게 더 이상 활동하지 않기 때문에 물어볼 수 없습니다. 내가 알 수 있는 한, 일반 cite 명령과 multicite-명령 사이의 구분은 다음과 같습니다(s) 처음부터 있었어요.

\cite의 명령 동작은 biblatex다른 패키지에 대한 해당 명령의 동작과 거의 일치합니다. 그러나 다중 인용 버전은 다른 패키지가 제공하지 않는 추가 기능을 제공합니다.

multicite 명령의 구문은 표준 cite 명령의 구문과 완전히 역호환됩니다. 따라서 독점적으로 \let\cite\cites사용 \cites하고 자신이 사용하도록 허용하지 않은 경우보다 더 많은 문제가 발생하지 않습니다 \cite. ( \let복수 인용에 대한 모든 명령을 기억하십시오. 불일치를 원하지 않습니다.)

하지만 나는 다중 인용을 표준으로 삼지 말 것을 강력히 권고합니다. biblatex에서 cite 및 multicite 명령의 동작은 너무 잘 알려져 있고 확립되어 있으므로 변경해서는 안 됩니다. 마지막으로, multicite 명령은 인수 구조로 인해 훨씬 ​​더 정교하고 복잡하므로 기본값이 아닌 필요한 경우에만 사용하는 것이 좋습니다.

multi cite 명령에 필요한 설정은 분명히 표준 명령보다 조금 더 복잡합니다. 이것이 바로 우리가 표준 명령을 먼저 정의한 다음 그 위에 multicite 명령을 정의하는 이유입니다.

\DeclareMultiCiteCommand{\cites}{\cite}{\multicitedelim}

분리가 유지된 이유 중 하나는 간단한 cite 명령을 먼저 정의한 다음 복잡한 multicite 구조로 마무리하기 위한 것이라고 가정합니다. 이를 통해 계층화된 접근 방식이 가능합니다.

그러나 둘 사이의 분리를 유지하는 가장 강력한 이유는 다중 인용 명령이 훨씬 더 복잡하고 취약하기 때문입니다. multicite 명령의 특성상 인수의 개수를 미리 알 수 없습니다. 따라서 인수처럼 보이는 항목을 미리 검색해야 합니다. 이것이 매우 강력하더라도 인수 수를 알고 있는 보다 안정적인 명령이 더 바람직한 상황이 있습니다.

예를 들어

\cite[pre][post]{key} ["this"]

작동합니다. 왜냐하면 은 \cite이미 모든 인수를 읽었고 그것이 ["this"]인수가 될 수 없다는 것을 알고 있기 때문입니다. 하지만

\cites[pre][post]{key} ["this"]

\cites["this"]그것이 그 주장 중 하나가 아니라는 것을 모릅니다 . 를 붙이 \relax거나 \스캔을 중지하라고 지시해야 합니다: \cites[pre][post]{key}\ ["this"].

관련 정보