Mac의 Zotero에서 CSL 스타일에 조건부 분기를 추가해 편집된 다권본을 별도로 서식 지정하세요. 이 안내에서는 저자가 없고 편집자가 있는 개별 권을 대상으로 하며, 합성 메타데이터와 완전한 데모 스타일을 사용합니다.

특수 서식을 적용할 책의 조건 정의하기

CSL은 저자가 있는 책, 편집 선집, 완전한 다권 저작물, 개별 권에 book를 사용합니다. 문서화된 유형 목록에는 편집된 다권본 책을 위한 별도 유형이 없습니다. 지원되는 방법은 스타일 안에서 책의 메타데이터를 검사하는 것입니다. CSL 1.0.2 사양

이 안내의 출력 조건은 의도적으로 구체적입니다. editor가 있고 volume도 있으며 author는 없는 book에는 제목을 먼저 표시하는 참고문헌 항목을 적용합니다. 그 외의 모든 레코드에는 데모의 일반적인 제작자 우선 항목을 적용합니다. 이는 예시를 위한 서식 선택이며, 정해진 인용 표준이 아닙니다.

특수 항목은 다음 순서로 표시됩니다. 이탤릭체 제목, 편집자 이름과 역할 표시, 권 번호, 출판지, 출판사, 연도입니다. 아래 합성 레코드에서 의도한 출력은 다음과 같습니다.

Collected Shape Exercises. Nora Vale, ed. vol. 2. Sampletown: Example Workshop Press, 2024.

권과 전집의 구분은 중요합니다. CSL의 volume는 특정 권을 식별하고, number-of-volumes는 전체 권수를 기록합니다. 편집자 수나 제목에 포함된 숫자로는 이 구분을 확정할 수 없습니다. CSL 변수 정의

명확한 메타데이터로 테스트 레코드 입력하기

다음 합성 값으로 Zotero Book 레코드를 만드세요. Nora Vale을 역할이 Editor인 제작자로 입력하고 저자는 비워 둡니다. Zotero는 제작자 역할을 별도로 문서화하며 Volume과 # of Volumes를 구분합니다. Zotero 항목 유형 및 필드

Zotero 필드 합성 값
Item Type Book
Title Collected Shape Exercises
제작자 역할 Editor
제작자 이름 Nora
제작자 성 Vale
Volume 2
# of Volumes 3
Place Sampletown
Publisher Example Workshop Press
Date 2024

Volume에는 2을 입력하고 vol.은 추가하지 마세요. 스타일에서 표기를 제공합니다. 여기서 2은 인용되는 권을 식별하고 3는 완전한 전집을 설명합니다. Zotero는 숫자로 된 권 값을 숫자 형식으로 입력할 것을 권장합니다. Zotero의 도서 및 정기간행물 필드

3권 전집 전체를 나타내는 별도 레코드에서는 Volume을 비워 두고 # of Volumes에 3를 입력합니다. 이 글의 조건에 따르면 해당 레코드에는 일반 경로가 적용됩니다. 이렇게 하면 참고문헌에서 전집을 특정 권으로 취급하지 않습니다.

Mac에서 완전한 데모 스타일 만들기

TextEdit을 열고 코드를 붙여넣기 전에 Format → Make Plain Text를 선택하세요. 파일을 edited-multivolume-demo.csl으로 저장하고, 파일 이름이 .csl로 끝나는지 확인하세요. Zotero의 편집 안내에는 Mac에서 TextEdit으로 일반 텍스트를 편집하는 방법이 구체적으로 나와 있습니다. CSL 스타일 편집 — 단계별 안내

다음은 완전한 데모 스타일입니다. 참고문헌에서는 위의 조건을 구현하고, 본문 내 인용에는 제목만 표시합니다. 일반 항목은 의도적으로 간략하게 구성했으므로, 이 파일로 규칙을 이해하고 테스트한 다음 혼합 라이브러리에 기존 스타일을 적용하세요.

