인덱스 및 테이블 필드 작업

인덱스 및 테이블 필드 작업

색인 및 테이블 필드 작업

이 가이드는 Word의 “색인 및 테이블” 필드 패밀리를 사용하는 방법을 보여줍니다 — 목차, 색인, 그림 목록, 그리고 권한 표 뒤에 있는 필드들입니다. 이들 각각은 Field 하위 클래스이며 Aspose.Words.Fields 네임스페이스에 속합니다: FieldToc (목차 또는 그림 목록), FieldIndex (색인), FieldXE (색인 항목), FieldToa (권한 표), FieldTA (권한 표 항목 또는 인용), FieldTC (목차 항목), 그리고 FieldRD (여러 파일에 걸친 통합 색인 또는 목차를 만들기 위한 참조 문서).


필드 기본 클래스

이 패밀리의 모든 필드 클래스는 Field를 상속받으며, 이는 Start, Separator, 그리고 End을 노출합니다 (필드를 실행 스트림에서 구분하는 FieldStart, FieldSeparator, FieldEnd 노드), Type ( FieldType 값 — 이 패밀리의 경우 FieldTOC, FieldIndex, FieldTOA, FieldTOCEntry, FieldIndexEntry, FieldTOAEntry, 또는 FieldRefDoc), Result/DisplayResult (필드가 현재 계산된 텍스트), IsLocked와 IsDirty, 그리고 메서드 GetFieldCode(), Update(), Unlink(), Remove(). Update()는 필드 결과를 다시 계산합니다; 목차의 경우 이는 문서의 헤딩이나 FieldTC 마커에서 항목 목록을 재구성하는 것을 의미합니다.

목차 삽입

DocumentBuilder.InsertTableOfContents(switches)은(는) 빌더의 현재 위치에 FieldToc을(를) 삽입하며, Word 필드 스위치 문자열(예: "\o \"1-3\" \h \z \u")을 사용해 포함할 헤딩 레벨과 결과 형식을 제어합니다 — UI를 통해 TOC를 삽입할 때 Word 자체가 쓰는 스위치와 동일합니다. 삽입된 후, FieldToc.UpdatePageNumbers()은 기존 항목의 페이지 번호 부분을 다시 계산합니다. FieldToc는 또한 TOC 구조를 직접 제어하는 속성을 노출합니다: HeadingLevelRange와 EntryLevelRange (포함되는 개요 레벨), EntryIdentifier (다른 FieldTC 마커에서 여러 TOC를 만들기 위해 TOC가 수집해야 할 TC 필드 식별자), InsertHyperlinks, PreserveTabs/PreserveLineBreaks, EntrySeparator/SequenceSeparator, BookmarkName, 그리고 — 목차가 아니라 그림 목록인 경우 — TableOfFiguresLabel와 CaptionlessTableOfFiguresLabel.

맞춤 목차 항목 표시

모든 TOC 항목이 제목 스타일에서 오는 것은 아닙니다. FieldTC은(는) 단락 스타일과 무관하게 특정 위치를 목차 항목으로 표시합니다: FieldTC.Text은(는) 항목 텍스트이고, EntryLevel는(은) 표시되어야 할 개요 수준이며, TypeIdentifier은(는) 여러 개의 TOC를 만들 때 FieldToc.EntryIdentifier에 연결하고, OmitPageNumber는(은) 해당 항목의 페이지 번호를 숨깁니다.

인덱스 구축

FieldIndex은(는) INDEX 필드를 구현하며, 이 필드는 문서의 FieldXE (index entry) 표시자를 알파벳 순서의 인덱스로 컴파일합니다. FieldXE.Text는 항목 텍스트이고, EntryType는 콜론으로 구분된 구문을 사용해 항목을 하위 수준으로 그룹화하며, PageRangeBookmarkName는 인덱스에서 단일 페이지 번호가 아니라 페이지 범위가 되는 북마크를 표시하고, IsBold/IsItalic는 결과 페이지 참조를 서식 지정합니다. FieldIndex 측면에서는, Heading가 문자 헤딩 구분자(A, B, C…)를 삽입하고, LetterRange는 알파벳의 일부 집합으로 인덱스를 제한하며, RunSubentriesOnSameLine은 하위 항목 레이아웃을 제어하고, PageNumberSeparator/PageRangeSeparator/SequenceSeparator/CrossReferenceSeparator는 항목과 페이지 참조 사이의 구두점을 제어합니다. FieldIndexFormat는 Word의 내장 인덱스 시각 스타일(Template, Classic, Fancy, Modern, Bulleted, Formal, Simple)을 별도로 열거합니다.

법령목록

