Numreringsfält (AUTONUM, PAGE, SEQ och mer)

Numreringsfält (AUTONUM, PAGE, SEQ och mer)

Numreringsfält (AUTONUM, PAGE, SEQ och mer)

Den här guiden visar hur du arbetar med Words automatiska numreringsfält i Aspose.Words FOSS för .NET, och hur de skiljer sig från listbaserad numrering. Arbeta med listor covers List, ListFormat, och ListLevel – objektmodellen bakom Words numrerade och punktlistade liststycken. Word har också en separat familj av numrering fields som beräknar ett nummer på fältets plats i texten, snarare än via stycke-listformatering: juridisk och dispositions-autonumrering, sid- och sektionräknare, listkopplad numrering och namngivna sekvenser. Den modellerar varje som en Field subklass i the Aspose.Words.Fields namnutrymme, plus NumberStyle enum som delas av listnivåer, fotnoter och slutnoter, samt sidnummer för att välja hur ett nummer renderas.


Autonumereringsfält: AUTONUM, AUTONUMLGL, AUTONUMOUT

FieldAutoNum implementerar AUTONUM fält (enkel sekventiell numrering) och exponerar SeparatorCharacter. FieldAutoNumLgl implements AUTONUMLGL (legal/outline-stil numrering), lägger till RemoveTrailingPeriod bredvid sin egen SeparatorCharacter. FieldAutoNumOut implements AUTONUMOUT (outline-numrering) och har inga egna egenskaper utöver bas Field medlemmar beskrivna i Arbeta med fält.


Listkopplad numrering med FieldListNum

FieldListNum implementerar LISTNUM-fältet: ListName namnger den abstrakta nummerdefinitionsen som ska användas, och HasListName rapporterar om fältkoden faktiskt tillhandahåller ett namn. ListLevel åsidosätter standardlistnivån som fältet numrerar på, och StartingNumber anger det värde som fältets numrering börjar från.


Sid- och avsnittsräknare: FieldPage, FieldSection, FieldSectionPages

FieldPage implementerar PAGE fält och FieldSectionPages implements SECTIONPAGES. Båda beror på beräknad sidlayout för att producera ett resultat; precis som NUMPAGES fält som beskrivs i Arbeta med fält, layoutberoende fältvärden beräknas inte i denna utgåva eftersom den inte innehåller en sidlayout/renderingsmotor, så dessa fält utvärderas till en platshållare 0. FieldSection implements SECTION, returnerar dokumentets aktuella avsnittsnummer – det beror inte på paginering och påverkas inte av den begränsningen.


Namngivna sekvenser med FieldSeq

FieldSeq implementerar SEQ-fältet för namngivna, oberoende numrerade sekvenser (såsom figurer eller tabeller): SequenceIdentifier namnger sekvensen, och BookmarkName pekar valfritt fältet på ett element någon annanstans i dokumentet istället för fältets egen plats. InsertNextNumber infogar nästa nummer i sekvensen utan att visa ett värde för den aktuella positionen, och ResetNumber / ResetHeadingLevel återställer sekvensens räknare till ett specifikt nummer, eller startar om den på en specifik rubriknivå.


FieldRevNum

FieldRevNum implementerar REVNUM-fältet och har inga egna egenskaper utöver de grundläggande Field-medlemmarna.


Formatera tal med NumberStyle

NumberStyle är den uppräkning som används över listnivåer, fotnot-/slutnotnummerering och sidnummer för att välja hur ett tal renderas. Vanliga stilar inkluderar Arabic, UppercaseRoman / LowercaseRoman, UppercaseLetter / LowercaseLetter, Ordinal och OrdinalText, tillsammans med en stor uppsättning localespecifika stilar (Kanji, Hangul, Hanja, ThaiLetter, HindiLetter1 och många fler) samt Bullet, LeadingZero, None och Custom för ett anroparlevererat format.


Tips och bästa praxis

  • Använd FieldListNum när ett tal måste referera till en befintlig listdefinition med namn; använd FieldAutoNum/FieldAutoNumLgl/FieldAutoNumOut för numrering som inte är knuten till en specifik List.
  • Kom ihåg att FieldPage och FieldSectionPages är layoutberoende, på samma sätt som NUMPAGES är – lita inte på att deras Result speglar ett faktiskt beräknat sidantal i denna upplaga.
  • Använd FieldSeq.BookmarkName när ett SEQ-fält behöver referera till ett tal som definierats någon annanstans i dokumentet snarare än att öka sin egen räknare på fältets plats.
  • Ställ in FieldSeq.ResetHeadingLevel när en numrerad sekvens (t.ex. figurnummer) ska börja om vid varje nytt kapitel- eller avsnittsrubrik.

Vanliga problem

ProblemOrsakLösning
FieldPage eller FieldSectionPages visar alltid 0Dessa fält beror på beräknad sidlayout, vilket inte är en del av den här utgåvanFörväntat beteende – använd den kommersiella Aspose.Words för .NET om ett beräknat sidantal krävs
FieldListNum använder inte den förväntade listformateringenListName matchar inte en abstrakt numreringsdefinition som finns i dokumentetBekräfta det exakta listnamnet, eller kontrollera HasListName för att se om fältets kod faktiskt tillhandahåller ett
FieldSeq-numren startar inte om där det förväntasResetNumber eller ResetHeadingLevel var inte inställd på fältet som ska starta om sekvensenStäll in rätt återställnings-egenskap på den FieldSeq-instansen

FAQ

Vad är skillnaden mellan listnumrering och dessa nummerfält?

Listnumrering (List, ListFormat, ListLevel, täckt i Arbeta med listor) formaterar hela stycken som listobjekt. Fälten på den här sidan beräknar ett nummer på en specifik punkt i texten – för sekvenser, sid/avsnittsräknare eller juridisk stil auto-numrering – oberoende av stycke-listformatering.

Varför utvärderas ett PAGE-fält alltid till 0?

FieldPage beror på beräknad sidlayout, och den här utgåvan inkluderar inte en sidlayout-/renderingsmotor – samma anledning som NUMPAGES utvärderas till ett platshållarvärde.

Hur skapar jag en namngiven, självständigt numrerad sekvens som “Figure 1”, “Figure 2”?

Använd FieldSeq med en konsekvent SequenceIdentifier (t.ex. "Figure") för varje fältinstans; var och en visar nästa nummer i den sekvensen.

Hur kontrollerar jag vilken siffer- eller bokstavsstil ett tal visas i?

Använd NumberStyle-enumen – värden såsom Arabic, UppercaseRoman, LowercaseLetter och OrdinalText väljer renderingsstilen, tillsammans med Bullet, None och Custom för icke-numeriska eller anropar-tillhandahållna format.


API Reference Sammanfattning

Klass / EnumBeskrivning
FieldAutoNumAUTONUM fält; SeparatorCharacter
FieldAutoNumLglAUTONUMLGL fält; RemoveTrailingPeriod, SeparatorCharacter
FieldAutoNumOutAUTONUMOUT fält
FieldListNumLISTNUM fält; ListName, HasListName, ListLevel, StartingNumber
FieldPagePAGE fält (layout-beroende; utvärderas till 0 i den här utgåvan)
FieldSectionSECTION fält
FieldSectionPagesSECTIONPAGES fält (layout-beroende; utvärderas till 0 i den här utgåvan)
FieldSeqSEQ fält; SequenceIdentifier, BookmarkName, InsertNextNumber, ResetNumber, ResetHeadingLevel
FieldRevNumREVNUM fält
NumberStyleEnum för talrenderingsstilar som används av listnivåer, fotnoter/slutnoter och sidnummer

Se även

 Svenska