<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" version="1.0"
       class="in-text" default-locale="en-US">
  <info>
    <title>Edited Multivolume Books Demo</title>
    <id>urn:uuid:6b4f5d8c-7b20-4fea-92eb-6207d10d94e3</id>
    <updated>2026-10-29T12:13:38+00:00</updated>
  </info>
  <macro name="editors">
    <names variable="editor">
      <name and="text" delimiter=", "/>
      <label form="short" prefix=", "/>
    </names>
  </macro>
  <macro name="creators">
    <choose>
      <if variable="author">
        <names variable="author">
          <name and="text" delimiter=", "/>
        </names>
      </if>
      <else>
        <text macro="editors"/>
      </else>
    </choose>
  </macro>
  <macro name="extent">
    <choose>
      <if variable="volume">
        <group delimiter=" ">
          <label variable="volume" form="short"/>
          <text variable="volume"/>
        </group>
      </if>
      <else-if variable="number-of-volumes">
        <group delimiter=" ">
          <text variable="number-of-volumes"/>
          <label variable="number-of-volumes" form="short"/>
        </group>
      </else-if>
    </choose>
  </macro>
  <macro name="imprint">
    <group delimiter=", ">
      <group delimiter=": ">
        <text variable="publisher-place"/>
        <text variable="publisher"/>
      </group>
      <date variable="issued">
        <date-part name="year"/>
      </date>
    </group>
  </macro>
  <macro name="ordinary-entry">
    <group delimiter=". ">
      <text macro="creators"/>
      <text variable="title" font-style="italic"/>
      <text macro="extent"/>
      <text macro="imprint"/>
    </group>
  </macro>
  <macro name="entry">
    <choose>
      <if type="book" variable="editor volume" match="all">
        <choose>
          <if variable="author" match="none">
            <group delimiter=". ">
              <text variable="title" font-style="italic"/>
              <text macro="editors"/>
              <text macro="extent"/>
              <text macro="imprint"/>
            </group>
          </if>
          <else>
            <text macro="ordinary-entry"/>
          </else>
        </choose>
      </if>
      <else>
        <text macro="ordinary-entry"/>
      </else>
    </choose>
  </macro>
  <citation>
    <layout prefix="(" suffix=")" delimiter="; ">
      <text variable="title" font-style="italic"/>
    </layout>
  </citation>
  <bibliography>
    <layout suffix=".">
      <text macro="entry"/>
    </layout>
  </bibliography>
</style>

updated 요소는 스타일 파일에 필요한 메타데이터입니다. 여기서는 데모를 만든 시각을 기록합니다. 이는 글의 게시 또는 검토 시각이 아닙니다. CSL 1.0 호환 스타일 규정에 따라 루트 요소는 version="1.0"을 사용합니다. CSL 스타일 구조

조건을 바꾸기 전에 이해하기

바깥 조건은 match="all"을 사용하므로 책 유형이면서 두 변수가 모두 입력되어야 합니다. 안쪽 조건은 match="none"를 통해 저자가 없는 경우를 요구합니다. 조건을 중첩하면 저자 부재 검사가 다른 조건에 적용되지 않으면서 조합을 표현할 수 있습니다. CSL 조건부 렌더링

이 구현을 실제로 점검할 때는 다음 결정표를 참고하세요.

레코드 제목 우선 특수 항목 적용 여부 이유
책, 편집자 있음, 2권, 저자 없음 예 모든 요구 조건 충족
책, 편집자 있음, 1권, 저자 없음 예 1권도 조건을 충족함
책, 권 번호 없음, 전체 권수 3권 아니요 이 규칙에서는 전집을 나타냄
책, 저자와 편집자 있음, 2권 아니요 저자가 있음
책, 2권, 편집자 없음 아니요 편집자가 없음
편집자와 권 번호가 있는 책 섹션 아니요 항목 유형이 book이 아님

이 조건은 메타데이터가 입력되어 있는지만 검사합니다. 가져온 레코드가 의도한 대상을 올바르게 설명하는지 판단할 수는 없습니다. 여러 레코드에 규칙을 확대 적용하기 전에 제목과 권 필드를 검토하세요.

CSL 1.0.2에는 일반적인 숫자 초과 조건도 없습니다. number-of-volumes이 입력되어 있는지 검사하면 1과 3가 모두 일치하며, is-numeric로도 두 값을 비교할 수 없습니다. 전집까지 규칙을 확장하려면, 입력 여부만으로 여러 권이라고 판단하지 말고 먼저 일관된 메타데이터 규칙을 마련하세요. CSL 조건 정의