FieldToa와 FieldTA은 FieldIndex/FieldXE에 해당하는 권위입니다: FieldTA는 텍스트 내 인용을 표시하고 (LongCitation와 ShortCitation 텍스트, EntryCategory을 사용해 “Cases” 또는 “Statutes"와 같은 제목 아래에 그룹화하고, IsBold/IsItalic는 서식을 지정), FieldToa은 이러한 인용을 표로 컴파일하며, EntryCategory은 컴파일할 카테고리를 선택하고, UseHeading와 UsePassim은 카테고리 헤드라인 및 여러 번 인용된 출처에 대한 “passim” 규칙을 제어하며, PageRangeSeparator/PageNumberListSeparator/SequenceSeparator/EntrySeparator/RemoveEntryFormatting은 레이아웃을 제어합니다.

다른 문서에서 콘텐츠 참조하기

FieldRD는 RD 필드를 구현하며, 이는 TOC, 인덱스 또는 권한 표 필드에 컴파일 시 다른 파일의 항목을 포함하도록 지시합니다 — FieldRD.FileName은 참조된 문서이고, IsPathRelative는 해당 경로가 현재 문서를 기준으로 상대적으로 해석되는지를 제어합니다.


팁 및 모범 사례

  • Word가 하는 방식(\o "1-3" \h \z \u)대로 TOC 스위치 문자열을 구축하고, 각 FieldToc 속성을 개별적으로 설정하는 대신, 이후에 변경이 필요한 특정 속성만 조정하십시오.
  • 내용이 변경된 후 FieldToc.UpdatePageNumbers()(또는 Field.Update())를 호출하여 TOC, 색인 또는 권한 표가 삽입 당시의 오래된 결과가 아니라 현재 문서를 반영하도록 합니다.
  • 문서에 하나 이상의 TOC가 필요할 때(예: 메인 TOC와 별도의 도표 목록) 서로 다른 항목 집합으로 구축된 경우 FieldTC.TypeIdentifier를 FieldToc.EntryIdentifier와 함께 사용하십시오.
  • 항목 텍스트에서 페이지 범위를 수동으로 서식 지정하는 대신 FieldXE.PageRangeBookmarkName(또는 FieldTA의 동등한 범위 표시)를 설정하여 내용이 이동해도 색인/표가 일관성을 유지하도록 합니다.
  • 이 판의 INDEX/TOC/TOA 결과에서 페이지 번호는 실제 페이지 번호가 아니라 자리표시자 값으로 평가된다는 점을 기억하십시오. 페이지 레이아웃과 페이지 매김은 이 판에 포함되지 않기 때문입니다.

일반적인 문제

문제원인해결
목차에 예상된 헤딩이 포함되지 않습니다목차의 스위치 문자열(또는 HeadingLevelRange)이 해당 개요 레벨을 제외합니다InsertTableOfContents에 전달되는 스위치를 조정하거나 FieldToc.HeadingLevelRange을 설정합니다
인덱스 항목이 예상 위치에 나타나지 않습니다해당 FieldXE 마커가 없거나, 해당 EntryType 하위 수준 구문이 FieldIndex가 기대하는 것과 일치하지 않습니다.FieldXE 마커가 존재하고, 해당 EntryType 값이 일관되게 형식화되어 있는지 확인하십시오.
콘텐츠를 편집한 후 필드 결과가 오래된 것처럼 보입니다.편집 후 필드가 업데이트되지 않았습니다.필드에 Update()를 호출하십시오 (또는 Document에 UpdateFields()를 호출).
다른 문서의 항목이 컴파일 시 포함되지 않습니다.해당 문서를 참조하는 FieldRD가 없거나, IsPathRelative가 경로가 해결되는 방식과 일치하지 않습니다.올바른 FileName 및 IsPathRelative 설정을 가진 FieldRD를 추가하십시오.

FAQ

프로그램적으로 목차를 삽입하려면 어떻게 해야 하나요?

목차가 표시되어야 하는 위치에서 DocumentBuilder.InsertTableOfContents(switches)를 Word 스타일 스위치 문자열(예: "\o \"1-3\" \h \z \u")과 함께 호출합니다.

텍스트를 색인 항목으로 표시하려면 어떻게 해야 하나요?

해당 위치에 FieldXE 필드를 삽입하고(예: DocumentBuilder.InsertField을 통해) 그 Text 속성을 항목 텍스트로 설정합니다; FieldIndex은 문서 내 모든 FieldXE 마커를 모아 색인 결과를 생성합니다.

FieldTC와 제목 기반 목차 항목의 차이점은 무엇인가요?

Word의 기본 목차 동작은 제목 스타일을 사용하는 단락에서 항목을 수집합니다. FieldTC를 사용하면 단락 스타일과 무관하게 임의의 위치를 목차 항목으로 표시할 수 있으며, FieldToc은 일치하는 EntryIdentifier/TypeIdentifier 값을 통해 이를 포함할 수 있습니다.

문서가 변경된 후 목차나 색인을 새로 고치려면 어떻게 해야 하나요?

특정 필드에 Update()를 호출합니다(예: FieldToc.Update(), 또는 페이지 번호만을 위해 FieldToc.UpdatePageNumbers()), 혹은 문서의 모든 필드를 새로 고치려면 Document.UpdateFields()를 사용합니다.

여러 문서에 걸쳐 목차나 색인을 컴파일할 수 있나요?

예 — FieldRD 필드를 삽입하여 FileName을 통해 각 추가 문서를 가리키게 합니다; 컴파일 필드(FieldToc, FieldIndex, 또는 FieldToa)는 업데이트될 때 참조된 문서의 항목을 포함합니다.


API Reference 요약

클래스/메서드설명
Field모든 필드 유형의 기본 클래스이며, Start/Separator/End, Type, Update()를 포함합니다
DocumentBuilder.InsertTableOfContents(switches)Word 스타일 TOC 스위치를 사용하여 FieldToc을 삽입합니다
FieldTocTOC 필드 (목차 또는 그림 목록)를 구현합니다
FieldTC특정 위치에 사용자 정의 목차 항목을 표시합니다
FieldIndexINDEX 필드를 구현하고 FieldXE 마커를 컴파일합니다
FieldXE위치를 인덱스 항목으로 표시합니다
FieldToatable-of-authorities 필드를 구현하고 FieldTA 마커를 컴파일합니다
FieldTA법령 인용표를 위한 인용을 표시합니다
FieldRD목차, 색인 또는 법원 인용표를 작성할 때 다른 문서의 내용을 참조합니다
FieldIndexFormatWord 내장 색인 시각 스타일 열거형

참조

 한국어