void RemoveParenthesesFromPrefixSuffix(PageRangeFieldElement pageRangeFieldElement) { if (pageRangeFieldElement == null) { return; } LiteralElement[] prefixes = new LiteralElement[] { pageRangeFieldElement.PageOnePrefix, pageRangeFieldElement.PageTwoPrefix, pageRangeFieldElement.PageMultiPrefix, pageRangeFieldElement.ColumnOnePrefix, pageRangeFieldElement.ColumnTwoPrefix, pageRangeFieldElement.ColumnMultiPrefix, pageRangeFieldElement.ParagraphOnePrefix, pageRangeFieldElement.ParagraphTwoPrefix, pageRangeFieldElement.ParagraphMultiPrefix, pageRangeFieldElement.MarginOnePrefix, pageRangeFieldElement.MarginTwoPrefix, pageRangeFieldElement.MarginMultiPrefix, pageRangeFieldElement.OtherOnePrefix, pageRangeFieldElement.OtherTwoPrefix, pageRangeFieldElement.OtherMultiPrefix }; LiteralElement[] suffixes = new LiteralElement[] { pageRangeFieldElement.PageOneSuffix, pageRangeFieldElement.PageTwoSuffix, pageRangeFieldElement.PageMultiSuffix, pageRangeFieldElement.ColumnOneSuffix, pageRangeFieldElement.ColumnTwoSuffix, pageRangeFieldElement.ColumnMultiSuffix, pageRangeFieldElement.ParagraphOneSuffix, pageRangeFieldElement.ParagraphTwoSuffix, pageRangeFieldElement.ParagraphMultiSuffix, pageRangeFieldElement.MarginOneSuffix, pageRangeFieldElement.MarginTwoSuffix, pageRangeFieldElement.MarginMultiSuffix, pageRangeFieldElement.OtherOneSuffix, pageRangeFieldElement.OtherTwoSuffix, pageRangeFieldElement.OtherMultiSuffix }; foreach (LiteralElement element in prefixes) { TrimStartParentheses(element); } foreach (LiteralElement element in suffixes) { TrimEndParentheses(element); } }
public IEnumerable <ITextUnit> GetTextUnits(ComponentPart componentPart, Template template, Citation citation, out bool handled) { handled = false; if (citation == null) { return(null); } if (citation.Reference == null) { return(null); } if (componentPart == null) { return(null); } if (componentPart.Elements == null || componentPart.Elements.Count == 0) { return(null); } PageRangeFieldElement pageRangeFieldElement = componentPart.Elements.OfType <PageRangeFieldElement>().FirstOrDefault(); if (pageRangeFieldElement == null) { return(null); } bool found = false; TextUnitCollection textUnits = pageRangeFieldElement.GetTextUnits(citation, template); if (textUnits == null) { return(null); } foreach (ITextUnit textUnit in textUnits) { if (textUnit.Text.Contains("-")) { found = true; textUnit.Text = textUnit.Text.Replace("-", "–"); } } if (found) { componentPart.Elements.ReplaceItem(pageRangeFieldElement, textUnits.TextUnitsToLiteralElements(componentPart)); } return(null); }
public IEnumerable <ITextUnit> GetTextUnits(ComponentPart componentPart, Template template, Citation citation, out bool handled) { //return handled = true if this macro generates the output (as an IEnumerable<ITextUnit>); the standard output will be suppressed //return handled = false if you want Citavi to produce the standard output; handled = false; if (componentPart == null) { return(null); } if (componentPart.Elements == null) { return(null); } if (citation == null) { return(null); } if (citation.Reference == null) { return(null); } PageRangeFieldElement pageRangeFieldElement = componentPart.Elements.OfType <PageRangeFieldElement>().FirstOrDefault(); if (pageRangeFieldElement == null) { return(null); } PageRange pageRangeResolved = PageRange.Empty; if (pageRangeFieldElement is QuotationPageRangeFieldElement) { PlaceholderCitation placeholderCitation = citation as PlaceholderCitation; if (placeholderCitation == null) { return(null); } if (placeholderCitation.Entry == null) { return(null); } pageRangeResolved = placeholderCitation.Entry.PageRange; } else { pageRangeResolved = citation.Reference.PageRange; } if (pageRangeResolved == null) { return(null); } if (pageRangeResolved == PageRange.Empty) { return(null); } if (pageRangeResolved.NumeralSystem != NumeralSystem.Omit) { return(null); } LiteralElement prefix = null; LiteralElement suffix = null; switch (pageRangeResolved.NumberingType) { case NumberingType.Page: prefix = pageRangeFieldElement.PageMultiPrefix; suffix = pageRangeFieldElement.PageMultiSuffix; break; case NumberingType.Column: prefix = pageRangeFieldElement.ColumnMultiPrefix; suffix = pageRangeFieldElement.ColumnMultiSuffix; break; case NumberingType.Paragraph: prefix = pageRangeFieldElement.ParagraphMultiPrefix; suffix = pageRangeFieldElement.ParagraphMultiSuffix; break; case NumberingType.Margin: prefix = pageRangeFieldElement.MarginMultiPrefix; suffix = pageRangeFieldElement.MarginMultiSuffix; break; case NumberingType.Other: prefix = pageRangeFieldElement.OtherMultiPrefix; suffix = pageRangeFieldElement.OtherMultiSuffix; break; } bool hasPrefix = prefix != null && !string.IsNullOrEmpty(prefix.Text); bool hasSuffix = suffix != null && !string.IsNullOrEmpty(suffix.Text); TextUnitCollection pageRangeTextUnits = pageRangeFieldElement.GetTextUnits(citation, template); if (pageRangeTextUnits == null || !pageRangeTextUnits.Any()) { return(null); } foreach (ITextUnit unit in pageRangeTextUnits) { unit.Text = unit.Text.Replace(System.StringUtility.Divis, System.StringUtility.EnDash); } TextUnitCollection output = new TextUnitCollection(); if (hasPrefix && pageRangeTextUnits.First().Text != prefix.Text) { TextUnitCollection prefixTextUnits = prefix.GetTextUnits(citation, template); if (prefixTextUnits != null && prefixTextUnits.Any()) { output.AddRange(prefixTextUnits); } } output.AddRange(pageRangeTextUnits); if (hasSuffix && pageRangeTextUnits.Last().Text != suffix.Text) { TextUnitCollection suffixTextUnits = suffix.GetTextUnits(citation, template); if (suffixTextUnits != null && suffixTextUnits.Any()) { output.AddRange(suffixTextUnits); } } componentPart.Elements.ReplaceItem(pageRangeFieldElement, TextUnitCollectionUtility.TextUnitsToLiteralElements(output, componentPart)); handled = false; //all literal elements should always be output: foreach (LiteralElement literalElement in componentPart.Elements.OfType <LiteralElement>()) { literalElement.ApplyCondition = ElementApplyCondition.Always; } return(null); }
public IEnumerable <ITextUnit> GetTextUnits(ComponentPart componentPart, Template template, Citation citation, out bool handled) { handled = false; if (citation == null) { return(null); } if (componentPart == null) { return(null); } if (componentPart.Elements == null) { return(null); } if (!componentPart.Elements.Any()) { return(null); } Reference reference = citation.Reference; if (reference == null) { return(null); } Reference parentReference = reference.ParentReference; string language = string.Empty; if (componentPart.Scope == ComponentPartScope.Reference) { language = reference.Language.ToUpperInvariant(); } else if (componentPart.Scope == ComponentPartScope.ParentReference) { if (parentReference == null) { return(null); } language = parentReference.Language.ToUpperInvariant(); } if (string.IsNullOrEmpty(language)) { return(null); } PageRangeFieldElement pageRangeFieldElement = componentPart.Elements.OfType <PageRangeFieldElement>().FirstOrDefault(); if (pageRangeFieldElement == null) { return(null); } PageRange pageRange = null; if (pageRangeFieldElement is QuotationPageRangeFieldElement) { PlaceholderCitation placeholderCitation = citation as PlaceholderCitation; if (placeholderCitation == null) { return(null); } if (placeholderCitation.Entry == null) { return(null); } pageRange = placeholderCitation.Entry.PageRange; } else if (pageRangeFieldElement is PageRangeFieldElement) { pageRange = citation.Reference.PageRange; } else { //what should that be ? return(null); } if (pageRange == null) { return(null); } #region German if (language.Contains("DE")) { #region Page pageRangeFieldElement.PageOneHasSpecialFormat = true; pageRangeFieldElement.PageOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageOnePrefix.Text = "S.\u00A0"; pageRangeFieldElement.PageOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageOneSuffix.Text = ""; pageRangeFieldElement.PageOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageTwoHasSpecialFormat = true; pageRangeFieldElement.PageTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageTwoPrefix.Text = "S.\u00A0"; pageRangeFieldElement.PageTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageTwoSuffix.Text = "\u00A0f."; pageRangeFieldElement.PageTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageMultiPrefix.Text = "S.\u00A0"; pageRangeFieldElement.PageMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageMultiSuffix.Text = "\u00A0ff."; pageRangeFieldElement.PageMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Column pageRangeFieldElement.ColumnOneHasSpecialFormat = true; pageRangeFieldElement.ColumnOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnOnePrefix.Text = "Sp.\u00A0"; pageRangeFieldElement.ColumnOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnOneSuffix.Text = ""; pageRangeFieldElement.ColumnOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnTwoHasSpecialFormat = true; pageRangeFieldElement.ColumnTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnTwoPrefix.Text = "Sp.\u00A0"; pageRangeFieldElement.ColumnTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnTwoSuffix.Text = "\u00A0f."; pageRangeFieldElement.ColumnTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnMultiPrefix.Text = "Sp.\u00A0"; pageRangeFieldElement.ColumnMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnMultiSuffix.Text = "\u00A0ff."; pageRangeFieldElement.ColumnMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Paragraph pageRangeFieldElement.ParagraphOneHasSpecialFormat = true; pageRangeFieldElement.ParagraphOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ParagraphOnePrefix.Text = "§\u00A0"; pageRangeFieldElement.ParagraphOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphOneSuffix.Text = ""; pageRangeFieldElement.ParagraphOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphTwoHasSpecialFormat = false; pageRangeFieldElement.ParagraphTwoNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.ParagraphTwoPrefix.Text = "§§\u00A0"; pageRangeFieldElement.ParagraphTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphTwoSuffix.Text = ""; pageRangeFieldElement.ParagraphTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphMultiNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.ParagraphMultiPrefix.Text = "§§\u00A0"; pageRangeFieldElement.ParagraphMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphMultiSuffix.Text = ""; pageRangeFieldElement.ParagraphMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Margin pageRangeFieldElement.MarginOneHasSpecialFormat = true; pageRangeFieldElement.MarginOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginOnePrefix.Text = "Rn.\u00A0"; pageRangeFieldElement.MarginOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginOneSuffix.Text = ""; pageRangeFieldElement.MarginOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoHasSpecialFormat = true; pageRangeFieldElement.MarginTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginTwoPrefix.Text = "Rn.\u00A0"; pageRangeFieldElement.MarginTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoSuffix.Text = "\u00A0f."; pageRangeFieldElement.MarginTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginMultiPrefix.Text = "Rn.\u00A0"; pageRangeFieldElement.MarginMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginMultiSuffix.Text = "\u00A0ff."; pageRangeFieldElement.MarginMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Other pageRangeFieldElement.OtherOneHasSpecialFormat = false; pageRangeFieldElement.OtherOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.OtherOnePrefix.Text = ""; pageRangeFieldElement.OtherOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherOneSuffix.Text = ""; pageRangeFieldElement.OtherOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherTwoHasSpecialFormat = false; pageRangeFieldElement.OtherTwoNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.OtherTwoPrefix.Text = ""; pageRangeFieldElement.OtherTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherTwoSuffix.Text = ""; pageRangeFieldElement.OtherTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherMultiNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.OtherMultiPrefix.Text = ""; pageRangeFieldElement.OtherMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherMultiSuffix.Text = ""; pageRangeFieldElement.OtherMultiSuffix.FontStyle = FontStyle.Neutral; #endregion return(null); } #endregion #region English if (language.Contains("EN")) { #region Page pageRangeFieldElement.PageOneHasSpecialFormat = true; pageRangeFieldElement.PageOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageOnePrefix.Text = "p.\u00A0"; pageRangeFieldElement.PageOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageOneSuffix.Text = ""; pageRangeFieldElement.PageOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageTwoHasSpecialFormat = true; pageRangeFieldElement.PageTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageTwoPrefix.Text = "pp.\u00A0"; pageRangeFieldElement.PageTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageTwoSuffix.Text = "\u00A0f."; pageRangeFieldElement.PageTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageMultiPrefix.Text = "pp.\u00A0"; pageRangeFieldElement.PageMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageMultiSuffix.Text = "\u00A0ff."; pageRangeFieldElement.PageMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Column pageRangeFieldElement.ColumnOneHasSpecialFormat = true; pageRangeFieldElement.ColumnOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnOnePrefix.Text = "col.\u00A0"; pageRangeFieldElement.ColumnOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnOneSuffix.Text = ""; pageRangeFieldElement.ColumnOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnTwoHasSpecialFormat = true; pageRangeFieldElement.ColumnTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnTwoPrefix.Text = "col.\u00A0"; pageRangeFieldElement.ColumnTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnTwoSuffix.Text = "\u00A0f."; pageRangeFieldElement.ColumnTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnMultiPrefix.Text = "col.\u00A0"; pageRangeFieldElement.ColumnMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnMultiSuffix.Text = "\u00A0ff."; pageRangeFieldElement.ColumnMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Paragraph pageRangeFieldElement.ParagraphOneHasSpecialFormat = true; pageRangeFieldElement.ParagraphOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ParagraphOnePrefix.Text = "§\u00A0"; pageRangeFieldElement.ParagraphOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphOneSuffix.Text = ""; pageRangeFieldElement.ParagraphOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphTwoHasSpecialFormat = false; pageRangeFieldElement.ParagraphTwoNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.ParagraphTwoPrefix.Text = "§§\u00A0"; pageRangeFieldElement.ParagraphTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphTwoSuffix.Text = ""; pageRangeFieldElement.ParagraphTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphMultiNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.ParagraphMultiPrefix.Text = "§§\u00A0"; pageRangeFieldElement.ParagraphMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphMultiSuffix.Text = ""; pageRangeFieldElement.ParagraphMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Margin pageRangeFieldElement.MarginOneHasSpecialFormat = true; pageRangeFieldElement.MarginOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginOnePrefix.Text = "no.\u00A0"; pageRangeFieldElement.MarginOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginOneSuffix.Text = ""; pageRangeFieldElement.MarginOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoHasSpecialFormat = true; pageRangeFieldElement.MarginTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginTwoPrefix.Text = "no.\u00A0"; pageRangeFieldElement.MarginTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoSuffix.Text = "\u00A0f."; pageRangeFieldElement.MarginTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginMultiPrefix.Text = "no.\u00A0"; pageRangeFieldElement.MarginMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginMultiSuffix.Text = "\u00A0ff."; pageRangeFieldElement.MarginMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Other pageRangeFieldElement.OtherOneHasSpecialFormat = false; pageRangeFieldElement.OtherOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.OtherOnePrefix.Text = ""; pageRangeFieldElement.OtherOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherOneSuffix.Text = ""; pageRangeFieldElement.OtherOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherTwoHasSpecialFormat = false; pageRangeFieldElement.OtherTwoNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.OtherTwoPrefix.Text = ""; pageRangeFieldElement.OtherTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherTwoSuffix.Text = ""; pageRangeFieldElement.OtherTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherMultiNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.OtherMultiPrefix.Text = ""; pageRangeFieldElement.OtherMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherMultiSuffix.Text = ""; pageRangeFieldElement.OtherMultiSuffix.FontStyle = FontStyle.Neutral; #endregion return(null); } #endregion #region French if (language.Contains("FR")) { #region Page pageRangeFieldElement.PageOneHasSpecialFormat = true; pageRangeFieldElement.PageOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageOnePrefix.Text = "p.\u00A0"; pageRangeFieldElement.PageOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageOneSuffix.Text = ""; pageRangeFieldElement.PageOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageTwoHasSpecialFormat = true; pageRangeFieldElement.PageTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageTwoPrefix.Text = "p.\u00A0"; pageRangeFieldElement.PageTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageTwoSuffix.Text = "\u00A0sq."; pageRangeFieldElement.PageTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageMultiPrefix.Text = "p.\u00A0"; pageRangeFieldElement.PageMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageMultiSuffix.Text = "\u00A0sqq."; pageRangeFieldElement.PageMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Column pageRangeFieldElement.ColumnOneHasSpecialFormat = true; pageRangeFieldElement.ColumnOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnOnePrefix.Text = "col.\u00A0"; pageRangeFieldElement.ColumnOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnOneSuffix.Text = ""; pageRangeFieldElement.ColumnOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnTwoHasSpecialFormat = true; pageRangeFieldElement.ColumnTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnTwoPrefix.Text = "col.\u00A0"; pageRangeFieldElement.ColumnTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnTwoSuffix.Text = "\u00A0sq."; pageRangeFieldElement.ColumnTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnMultiPrefix.Text = "col.\u00A0"; pageRangeFieldElement.ColumnMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnMultiSuffix.Text = "\u00A0sqq."; pageRangeFieldElement.ColumnMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Paragraph pageRangeFieldElement.ParagraphOneHasSpecialFormat = true; pageRangeFieldElement.ParagraphOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ParagraphOnePrefix.Text = "§\u00A0"; pageRangeFieldElement.ParagraphOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphOneSuffix.Text = ""; pageRangeFieldElement.ParagraphOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphTwoHasSpecialFormat = false; pageRangeFieldElement.ParagraphTwoNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.ParagraphTwoPrefix.Text = "§§\u00A0"; pageRangeFieldElement.ParagraphTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphTwoSuffix.Text = ""; pageRangeFieldElement.ParagraphTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphMultiNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.ParagraphMultiPrefix.Text = "§§\u00A0"; pageRangeFieldElement.ParagraphMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphMultiSuffix.Text = ""; pageRangeFieldElement.ParagraphMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Margin pageRangeFieldElement.MarginOneHasSpecialFormat = true; pageRangeFieldElement.MarginOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginOnePrefix.Text = "n°\u00A0"; pageRangeFieldElement.MarginOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginOneSuffix.Text = ""; pageRangeFieldElement.MarginOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoHasSpecialFormat = true; pageRangeFieldElement.MarginTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginTwoPrefix.Text = "n°\u00A0"; pageRangeFieldElement.MarginTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoSuffix.Text = "\u00A0sq."; pageRangeFieldElement.MarginTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginMultiPrefix.Text = "n°\u00A0"; pageRangeFieldElement.MarginMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginMultiSuffix.Text = "\u00A0sqq."; pageRangeFieldElement.MarginMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Other pageRangeFieldElement.OtherOneHasSpecialFormat = false; pageRangeFieldElement.OtherOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.OtherOnePrefix.Text = ""; pageRangeFieldElement.OtherOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherOneSuffix.Text = ""; pageRangeFieldElement.OtherOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherTwoHasSpecialFormat = false; pageRangeFieldElement.OtherTwoNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.OtherTwoPrefix.Text = ""; pageRangeFieldElement.OtherTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherTwoSuffix.Text = ""; pageRangeFieldElement.OtherTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherMultiNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.OtherMultiPrefix.Text = ""; pageRangeFieldElement.OtherMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherMultiSuffix.Text = ""; pageRangeFieldElement.OtherMultiSuffix.FontStyle = FontStyle.Neutral; #endregion return(null); } #endregion #region Italian if (language.Contains("IT")) { #region Page pageRangeFieldElement.PageOneHasSpecialFormat = true; pageRangeFieldElement.PageOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageOnePrefix.Text = "p.\u00A0"; pageRangeFieldElement.PageOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageOneSuffix.Text = ""; pageRangeFieldElement.PageOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageTwoHasSpecialFormat = true; pageRangeFieldElement.PageTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageTwoPrefix.Text = "p.\u00A0"; pageRangeFieldElement.PageTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageTwoSuffix.Text = "\u00A0e\u00A0seg."; pageRangeFieldElement.PageTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageMultiPrefix.Text = "p.\u00A0"; pageRangeFieldElement.PageMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageMultiSuffix.Text = "\u00A0e\u00A0segg."; pageRangeFieldElement.PageMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Column pageRangeFieldElement.ColumnOneHasSpecialFormat = true; pageRangeFieldElement.ColumnOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnOnePrefix.Text = "col.\u00A0"; pageRangeFieldElement.ColumnOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnOneSuffix.Text = ""; pageRangeFieldElement.ColumnOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnTwoHasSpecialFormat = true; pageRangeFieldElement.ColumnTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnTwoPrefix.Text = "col.\u00A0"; pageRangeFieldElement.ColumnTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnTwoSuffix.Text = "\u00A0e\u00A0seg."; pageRangeFieldElement.ColumnTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnMultiPrefix.Text = "col.\u00A0"; pageRangeFieldElement.ColumnMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnMultiSuffix.Text = "\u00A0e\u00A0segg."; pageRangeFieldElement.ColumnMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Paragraph pageRangeFieldElement.ParagraphOneHasSpecialFormat = true; pageRangeFieldElement.ParagraphOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ParagraphOnePrefix.Text = "§\u00A0"; pageRangeFieldElement.ParagraphOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphOneSuffix.Text = ""; pageRangeFieldElement.ParagraphOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphTwoHasSpecialFormat = false; pageRangeFieldElement.ParagraphTwoNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.ParagraphTwoPrefix.Text = "§§\u00A0"; pageRangeFieldElement.ParagraphTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphTwoSuffix.Text = ""; pageRangeFieldElement.ParagraphTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphMultiNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.ParagraphMultiPrefix.Text = "§§\u00A0"; pageRangeFieldElement.ParagraphMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphMultiSuffix.Text = ""; pageRangeFieldElement.ParagraphMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Margin pageRangeFieldElement.MarginOneHasSpecialFormat = true; pageRangeFieldElement.MarginOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginOnePrefix.Text = "n.\u00A0marg.\u00A0"; pageRangeFieldElement.MarginOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginOneSuffix.Text = ""; pageRangeFieldElement.MarginOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoHasSpecialFormat = true; pageRangeFieldElement.MarginTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginTwoPrefix.Text = "n.\u00A0marg.\u00A0"; pageRangeFieldElement.MarginTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoSuffix.Text = "\u00A0e\u00A0seg."; pageRangeFieldElement.MarginTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginMultiPrefix.Text = "n.\u00A0marg.\u00A0"; pageRangeFieldElement.MarginMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginMultiSuffix.Text = "\u00A0e\u00A0segg."; pageRangeFieldElement.MarginMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Other pageRangeFieldElement.OtherOneHasSpecialFormat = false; pageRangeFieldElement.OtherOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.OtherOnePrefix.Text = ""; pageRangeFieldElement.OtherOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherOneSuffix.Text = ""; pageRangeFieldElement.OtherOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherTwoHasSpecialFormat = false; pageRangeFieldElement.OtherTwoNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.OtherTwoPrefix.Text = ""; pageRangeFieldElement.OtherTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherTwoSuffix.Text = ""; pageRangeFieldElement.OtherTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherMultiNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.OtherMultiPrefix.Text = ""; pageRangeFieldElement.OtherMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherMultiSuffix.Text = ""; pageRangeFieldElement.OtherMultiSuffix.FontStyle = FontStyle.Neutral; #endregion return(null); } #endregion #region Spanish if (language.Contains("ES")) { #region Page pageRangeFieldElement.PageOneHasSpecialFormat = true; pageRangeFieldElement.PageOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageOnePrefix.Text = "pág.\u00A0"; pageRangeFieldElement.PageOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageOneSuffix.Text = ""; pageRangeFieldElement.PageOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageTwoHasSpecialFormat = true; pageRangeFieldElement.PageTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageTwoPrefix.Text = "pág.\u00A0"; pageRangeFieldElement.PageTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageTwoSuffix.Text = "\u00A0e\u00A0s."; pageRangeFieldElement.PageTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageMultiPrefix.Text = "pág.\u00A0"; pageRangeFieldElement.PageMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageMultiSuffix.Text = "\u00A0e\u00A0ss."; pageRangeFieldElement.PageMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Column pageRangeFieldElement.ColumnOneHasSpecialFormat = true; pageRangeFieldElement.ColumnOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnOnePrefix.Text = "columna\u00A0"; pageRangeFieldElement.ColumnOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnOneSuffix.Text = ""; pageRangeFieldElement.ColumnOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnTwoHasSpecialFormat = true; pageRangeFieldElement.ColumnTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnTwoPrefix.Text = "columna\u00A0"; pageRangeFieldElement.ColumnTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnTwoSuffix.Text = "\u00A0e\u00A0s."; pageRangeFieldElement.ColumnTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnMultiPrefix.Text = "columna\u00A0"; pageRangeFieldElement.ColumnMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnMultiSuffix.Text = "\u00A0e\u00A0ss."; pageRangeFieldElement.ColumnMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Paragraph pageRangeFieldElement.ParagraphOneHasSpecialFormat = true; pageRangeFieldElement.ParagraphOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ParagraphOnePrefix.Text = "§\u00A0"; pageRangeFieldElement.ParagraphOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphOneSuffix.Text = ""; pageRangeFieldElement.ParagraphOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphTwoHasSpecialFormat = false; pageRangeFieldElement.ParagraphTwoNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.ParagraphTwoPrefix.Text = "§§\u00A0"; pageRangeFieldElement.ParagraphTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphTwoSuffix.Text = ""; pageRangeFieldElement.ParagraphTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphMultiNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.ParagraphMultiPrefix.Text = "§§\u00A0"; pageRangeFieldElement.ParagraphMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphMultiSuffix.Text = ""; pageRangeFieldElement.ParagraphMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Margin pageRangeFieldElement.MarginOneHasSpecialFormat = true; pageRangeFieldElement.MarginOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginOnePrefix.Text = "n.º\u00A0margin.\u00A0"; pageRangeFieldElement.MarginOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginOneSuffix.Text = ""; pageRangeFieldElement.MarginOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoHasSpecialFormat = true; pageRangeFieldElement.MarginTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginTwoPrefix.Text = "n.º\u00A0margin.\u00A0"; pageRangeFieldElement.MarginTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoSuffix.Text = "\u00A0e\u00A0s."; pageRangeFieldElement.MarginTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginMultiPrefix.Text = "n.º\u00A0margin.\u00A0"; pageRangeFieldElement.MarginMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginMultiSuffix.Text = "\u00A0e\u00A0ss."; pageRangeFieldElement.MarginMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Other pageRangeFieldElement.OtherOneHasSpecialFormat = false; pageRangeFieldElement.OtherOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.OtherOnePrefix.Text = ""; pageRangeFieldElement.OtherOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherOneSuffix.Text = ""; pageRangeFieldElement.OtherOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherTwoHasSpecialFormat = false; pageRangeFieldElement.OtherTwoNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.OtherTwoPrefix.Text = ""; pageRangeFieldElement.OtherTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherTwoSuffix.Text = ""; pageRangeFieldElement.OtherTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherMultiNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.OtherMultiPrefix.Text = ""; pageRangeFieldElement.OtherMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherMultiSuffix.Text = ""; pageRangeFieldElement.OtherMultiSuffix.FontStyle = FontStyle.Neutral; #endregion return(null); } #endregion #region Other: Language is NOT EMPTY - treat like English? if (!string.IsNullOrWhiteSpace(language)) { ; } { #region Page pageRangeFieldElement.PageOneHasSpecialFormat = true; pageRangeFieldElement.PageOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageOnePrefix.Text = "p.\u00A0"; pageRangeFieldElement.PageOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageOneSuffix.Text = ""; pageRangeFieldElement.PageOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageTwoHasSpecialFormat = true; pageRangeFieldElement.PageTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageTwoPrefix.Text = "pp.\u00A0"; pageRangeFieldElement.PageTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageTwoSuffix.Text = "\u00A0f."; pageRangeFieldElement.PageTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageMultiPrefix.Text = "pp.\u00A0"; pageRangeFieldElement.PageMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.PageMultiSuffix.Text = "\u00A0ff."; pageRangeFieldElement.PageMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Column pageRangeFieldElement.ColumnOneHasSpecialFormat = true; pageRangeFieldElement.ColumnOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnOnePrefix.Text = "col.\u00A0"; pageRangeFieldElement.ColumnOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnOneSuffix.Text = ""; pageRangeFieldElement.ColumnOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnTwoHasSpecialFormat = true; pageRangeFieldElement.ColumnTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnTwoPrefix.Text = "col.\u00A0"; pageRangeFieldElement.ColumnTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnTwoSuffix.Text = "\u00A0f."; pageRangeFieldElement.ColumnTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnMultiPrefix.Text = "col.\u00A0"; pageRangeFieldElement.ColumnMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ColumnMultiSuffix.Text = "\u00A0ff."; pageRangeFieldElement.ColumnMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Paragraph pageRangeFieldElement.ParagraphOneHasSpecialFormat = true; pageRangeFieldElement.ParagraphOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ParagraphOnePrefix.Text = "§\u00A0"; pageRangeFieldElement.ParagraphOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphOneSuffix.Text = ""; pageRangeFieldElement.ParagraphOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphTwoHasSpecialFormat = false; pageRangeFieldElement.ParagraphTwoNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.ParagraphTwoPrefix.Text = "§§\u00A0"; pageRangeFieldElement.ParagraphTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphTwoSuffix.Text = ""; pageRangeFieldElement.ParagraphTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphMultiNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.ParagraphMultiPrefix.Text = "§§\u00A0"; pageRangeFieldElement.ParagraphMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.ParagraphMultiSuffix.Text = ""; pageRangeFieldElement.ParagraphMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Margin pageRangeFieldElement.MarginOneHasSpecialFormat = true; pageRangeFieldElement.MarginOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginOnePrefix.Text = "no.\u00A0"; pageRangeFieldElement.MarginOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginOneSuffix.Text = ""; pageRangeFieldElement.MarginOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoHasSpecialFormat = true; pageRangeFieldElement.MarginTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginTwoPrefix.Text = "no.\u00A0"; pageRangeFieldElement.MarginTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoSuffix.Text = "\u00A0f."; pageRangeFieldElement.MarginTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginTwoNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginMultiPrefix.Text = "no.\u00A0"; pageRangeFieldElement.MarginMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.MarginMultiSuffix.Text = "\u00A0ff."; pageRangeFieldElement.MarginMultiSuffix.FontStyle = FontStyle.Neutral; #endregion #region Other pageRangeFieldElement.OtherOneHasSpecialFormat = false; pageRangeFieldElement.OtherOneNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.OtherOnePrefix.Text = ""; pageRangeFieldElement.OtherOnePrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherOneSuffix.Text = ""; pageRangeFieldElement.OtherOneSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherTwoHasSpecialFormat = false; pageRangeFieldElement.OtherTwoNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.OtherTwoPrefix.Text = ""; pageRangeFieldElement.OtherTwoPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherTwoSuffix.Text = ""; pageRangeFieldElement.OtherTwoSuffix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherMultiNumberingStyle = NumberingStyle.FullRange; pageRangeFieldElement.OtherMultiPrefix.Text = ""; pageRangeFieldElement.OtherMultiPrefix.FontStyle = FontStyle.Neutral; pageRangeFieldElement.OtherMultiSuffix.Text = ""; pageRangeFieldElement.OtherMultiSuffix.FontStyle = FontStyle.Neutral; #endregion return(null); } #endregion return(null); }
public IEnumerable <ITextUnit> GetTextUnits(ComponentPart componentPart, Template template, Citation citation, out bool handled) { handled = false; if (citation == null) { return(null); } Reference currentReference = citation.Reference; if (currentReference == null) { return(null); } if (componentPart == null) { return(null); } if (componentPart.Elements == null || !componentPart.Elements.Any()) { return(null); } PlaceholderCitation placeholderCitation = citation as PlaceholderCitation; if (placeholderCitation == null) { return(null); } if (placeholderCitation.Entry == null) { return(null); } PageRangeFieldElement pageRangeFieldElement = componentPart.Elements.OfType <PageRangeFieldElement>().FirstOrDefault(); if (pageRangeFieldElement == null) { return(null); } var outputString = "o. S."; if (placeholderCitation.PageRange != null || !string.IsNullOrWhiteSpace(placeholderCitation.PageRange.OriginalString)) { return(null); } var outputLiteralElement = new LiteralElement(componentPart, outputString); outputLiteralElement.FontStyle = pageRangeFieldElement.PageMultiStartFontStyle; componentPart.Elements.ReplaceItem(pageRangeFieldElement, outputLiteralElement); //all literal elements should always be output: foreach (LiteralElement literalElement in componentPart.Elements.OfType <LiteralElement>()) { literalElement.ApplyCondition = ElementApplyCondition.Always; } return(null); }
void TransferSettings(PageRangeFieldElement sourceElement, PageRangeFieldElement targetElement) { #region Page targetElement.PageOneHasSpecialFormat = sourceElement.PageOneHasSpecialFormat; targetElement.PageOnePrefix.Text = sourceElement.PageOnePrefix.Text; targetElement.PageOnePrefix.FontStyle = sourceElement.PageOnePrefix.FontStyle; targetElement.PageOneSuffix.Text = sourceElement.PageOneSuffix.Text; targetElement.PageOneSuffix.FontStyle = sourceElement.PageOneSuffix.FontStyle; targetElement.PageTwoHasSpecialFormat = sourceElement.PageTwoHasSpecialFormat; targetElement.PageTwoPrefix.Text = sourceElement.PageTwoPrefix.Text; targetElement.PageTwoPrefix.FontStyle = sourceElement.PageTwoPrefix.FontStyle; targetElement.PageTwoSuffix.Text = sourceElement.PageTwoSuffix.Text; targetElement.PageTwoSuffix.FontStyle = sourceElement.PageTwoSuffix.FontStyle; targetElement.PageMultiPrefix.Text = sourceElement.PageMultiPrefix.Text; targetElement.PageMultiPrefix.FontStyle = sourceElement.PageMultiPrefix.FontStyle; targetElement.PageMultiSuffix.Text = sourceElement.PageMultiSuffix.Text; targetElement.PageMultiSuffix.FontStyle = sourceElement.PageMultiSuffix.FontStyle; #endregion #region Column targetElement.ColumnOneHasSpecialFormat = sourceElement.ColumnOneHasSpecialFormat; targetElement.ColumnOnePrefix.Text = sourceElement.ColumnOnePrefix.Text; targetElement.ColumnOnePrefix.FontStyle = sourceElement.ColumnOnePrefix.FontStyle; targetElement.ColumnOneSuffix.Text = sourceElement.ColumnOneSuffix.Text; targetElement.ColumnOneSuffix.FontStyle = sourceElement.ColumnOneSuffix.FontStyle; targetElement.ColumnTwoHasSpecialFormat = sourceElement.ColumnTwoHasSpecialFormat; targetElement.ColumnTwoPrefix.Text = sourceElement.ColumnTwoPrefix.Text; targetElement.ColumnTwoPrefix.FontStyle = sourceElement.ColumnTwoPrefix.FontStyle; targetElement.ColumnTwoSuffix.Text = sourceElement.ColumnTwoSuffix.Text; targetElement.ColumnTwoSuffix.FontStyle = sourceElement.ColumnTwoSuffix.FontStyle; targetElement.ColumnMultiPrefix.Text = sourceElement.ColumnMultiPrefix.Text; targetElement.ColumnMultiPrefix.FontStyle = sourceElement.ColumnMultiPrefix.FontStyle; targetElement.ColumnMultiSuffix.Text = sourceElement.ColumnMultiSuffix.Text; targetElement.ColumnMultiSuffix.FontStyle = sourceElement.ColumnMultiSuffix.FontStyle; #endregion #region Margin targetElement.MarginOneHasSpecialFormat = sourceElement.MarginOneHasSpecialFormat; targetElement.MarginOnePrefix.Text = sourceElement.MarginOnePrefix.Text; targetElement.MarginOnePrefix.FontStyle = sourceElement.MarginOnePrefix.FontStyle; targetElement.MarginOneSuffix.Text = sourceElement.MarginOneSuffix.Text; targetElement.MarginOneSuffix.FontStyle = sourceElement.MarginOneSuffix.FontStyle; targetElement.MarginTwoHasSpecialFormat = sourceElement.MarginTwoHasSpecialFormat; targetElement.MarginTwoPrefix.Text = sourceElement.MarginTwoPrefix.Text; targetElement.MarginTwoPrefix.FontStyle = sourceElement.MarginTwoPrefix.FontStyle; targetElement.MarginTwoSuffix.Text = sourceElement.MarginTwoSuffix.Text; targetElement.MarginTwoSuffix.FontStyle = sourceElement.MarginTwoSuffix.FontStyle; targetElement.MarginMultiPrefix.Text = sourceElement.MarginMultiPrefix.Text; targetElement.MarginMultiPrefix.FontStyle = sourceElement.MarginMultiPrefix.FontStyle; targetElement.MarginMultiSuffix.Text = sourceElement.MarginMultiSuffix.Text; targetElement.MarginMultiSuffix.FontStyle = sourceElement.MarginMultiSuffix.FontStyle; #endregion #region Paragraph targetElement.ParagraphOneHasSpecialFormat = sourceElement.ParagraphOneHasSpecialFormat; targetElement.ParagraphOnePrefix.Text = sourceElement.ParagraphOnePrefix.Text; targetElement.ParagraphOnePrefix.FontStyle = sourceElement.ParagraphOnePrefix.FontStyle; targetElement.ParagraphOneSuffix.Text = sourceElement.ParagraphOneSuffix.Text; targetElement.ParagraphOneSuffix.FontStyle = sourceElement.ParagraphOneSuffix.FontStyle; targetElement.ParagraphTwoHasSpecialFormat = sourceElement.ParagraphTwoHasSpecialFormat; targetElement.ParagraphTwoPrefix.Text = sourceElement.ParagraphTwoPrefix.Text; targetElement.ParagraphTwoPrefix.FontStyle = sourceElement.ParagraphTwoPrefix.FontStyle; targetElement.ParagraphTwoSuffix.Text = sourceElement.ParagraphTwoSuffix.Text; targetElement.ParagraphTwoSuffix.FontStyle = sourceElement.ParagraphTwoSuffix.FontStyle; targetElement.ParagraphMultiPrefix.Text = sourceElement.ParagraphMultiPrefix.Text; targetElement.ParagraphMultiPrefix.FontStyle = sourceElement.ParagraphMultiPrefix.FontStyle; targetElement.ParagraphMultiSuffix.Text = sourceElement.ParagraphMultiSuffix.Text; targetElement.ParagraphMultiSuffix.FontStyle = sourceElement.ParagraphMultiSuffix.FontStyle; #endregion #region Other targetElement.OtherOneHasSpecialFormat = sourceElement.OtherOneHasSpecialFormat; targetElement.OtherOnePrefix.Text = sourceElement.OtherOnePrefix.Text; targetElement.OtherOnePrefix.FontStyle = sourceElement.OtherOnePrefix.FontStyle; targetElement.OtherOneSuffix.Text = sourceElement.OtherOneSuffix.Text; targetElement.OtherOneSuffix.FontStyle = sourceElement.OtherOneSuffix.FontStyle; targetElement.OtherTwoHasSpecialFormat = sourceElement.OtherTwoHasSpecialFormat; targetElement.OtherTwoPrefix.Text = sourceElement.OtherTwoPrefix.Text; targetElement.OtherTwoPrefix.FontStyle = sourceElement.OtherTwoPrefix.FontStyle; targetElement.OtherTwoSuffix.Text = sourceElement.OtherTwoSuffix.Text; targetElement.OtherTwoSuffix.FontStyle = sourceElement.OtherTwoSuffix.FontStyle; targetElement.OtherMultiPrefix.Text = sourceElement.OtherMultiPrefix.Text; targetElement.OtherMultiPrefix.FontStyle = sourceElement.OtherMultiPrefix.FontStyle; targetElement.OtherMultiSuffix.Text = sourceElement.OtherMultiSuffix.Text; targetElement.OtherMultiSuffix.FontStyle = sourceElement.OtherMultiSuffix.FontStyle; #endregion }
public IEnumerable <ITextUnit> GetTextUnits(ComponentPart componentPart, Template template, Citation citation, out bool handled) { //return handled = true if this macro generates the output (as a IEnumerable<ITextUnit>); the standard output will be suppressed //return handled = false if you want Citavi to produce the standard output; //you can still manipulate the component part and its elements before letting Citavi generate the output with handled = false handled = false; /* * AUSGABE-ZIELE * ------------------------------------------------------------------------------------------------------------------------ * [1] Aufsatz-Seiten: 123-130 Zitatseiten: - > AUSGABE: 123-130 [= nur Aufsatzseiten] * [2] Aufsatz-Seiten: 123-130 Zitatseiten: 123 > AUSGABE: 123 [= nur Zitatseiten] * [3] Aufsatz-Seiten: 123-130 Zitatseiten: 123-124 > AUSGABE: 123 f. [= nur Zitatseiten] * [4] Aufsatz-Seiten: 123-130 Zitatseiten: 123-125 > AUSGABE: 123 ff. [= nur Zitatseiten] * [5] Aufsatz-Seiten: 123-130 Zitatseiten: 125 > AUSGABE: 123 (125) [= Erste Aufsatzseite (Zitatseiten)] * [6] Aufsatz-Seiten: 123-130 Zitatseiten: 125-126 > AUSGABE: 123 (125 f.) [= Erste Aufsatzseite (Zitatseiten)] * [7] Aufsatz-Seiten: 123-130 Zitatseiten: 125-127 > AUSGABE: 123 (125 ff.) [= Erste Aufsatzseite (Zitatseiten)] */ if (componentPart == null) { return(null); } if (componentPart.Elements == null || componentPart.Elements.Count == 0) { return(null); } if (citation == null) { return(null); } if (citation.Reference == null) { return(null); } var placeholderCitation = citation as PlaceholderCitation; if (placeholderCitation == null) { return(null); } if (placeholderCitation.Entry == null) { return(null); } //[1] if (placeholderCitation.Entry.PageRange == null) { return(null); } if (string.IsNullOrEmpty(placeholderCitation.Entry.PageRange.PrettyString)) { return(null); //ElementApplyConditions sorgen dafür, dass keine leeren Klammern angezeigt werden } //enthält nur 1 PageRangeFieldElement und 1 QuotationPageRangeFieldElement und sonst lediglich LiteralElemente PageRangeFieldElement pageRangeFieldElement = null; QuotationPageRangeFieldElement quotationPageRangeFieldElement = null; if (!TryValidateComponentPartStructure(componentPart, out pageRangeFieldElement, out quotationPageRangeFieldElement)) { return(null); } if ( !citation.Reference.HasCoreField(ReferenceTypeCoreFieldId.PageRange) || citation.Reference.PageRange == null || string.IsNullOrEmpty(citation.Reference.PageRange.PrettyString) ) { //Alles unterdrücken ausser QuotationPageRangeFieldElement TransferSettings(pageRangeFieldElement, quotationPageRangeFieldElement); RemoveAllButElement(componentPart, quotationPageRangeFieldElement); RemoveParenthesesFromPrefixSuffix(quotationPageRangeFieldElement); return(null); } var startPageArticle = citation.Reference.PageRange.StartPage; var startPageQuotation = placeholderCitation.Entry.PageRange.StartPage; //[2], [3], [4] [= nur Zitatseiten] if (startPageQuotation == startPageArticle) { //Alles unterdrücken ausser QuotationPageRangeFieldElement - wichtig: Eine der beiden TransferSettings-Zeilen muss immer durch vorangestellte //-Schrägstriche auskommentiert sein! //TransferSettings(quotationPageRangeFieldElement, pageRangeFieldElement); //diese Reihenfolge verwenden, wenn die Präfixe der Zitatseiten-Komponente angezeigt werden sollen TransferSettings(pageRangeFieldElement, quotationPageRangeFieldElement); //diese Reihenfolge verwenden, wenn die Präfixe der Seitenbereichs-Komponente angezeigt werden sollen RemoveAllButElement(componentPart, quotationPageRangeFieldElement); RemoveParenthesesFromPrefixSuffix(quotationPageRangeFieldElement); return(null); } //[5], [6], [7] [= Erste Aufsatzseite (Zitatseiten)] else { pageRangeFieldElement.PageOneHasSpecialFormat = false; pageRangeFieldElement.PageTwoHasSpecialFormat = false; pageRangeFieldElement.PageMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageMultiSuffix.Text = string.Empty; pageRangeFieldElement.ColumnOneHasSpecialFormat = false; pageRangeFieldElement.ColumnTwoHasSpecialFormat = false; pageRangeFieldElement.ColumnMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnMultiSuffix.Text = string.Empty; pageRangeFieldElement.MarginOneHasSpecialFormat = false; pageRangeFieldElement.MarginTwoHasSpecialFormat = false; pageRangeFieldElement.MarginMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginMultiSuffix.Text = string.Empty; pageRangeFieldElement.ParagraphOneHasSpecialFormat = false; pageRangeFieldElement.ParagraphTwoHasSpecialFormat = false; pageRangeFieldElement.ParagraphMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ParagraphMultiSuffix.Text = string.Empty; pageRangeFieldElement.OtherOneHasSpecialFormat = false; pageRangeFieldElement.OtherTwoHasSpecialFormat = false; pageRangeFieldElement.OtherMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.OtherMultiSuffix.Text = string.Empty; return(null); } }
bool TryValidateComponentPartStructure(ComponentPart componentPart, out PageRangeFieldElement pageRangeFieldElement, out QuotationPageRangeFieldElement quotationPageRangeFieldElement) { /* * Allowed structures: * /1/ [article pages] [quotation pages] * /2/ [article pages] [literal] [quotation pages] * /3/ [article pages] [literal] [quotation pages] [literal] */ pageRangeFieldElement = null; quotationPageRangeFieldElement = null; if (componentPart == null) { return(false); } if (componentPart.Elements == null || componentPart.Elements.Count == 0 || componentPart.Elements.Count < 2 || componentPart.Elements.Count > 4) { return(false); } IElement element01 = componentPart.Elements.ElementAtOrDefault(0); IElement element02 = componentPart.Elements.ElementAtOrDefault(1); IElement element03 = componentPart.Elements.ElementAtOrDefault(2); IElement element04 = componentPart.Elements.ElementAtOrDefault(3); #region /1/ [article pages] [quotation pages] if (element04 == null && element03 == null && element02 != null && element02 is QuotationPageRangeFieldElement && element01 != null && element01 is PageRangeFieldElement && ((PageRangeFieldElement)element01).PropertyId == ReferencePropertyId.PageRange) { pageRangeFieldElement = (PageRangeFieldElement)element01; quotationPageRangeFieldElement = (QuotationPageRangeFieldElement)element02; return(true); } #endregion #region /2/ [article pages] [literal] [quotation pages] if (element04 == null && element03 != null && element03 is QuotationPageRangeFieldElement && element02 != null && element02 is LiteralElement && element01 != null && element01 is PageRangeFieldElement && ((PageRangeFieldElement)element01).PropertyId == ReferencePropertyId.PageRange) { pageRangeFieldElement = (PageRangeFieldElement)element01; quotationPageRangeFieldElement = (QuotationPageRangeFieldElement)element03; return(true); } #endregion #region /3/ [article pages] [literal] [quotation pages] [literal] if (element04 != null && element04 is LiteralElement && element03 != null && element03 is QuotationPageRangeFieldElement && element02 != null && element02 is LiteralElement && element01 != null && element01 is PageRangeFieldElement && ((PageRangeFieldElement)element01).PropertyId == ReferencePropertyId.PageRange) { pageRangeFieldElement = (PageRangeFieldElement)element01; quotationPageRangeFieldElement = (QuotationPageRangeFieldElement)element03; return(true); } #endregion return(false); }
public IEnumerable <ITextUnit> GetTextUnits(ComponentPart componentPart, Template template, Citation citation, out bool handled) { string suffixForRangeOf3or4 = "\u00A0ff."; //inkl. geschütztem Leerzeichen (ggf. durch normales Leerzeichen ersetzen) bool rangeToTreatIsExactly3 = true; //wenn false, dann soll ein Bereich von 3 ODER 4 Seiten mit " ff." verkürzt werden (sonst nur bei genau 3 Seiten) handled = false; if (citation == null) { return(null); } if (citation.Reference == null) { return(null); } if (componentPart == null) { return(null); } if (componentPart.Elements == null || componentPart.Elements.Count == 0) { return(null); } FieldElement fieldElement; PageRangeFieldElement pageRangeFieldElement = componentPart.Elements.OfType <PageRangeFieldElement>().FirstOrDefault(); if (pageRangeFieldElement == null) { return(null); } PageRange pageRange = null; if (pageRangeFieldElement is QuotationPageRangeFieldElement) { PlaceholderCitation placeholderCitation = citation as PlaceholderCitation; if (placeholderCitation == null) { return(null); } if (placeholderCitation.Entry == null) { return(null); } pageRange = placeholderCitation.Entry.PageRange; } else if (pageRangeFieldElement is PageRangeFieldElement) { pageRange = citation.Reference.PageRange; } else { //what should that be ? return(null); } if (pageRange == null) { return(null); } if (pageRange.StartPage == null) { return(null); } if (!pageRange.StartPage.IsFullyNumeric) { return(null); } int startPage = pageRange.StartPage.Number ?? 0; if (startPage == 0) { return(null); } if (pageRange.EndPage == null) { return(null); } if (!pageRange.EndPage.IsFullyNumeric) { return(null); } int endPage = pageRange.EndPage.Number ?? 0; if (endPage == 0) { return(null); } int delta = 0; if (endPage > startPage) { delta = endPage - startPage; } else { delta = 0; } //we only treat the special case delta = 2 (optional 2 or 3) (three pages, optional three or four pages) //delta = 0 (over one page) is handled directly from the elements settings //delta = 1 (over two pages) ditto //delta > 2 or 3 (over 4 or 5 or more pages) ditto if ((rangeToTreatIsExactly3 == true && delta == 2) || (rangeToTreatIsExactly3 == false && (delta == 2 || delta == 3))) { switch (pageRange.NumberingType) { case NumberingType.Page: default: { pageRangeFieldElement.PageMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageMultiSuffix.Text = suffixForRangeOf3or4; } break; case NumberingType.Column: { pageRangeFieldElement.ColumnMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnMultiSuffix.Text = suffixForRangeOf3or4; } break; case NumberingType.Paragraph: { pageRangeFieldElement.ParagraphMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ParagraphMultiSuffix.Text = suffixForRangeOf3or4; } break; case NumberingType.Margin: { pageRangeFieldElement.MarginMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginMultiSuffix.Text = suffixForRangeOf3or4; } break; case NumberingType.Other: { pageRangeFieldElement.OtherMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.OtherMultiSuffix.Text = suffixForRangeOf3or4; } break; } } return(null); //handled remains false, because Citavi will do the formatting with the changed field element's properties }
public IEnumerable <ITextUnit> GetTextUnits(ComponentPart componentPart, Template template, Citation citation, out bool handled) { string suffixForRangeOf3 = " ff."; handled = false; if (citation == null) { return(null); } if (citation.Reference == null) { return(null); } if (componentPart == null) { return(null); } if (componentPart.Elements == null || componentPart.Elements.Count == 0) { return(null); } FieldElement fieldElement; PageRangeFieldElement pageRangeFieldElement = componentPart.Elements.OfType <PageRangeFieldElement>().FirstOrDefault(); if (pageRangeFieldElement == null) { return(null); } PageRange pageRange = null; if (pageRangeFieldElement is QuotationPageRangeFieldElement) { PlaceholderCitation placeholderCitation = citation as PlaceholderCitation; if (placeholderCitation == null) { return(null); } if (placeholderCitation.Entry == null) { return(null); } pageRange = placeholderCitation.Entry.PageRange; } else if (pageRangeFieldElement is PageRangeFieldElement) { pageRange = citation.Reference.PageRange; } else { //what should that be ? return(null); } if (pageRange == null) { return(null); } if (pageRange.StartPage == null) { return(null); } if (!pageRange.StartPage.IsFullyNumeric) { return(null); } int startPage = pageRange.StartPage.Number ?? 0; if (startPage == 0) { return(null); } if (pageRange.EndPage == null) { return(null); } if (!pageRange.EndPage.IsFullyNumeric) { return(null); } int endPage = pageRange.EndPage.Number ?? 0; if (endPage == 0) { return(null); } int delta = 0; if (endPage > startPage) { delta = endPage - startPage; } else { delta = 0; } //we only treat the special case delta = 2 (over three pages) //delta = 0 (over one page) is handled directly from the elements settings //delta = 1 (over two pages) ditto //delta > 2 (over 4 or more pages) ditto if (delta == 2) { switch (pageRange.NumberingType) { case NumberingType.Column: { pageRangeFieldElement.ColumnMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ColumnMultiSuffix.Text = suffixForRangeOf3; } break; case NumberingType.Margin: { pageRangeFieldElement.MarginMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.MarginMultiSuffix.Text = suffixForRangeOf3; } break; case NumberingType.Other: { pageRangeFieldElement.OtherMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.OtherMultiSuffix.Text = suffixForRangeOf3; } break; case NumberingType.Page: default: { pageRangeFieldElement.PageMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.PageMultiSuffix.Text = suffixForRangeOf3; } break; case NumberingType.Paragraph: { pageRangeFieldElement.ParagraphMultiNumberingStyle = NumberingStyle.StartPageOnly; pageRangeFieldElement.ParagraphMultiSuffix.Text = suffixForRangeOf3; } break; } } return(null); //handled remains false, because Citavi will do the formatting with the changed field element's properties }