데모의 extent 매크로는 두 필드가 모두 있을 때 해당 권을 우선합니다. 따라서 예시에는 전집의 전체 권수도 함께 표시하지 않고 vol. 2가 출력됩니다. 일반 제작자 매크로도 편집자보다 저자를 우선합니다. 이는 이 예시를 단순화하기 위한 명시적인 선택입니다. 자체 스타일에 적용할 때는 추가 제작자 정보나 권수 표기 요구사항을 유지하세요.

결과 미리 보기와 경계 사례 테스트

Zotero에서 합성 레코드를 선택하세요. Zotero 설정에서 Cite를 연 다음 Style Editor를 선택합니다. 편집기에 전체 스타일을 붙여넣고 Refresh를 클릭해 선택한 라이브러리 항목을 표시하세요. 편집기에는 인용과 참고문헌 항목이 따로 표시되며, 수정할 때마다 미리보기가 갱신됩니다. Zotero 스타일 편집기

참고문헌 항목이 의도한 제목 우선 순서인지 확인하세요. 이 데모에서는 참고문헌 항목 매크로에만 특수 규칙을 넣었으므로, 본문 내 인용에는 제목이 괄호 안에 이탤릭체로 표시됩니다.

다음으로 결정표에 해당하는 합성 변형 레코드를 만드세요. 한 레코드에는 저자를 추가하고, 다른 레코드에서는 권 번호를 지운 다음 전집 레코드도 만듭니다. 미리보기에서 쉽게 구분할 수 있도록 각 레코드에 서로 다른 중립적인 제목을 지정하세요. 조건에 맞는 레코드만 편집자보다 제목이 앞에 오는지 확인합니다.

준비 과정에서 예시의 XML을 구문 분석하고 매크로 참조를 확인했습니다. Mac의 Zotero 앱에서 렌더링해 보지는 않았습니다. 설치하거나 적용하기 전에 프로젝트 개발 안내에 링크된 검사기를 사용해 전체 파일이 CSL 스키마에 맞는지 확인하세요. XML 구문 검사만으로는 CSL 유효성이 입증되지 않습니다. CSL 스타일 개발 — 유효성 검사

편집기를 닫거나 다른 설치된 스타일을 선택하기 전에 코드를 저장하세요. Zotero 문서에 따르면 이러한 작업을 하면 저장하지 않은 편집 내용이 사라집니다. Zotero 스타일 편집기

스타일 설치 또는 기존 스타일 적용

저장한 파일을 설치하려면 Zotero의 Cite 설정을 열고 스타일 관리자에서 + 버튼을 사용해 edited-multivolume-demo.csl을 선택하세요. 같은 설정의 Style Preview에서 설치된 스타일로 선택한 레코드를 확인할 수 있습니다. Zotero 인용 설정

기존 인용 형식에 적용하려면 먼저 현재 독립 스타일을 확인하세요. 종속 스타일은 상위 스타일을 가리킬 뿐 자체 서식 지침을 포함하지 않습니다. 입문서 — CSL 소개

기존 스타일의 일반 렌더링은 기본 경로로 유지하고, 더 포괄적인 책 규칙보다 앞에 특수 조건을 넣으세요. 특수 출력을 해당 스타일의 이름, 제목, 출판 매크로에 맞게 조정합니다. 변경이 필요한 경우가 아니면 기존 정렬, 다른 항목 유형, 인용 동작을 유지하세요. 그러면 나머지 형식을 바꾸지 않고 새 분기로 한 가지 작업을 처리할 수 있습니다.

수정한 스타일을 설치하기 전에 제목과 ID를 고유한 값으로 바꾸세요. 원래 식별 정보를 유지하면 업데이트로 수정 버전이 덮어써질 수 있다고 Zotero는 경고합니다. Zotero 스타일 편집 안내

특수 항목이 나타나지 않으면 문장 부호나 매크로를 바꾸기 전에 결정표를 기준으로 레코드를 확인하세요. 제작자 역할, 권 값, 저자 부재, 항목 유형을 점검합니다. 일치하는 레코드와 기본 경로를 따르는 레코드가 의도한 대로 표시되면, 적용 범위가 명확한 재사용 가능한 렌더링 규칙을 갖게 됩니다. 편집된 개별 권에는 별도의 참고문헌 형식을 적용하고 다른 레코드는 선택한 일반 경로를 따릅니다.

출처