// ============================================================================ // AestheticRecipeSamples_Batch1.cs — IEEE & ACM conference paper recipes // ============================================================================ // Two-column academic conference styles faithfully reproducing the typographic // conventions of IEEEtran.cls and acmart.cls for DOCX output. // // UNIT REFERENCE: // Font size: half-points (20 = 10pt, 18 = 9pt, 16 = 8pt) // Spacing: DXA = twentieths of a point (1440 DXA = 1 inch) // Borders: eighth-points (4 = 0.5pt, 8 = 1pt, 12 = 1.5pt) // Line spacing "line": 240ths of single spacing (240 = 1.0x) // ============================================================================ using DocumentFormat.OpenXml; using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Wordprocessing; using WpColumns = DocumentFormat.OpenXml.Wordprocessing.Columns; using WpPageSize = DocumentFormat.OpenXml.Wordprocessing.PageSize; namespace MiniMaxAIDocx.Core.Samples; public static partial class AestheticRecipeSamples { // ════════════════════════════════════════════════════════════════════════ // RECIPE 6: IEEE CONFERENCE (IEEEtran) // ════════════════════════════════════════════════════════════════════════ /// /// Recipe: IEEE Conference Paper (IEEEtran.cls v1.8b) /// Source: IEEEtran.cls v1.8b — the standard LaTeX class for IEEE transactions /// and conference proceedings. /// /// Feel: Dense, formal, information-rich two-column layout. /// Best for: IEEE conference submissions, transactions papers, technical reports /// following IEEE style. /// /// Design rationale (all values from IEEEtran.cls source): /// - US Letter, narrow margins (0.625in L/R): maximizes text area for the /// two-column layout. IEEE papers prioritize information density. /// - Two columns with 0.25in (360 DXA) gutter: standard IEEE column separation. /// Narrow gutter is feasible because the small font creates short line lengths. /// - 10pt Times New Roman body (sz=20): IEEE's standard body size. TNR is the /// required typeface. 10pt in two columns yields ~40 characters per line — /// optimal for rapid technical reading. /// - 24pt title, centered, NOT bold (sz=48): IEEEtran titles are large but /// use regular weight. The size alone provides hierarchy. /// - Section headings (H1): 10pt small caps, centered, Roman numeral prefix /// convention (sz=20). Small caps at body size creates subtle hierarchy /// without disrupting the dense layout. /// - Subsection headings (H2): 10pt italic, flush left (sz=20). Italic at /// body size is the minimal viable distinction from body text. /// - Single spacing (line=240): mandatory for IEEE camera-ready format. /// - First-line indent 0.125in (180 DXA): very small indent suits the narrow /// column width. /// - 0pt paragraph spacing: IEEE uses no inter-paragraph space; the first-line /// indent is the sole paragraph separator. /// - Captions: 8pt (sz=16) — subordinate to body, centered under figures/tables. /// public static void CreateIEEEConferenceDocument(string outputPath) { using var doc = WordprocessingDocument.Create(outputPath, WordprocessingDocumentType.Document); var mainPart = doc.AddMainDocumentPart(); mainPart.Document = new Document(new Body()); var body = mainPart.Document.Body!; // ── Styles ── var stylesPart = mainPart.AddNewPart(); stylesPart.Styles = new Styles(); var styles = stylesPart.Styles; // DocDefaults: Times New Roman 10pt, single spacing, 0.125in first-line indent styles.Append(new DocDefaults( new RunPropertiesDefault( new RunPropertiesBaseStyle( new RunFonts { Ascii = "Times New Roman", HighAnsi = "Times New Roman", EastAsia = "SimSun", ComplexScript = "Times New Roman" }, new FontSize { Val = "20" }, // 10pt body (IEEEtran standard) new FontSizeComplexScript { Val = "20" }, new Color { Val = "000000" }, // Pure black new Languages { Val = "en-US", EastAsia = "zh-CN" } ) ), new ParagraphPropertiesDefault( new ParagraphPropertiesBaseStyle( new SpacingBetweenLines { // Single spacing: mandatory for IEEE camera-ready Line = "240", LineRule = LineSpacingRuleValues.Auto, After = "0", Before = "0" }, // First-line indent: 0.125in = 180 DXA (very small, suits narrow columns) new Indentation { FirstLine = "180" } ) ) )); // ── Normal style ── styles.Append(CreateParagraphStyle( styleId: "Normal", styleName: "Normal", isDefault: true, uiPriority: 0 )); // ── Title style: 24pt centered, NOT bold ── // IEEEtran.cls \maketitle: \LARGE (24pt at 10pt base), centered, no bold var titleRPr = new StyleRunProperties( new RunFonts { Ascii = "Times New Roman", HighAnsi = "Times New Roman", EastAsia = "SimSun", ComplexScript = "Times New Roman" }, new FontSize { Val = "48" }, // 24pt new FontSizeComplexScript { Val = "48" }, new Color { Val = "000000" } // No Bold — IEEEtran titles are NOT bold ); styles.Append(new Style( new StyleName { Val = "Title" }, new BasedOn { Val = "Normal" }, new NextParagraphStyle { Val = "Normal" }, new UIPriority { Val = 10 }, new PrimaryStyle(), new StyleParagraphProperties( new Justification { Val = JustificationValues.Center }, new SpacingBetweenLines { Before = "0", After = "240" }, new Indentation { FirstLine = "0" } // No indent for title ), titleRPr ) { Type = StyleValues.Paragraph, StyleId = "Title", Default = false }); // ── Heading 1: 10pt small caps, centered ── // IEEEtran \section: \centering\scshape at body size, Roman numeral prefix var h1RPr = new StyleRunProperties( new RunFonts { Ascii = "Times New Roman", HighAnsi = "Times New Roman", EastAsia = "SimSun", ComplexScript = "Times New Roman" }, new FontSize { Val = "20" }, // 10pt — same as body new FontSizeComplexScript { Val = "20" }, new Color { Val = "000000" }, new SmallCaps() // Small caps for section headings ); styles.Append(new Style( new StyleName { Val = "heading 1" }, new BasedOn { Val = "Normal" }, new NextParagraphStyle { Val = "Normal" }, new UIPriority { Val = 9 }, new PrimaryStyle(), new StyleParagraphProperties( new KeepNext(), new KeepLines(), new Justification { Val = JustificationValues.Center }, new SpacingBetweenLines { Before = "240", After = "120" }, new Indentation { FirstLine = "0" }, new OutlineLevel { Val = 0 } ), h1RPr ) { Type = StyleValues.Paragraph, StyleId = "Heading1", Default = false }); // ── Heading 2: 10pt italic, flush left ── // IEEEtran \subsection: \itshape at body size, flush left var h2RPr = new StyleRunProperties( new RunFonts { Ascii = "Times New Roman", HighAnsi = "Times New Roman", EastAsia = "SimSun", ComplexScript = "Times New Roman" }, new FontSize { Val = "20" }, // 10pt — same as body new FontSizeComplexScript { Val = "20" }, new Color { Val = "000000" }, new Italic() // Italic for subsection headings ); styles.Append(new Style( new StyleName { Val = "heading 2" }, new BasedOn { Val = "Normal" }, new NextParagraphStyle { Val = "Normal" }, new UIPriority { Val = 9 }, new PrimaryStyle(), new StyleParagraphProperties( new KeepNext(), new KeepLines(), new SpacingBetweenLines { Before = "180", After = "60" }, new Indentation { FirstLine = "0" }, new OutlineLevel { Val = 1 } ), h2RPr ) { Type = StyleValues.Paragraph, StyleId = "Heading2", Default = false }); // ── Abstract style: 9pt bold "Abstract" label convention ── styles.Append(CreateParagraphStyle( styleId: "Abstract", styleName: "Abstract", basedOn: "Normal", uiPriority: 11 )); // ── Caption style: 8pt (sz=16) ── styles.Append(CreateCaptionStyle( fontSizeHalfPts: "16", // 8pt — IEEE standard caption size color: "000000", italic: false // IEEE captions are not italic )); // ── Page setup: US Letter, IEEE margins, two-column ── // IEEEtran.cls: top=0.75in, bottom=1in, left=right=0.625in var sectPr = new SectionProperties( new WpPageSize { Width = 12240U, Height = 15840U }, // US Letter new PageMargin { Top = 1080, // 0.75in Bottom = 1440, // 1in Left = 900U, // 0.625in Right = 900U, // 0.625in Header = 720U, Footer = 720U, Gutter = 0U }, // Two-column layout: 0.25in gutter = 360 DXA new WpColumns { ColumnCount = 2, Space = "360" } ); // ── Page numbers: bottom center, 8pt ── AddPageNumberFooter(mainPart, sectPr, alignment: JustificationValues.Center, fontSizeHalfPts: "16", // 8pt color: "000000", format: PageNumberFormat.Plain ); // ── Sample content: IEEE paper structure ── // Title (spans both columns via the Title style) body.Append(new Paragraph( new ParagraphProperties( new ParagraphStyleId { Val = "Title" } ), new Run(new Text("Deep Learning Approaches for Automated Document Layout Analysis")) )); // Author line (centered, no indent) body.Append(new Paragraph( new ParagraphProperties( new Justification { Val = JustificationValues.Center }, new SpacingBetweenLines { After = "120" }, new Indentation { FirstLine = "0" } ), new Run( new RunProperties(new FontSize { Val = "20" }, new FontSizeComplexScript { Val = "20" }), new Text("Jane A. Smith, John B. Doe, and Alice C. Johnson") ) )); // Affiliation (centered, italic, smaller) body.Append(new Paragraph( new ParagraphProperties( new Justification { Val = JustificationValues.Center }, new SpacingBetweenLines { After = "240" }, new Indentation { FirstLine = "0" } ), new Run( new RunProperties( new FontSize { Val = "18" }, new FontSizeComplexScript { Val = "18" }, new Italic() ), new Text("Department of Computer Science, Example University, City, Country") ) )); // Abstract body.Append(new Paragraph( new ParagraphProperties( new ParagraphStyleId { Val = "Abstract" }, new Indentation { FirstLine = "0" }, new SpacingBetweenLines { After = "120" } ), new Run( new RunProperties(new Bold(), new Italic(), new FontSize { Val = "18" }, new FontSizeComplexScript { Val = "18" }), new Text("Abstract") { Space = SpaceProcessingModeValues.Preserve } ), new Run( new RunProperties(new FontSize { Val = "18" }, new FontSizeComplexScript { Val = "18" }), new Text("\u2014This paper presents a comprehensive framework for automated document " + "layout analysis using deep learning. We propose a novel architecture that " + "combines convolutional neural networks with transformer-based attention " + "mechanisms to accurately segment and classify document regions. Experimental " + "results on benchmark datasets demonstrate state-of-the-art performance.") { Space = SpaceProcessingModeValues.Preserve } ) )); // I. INTRODUCTION (Roman numeral convention rendered in text) body.Append(new Paragraph( new ParagraphProperties( new ParagraphStyleId { Val = "Heading1" } ), new Run(new Text("I. Introduction")) )); AddSampleParagraph(body, "Document layout analysis is a fundamental step in document " + "understanding pipelines. The ability to automatically identify and classify " + "regions within a document image has applications in digitization, information " + "extraction, and accessibility.", "Normal"); AddSampleParagraph(body, "Recent advances in deep learning have significantly improved " + "the accuracy of layout analysis systems. However, challenges remain in handling " + "complex multi-column layouts and heterogeneous document types.", "Normal"); // II. RELATED WORK body.Append(new Paragraph( new ParagraphProperties( new ParagraphStyleId { Val = "Heading1" } ), new Run(new Text("II. Related Work")) )); // A. Subsection body.Append(new Paragraph( new ParagraphProperties( new ParagraphStyleId { Val = "Heading2" } ), new Run(new Text("A. Traditional Methods")) )); AddSampleParagraph(body, "Early approaches to document layout analysis relied on " + "rule-based methods and connected component analysis. These methods perform well " + "on structured documents but struggle with complex layouts.", "Normal"); // B. Subsection body.Append(new Paragraph( new ParagraphProperties( new ParagraphStyleId { Val = "Heading2" } ), new Run(new Text("B. Deep Learning Methods")) )); AddSampleParagraph(body, "Convolutional neural networks have been successfully applied " + "to document layout analysis, achieving significant improvements over traditional " + "methods on standard benchmarks.", "Normal"); // III. PROPOSED METHOD body.Append(new Paragraph( new ParagraphProperties( new ParagraphStyleId { Val = "Heading1" } ), new Run(new Text("III. Proposed Method")) )); AddSampleParagraph(body, "Our proposed framework integrates a feature pyramid network " + "backbone with a transformer decoder module. The architecture processes document " + "images at multiple scales to capture both fine-grained character-level features " + "and coarse layout structures.", "Normal"); // Table body.Append(CreateThreeLineTable( new[] { "Method", "Precision", "Recall", "F1" }, new[] { new[] { "Rule-based", "0.823", "0.791", "0.807" }, new[] { "CNN-only", "0.912", "0.887", "0.899" }, new[] { "Ours", "0.956", "0.943", "0.949" } } )); AddSampleParagraph(body, "TABLE I: Comparison of layout analysis methods on PubLayNet.", "Caption"); // IV. CONCLUSION body.Append(new Paragraph( new ParagraphProperties( new ParagraphStyleId { Val = "Heading1" } ), new Run(new Text("IV. Conclusion")) )); AddSampleParagraph(body, "We have presented a novel deep learning framework for document " + "layout analysis that achieves state-of-the-art results. Future work will explore " + "extending the approach to handle more diverse document types.", "Normal"); // Section properties must be last child of body body.Append(sectPr); } // ════════════════════════════════════════════════════════════════════════ // RECIPE 7: ACM CONFERENCE (acmart) // ════════════════════════════════════════════════════════════════════════ /// /// Recipe: ACM Conference Paper (acmart.cls v2.x, ACM Author Guide) /// Source: acmart.cls v2.x — the consolidated ACM master article template, /// and the ACM Author Guide for typographic specifications. /// /// Feel: Clean, structured, slightly more open than IEEE. /// Best for: ACM conference proceedings (SIGCHI, SIGMOD, SIGGRAPH, etc.), /// ACM journal submissions. /// /// Design rationale (all values from acmart.cls and ACM Author Guide): /// - US Letter, 1.25in top/bottom, 0.75in L/R: more generous vertical margins /// than IEEE, giving a less cramped appearance. /// - Two columns with 0.33in (480 DXA) gutter: slightly wider than IEEE's /// 0.25in, providing better visual separation between columns. /// - 9pt Times New Roman body (sz=18): ACM's standard body size. The original /// acmart uses Linux Libertine, but TNR is the accessible fallback specified /// in the ACM Author Guide for systems without Libertine. /// - 14.4pt bold title, flush left (sz=29): ACM titles are bold and left-aligned, /// unlike IEEE's centered unbolded titles. The 14.4pt size (1.6x body) creates /// strong but not overwhelming hierarchy. /// - H1: 10pt bold ALL CAPS, flush left, arabic numbered (sz=20). ALL CAPS at /// body size with bold creates definitive section breaks. /// - H2: 10pt bold title case, flush left (sz=20). Bold without caps is the /// minimal step down from H1. /// - H3: 10pt bold italic, flush left (sz=20). Adding italic distinguishes /// from H2 while maintaining the same weight. /// - Single spacing: required for ACM camera-ready format. /// - First-line indent ~10pt (200 DXA): slightly larger than IEEE's 0.125in, /// matching ACM's convention of a roughly 1em indent at 9pt. /// - Captions: 8pt (sz=16) — consistent with ACM figure/table caption style. /// - References: 7.5pt (sz=15) — ACM uses a smaller font for the bibliography /// to maximize space for content. /// public static void CreateACMConferenceDocument(string outputPath) { using var doc = WordprocessingDocument.Create(outputPath, WordprocessingDocumentType.Document); var mainPart = doc.AddMainDocumentPart(); mainPart.Document = new Document(new Body()); var body = mainPart.Document.Body!; // ── Styles ── var stylesPart = mainPart.AddNewPart(); stylesPart.Styles = new Styles(); var styles = stylesPart.Styles; // DocDefaults: Times New Roman 9pt (TNR as Libertine fallback), single spacing styles.Append(new DocDefaults( new RunPropertiesDefault( new RunPropertiesBaseStyle( new RunFonts { // ACM specifies Linux Libertine; TNR is the accessible fallback // per ACM Author Guide for systems without Libertine installed Ascii = "Times New Roman", HighAnsi = "Times New Roman", EastAsia = "SimSun", ComplexScript = "Times New Roman" }, new FontSize { Val = "18" }, // 9pt body (acmart standard) new FontSizeComplexScript { Val = "18" }, new Color { Val = "000000" }, // Pure black new Languages { Val = "en-US", EastAsia = "zh-CN" } ) ), new ParagraphPropertiesDefault( new ParagraphPropertiesBaseStyle( new SpacingBetweenLines { // Single spacing: ACM camera-ready requirement Line = "240", LineRule = LineSpacingRuleValues.Auto, After = "0", Before = "0" }, // First-line indent: ~10pt = 200 DXA (roughly 1em at 9pt) new Indentation { FirstLine = "200" } ) ) )); // ── Normal style ── styles.Append(CreateParagraphStyle( styleId: "Normal", styleName: "Normal", isDefault: true, uiPriority: 0 )); // ── Title style: 14.4pt bold, flush left ── // acmart \maketitle: \LARGE\bfseries, left-aligned var titleRPr = new StyleRunProperties( new RunFonts { Ascii = "Times New Roman", HighAnsi = "Times New Roman", EastAsia = "SimSun", ComplexScript = "Times New Roman" }, new FontSize { Val = "29" }, // 14.4pt (≈29 half-points) new FontSizeComplexScript { Val = "29" }, new Color { Val = "000000" }, new Bold() // ACM titles ARE bold ); styles.Append(new Style( new StyleName { Val = "Title" }, new BasedOn { Val = "Normal" }, new NextParagraphStyle { Val = "Normal" }, new UIPriority { Val = 10 }, new PrimaryStyle(), new StyleParagraphProperties( // Flush left — ACM titles are NOT centered new SpacingBetweenLines { Before = "0", After = "200" }, new Indentation { FirstLine = "0" } ), titleRPr ) { Type = StyleValues.Paragraph, StyleId = "Title", Default = false }); // ── Heading 1: 10pt bold ALL CAPS, flush left ── // acmart \section: \bfseries at body size, uppercase var h1RPr = new StyleRunProperties( new RunFonts { Ascii = "Times New Roman", HighAnsi = "Times New Roman", EastAsia = "SimSun", ComplexScript = "Times New Roman" }, new FontSize { Val = "20" }, // 10pt new FontSizeComplexScript { Val = "20" }, new Color { Val = "000000" }, new Bold(), new Caps() // ALL CAPS for H1 ); styles.Append(new Style( new StyleName { Val = "heading 1" }, new BasedOn { Val = "Normal" }, new NextParagraphStyle { Val = "Normal" }, new UIPriority { Val = 9 }, new PrimaryStyle(), new StyleParagraphProperties( new KeepNext(), new KeepLines(), new SpacingBetweenLines { Before = "240", After = "120" }, new Indentation { FirstLine = "0" }, new OutlineLevel { Val = 0 } ), h1RPr ) { Type = StyleValues.Paragraph, StyleId = "Heading1", Default = false }); // ── Heading 2: 10pt bold title case, flush left ── // acmart \subsection: \bfseries, no case change var h2RPr = new StyleRunProperties( new RunFonts { Ascii = "Times New Roman", HighAnsi = "Times New Roman", EastAsia = "SimSun", ComplexScript = "Times New Roman" }, new FontSize { Val = "20" }, // 10pt new FontSizeComplexScript { Val = "20" }, new Color { Val = "000000" }, new Bold() // Bold, no caps ); styles.Append(new Style( new StyleName { Val = "heading 2" }, new BasedOn { Val = "Normal" }, new NextParagraphStyle { Val = "Normal" }, new UIPriority { Val = 9 }, new PrimaryStyle(), new StyleParagraphProperties( new KeepNext(), new KeepLines(), new SpacingBetweenLines { Before = "200", After = "80" }, new Indentation { FirstLine = "0" }, new OutlineLevel { Val = 1 } ), h2RPr ) { Type = StyleValues.Paragraph, StyleId = "Heading2", Default = false }); // ── Heading 3: 10pt bold italic, flush left ── // acmart \subsubsection: \bfseries\itshape var h3RPr = new StyleRunProperties( new RunFonts { Ascii = "Times New Roman", HighAnsi = "Times New Roman", EastAsia = "SimSun", ComplexScript = "Times New Roman" }, new FontSize { Val = "20" }, // 10pt new FontSizeComplexScript { Val = "20" }, new Color { Val = "000000" }, new Bold(), new Italic() // Bold italic for H3 ); styles.Append(new Style( new StyleName { Val = "heading 3" }, new BasedOn { Val = "Normal" }, new NextParagraphStyle { Val = "Normal" }, new UIPriority { Val = 9 }, new PrimaryStyle(), new StyleParagraphProperties( new KeepNext(), new KeepLines(), new SpacingBetweenLines { Before = "160", After = "60" }, new Indentation { FirstLine = "0" }, new OutlineLevel { Val = 2 } ), h3RPr ) { Type = StyleValues.Paragraph, StyleId = "Heading3", Default = false }); // ── Caption style: 8pt (sz=16) ── styles.Append(CreateCaptionStyle( fontSizeHalfPts: "16", // 8pt — ACM standard caption size color: "000000", italic: false )); // ── References style: 7.5pt (sz=15) ── var refsRPr = new StyleRunProperties( new FontSize { Val = "15" }, // 7.5pt new FontSizeComplexScript { Val = "15" } ); styles.Append(new Style( new StyleName { Val = "References" }, new BasedOn { Val = "Normal" }, new UIPriority { Val = 37 }, new PrimaryStyle(), new StyleParagraphProperties( new SpacingBetweenLines { After = "40" }, new Indentation { FirstLine = "0", Left = "360", Hanging = "360" } ), refsRPr ) { Type = StyleValues.Paragraph, StyleId = "References", Default = false }); // ── Page setup: US Letter, ACM margins, two-column ── // acmart.cls: top=1.25in, bottom=1.25in, left=right=0.75in var sectPr = new SectionProperties( new WpPageSize { Width = 12240U, Height = 15840U }, // US Letter new PageMargin { Top = 1800, // 1.25in Bottom = 1800, // 1.25in Left = 1080U, // 0.75in Right = 1080U, // 0.75in Header = 720U, Footer = 720U, Gutter = 0U }, // Two-column layout: 0.33in gutter = 480 DXA new WpColumns { ColumnCount = 2, Space = "480" } ); // ── Page numbers: bottom center, 8pt ── AddPageNumberFooter(mainPart, sectPr, alignment: JustificationValues.Center, fontSizeHalfPts: "16", // 8pt color: "000000", format: PageNumberFormat.Plain ); // ── Sample content: ACM paper structure ── // Title (flush left, bold) body.Append(new Paragraph( new ParagraphProperties( new ParagraphStyleId { Val = "Title" } ), new Run(new Text("Towards Scalable Graph Neural Networks for Heterogeneous Document Understanding")) )); // Author block (flush left) body.Append(new Paragraph( new ParagraphProperties( new SpacingBetweenLines { After = "60" }, new Indentation { FirstLine = "0" } ), new Run( new RunProperties(new FontSize { Val = "18" }, new FontSizeComplexScript { Val = "18" }), new Text("Maria R. Garcia") ) )); body.Append(new Paragraph( new ParagraphProperties( new SpacingBetweenLines { After = "60" }, new Indentation { FirstLine = "0" } ), new Run( new RunProperties( new FontSize { Val = "16" }, new FontSizeComplexScript { Val = "16" }, new Italic() ), new Text("Example University, City, Country") ) )); body.Append(new Paragraph( new ParagraphProperties( new SpacingBetweenLines { After = "200" }, new Indentation { FirstLine = "0" } ), new Run( new RunProperties( new FontSize { Val = "16" }, new FontSizeComplexScript { Val = "16" } ), new Text("garcia@example.edu") ) )); // Abstract section body.Append(new Paragraph( new ParagraphProperties( new Indentation { FirstLine = "0" }, new SpacingBetweenLines { After = "80" } ), new Run( new RunProperties( new Bold(), new FontSize { Val = "18" }, new FontSizeComplexScript { Val = "18" } ), new Text("ABSTRACT") ) )); AddSampleParagraph(body, "Graph neural networks (GNNs) have emerged as a powerful tool for " + "document understanding tasks that require modeling relationships between document " + "elements. We present a scalable GNN architecture that processes heterogeneous " + "document graphs containing text, table, and figure nodes. Our approach achieves " + "competitive results while reducing computational costs by 40%.", "Normal"); // CCS Concepts / Keywords (ACM-specific metadata) body.Append(new Paragraph( new ParagraphProperties( new Indentation { FirstLine = "0" }, new SpacingBetweenLines { Before = "120", After = "120" } ), new Run( new RunProperties( new Bold(), new FontSize { Val = "16" }, new FontSizeComplexScript { Val = "16" } ), new Text("Keywords: ") { Space = SpaceProcessingModeValues.Preserve } ), new Run( new RunProperties( new FontSize { Val = "16" }, new FontSizeComplexScript { Val = "16" } ), new Text("graph neural networks, document understanding, scalability") ) )); // 1 INTRODUCTION (arabic numbered, ALL CAPS via style) body.Append(new Paragraph( new ParagraphProperties( new ParagraphStyleId { Val = "Heading1" } ), new Run(new Text("1 Introduction")) )); AddSampleParagraph(body, "Document understanding encompasses a broad set of tasks including " + "layout analysis, information extraction, and document classification. Recent work " + "has demonstrated that modeling the structural relationships between document " + "elements can significantly improve performance on these tasks.", "Normal"); AddSampleParagraph(body, "Graph neural networks provide a natural framework for representing " + "and reasoning about document structure. However, existing GNN-based approaches face " + "scalability challenges when processing large or complex documents.", "Normal"); // 2 RELATED WORK body.Append(new Paragraph( new ParagraphProperties( new ParagraphStyleId { Val = "Heading1" } ), new Run(new Text("2 Related Work")) )); // 2.1 Subsection body.Append(new Paragraph( new ParagraphProperties( new ParagraphStyleId { Val = "Heading2" } ), new Run(new Text("2.1 Document Representation Learning")) )); AddSampleParagraph(body, "Pre-trained language models have been adapted for document " + "understanding by incorporating layout information. LayoutLM and its successors " + "demonstrate the value of multi-modal pre-training for document tasks.", "Normal"); // 2.1.1 Sub-subsection body.Append(new Paragraph( new ParagraphProperties( new ParagraphStyleId { Val = "Heading3" } ), new Run(new Text("2.1.1 Multi-Modal Approaches")) )); AddSampleParagraph(body, "Multi-modal approaches jointly model text, layout, and visual " + "features. This integration has proven critical for tasks where visual appearance " + "carries semantic meaning, such as form understanding.", "Normal"); // 3 METHOD body.Append(new Paragraph( new ParagraphProperties( new ParagraphStyleId { Val = "Heading1" } ), new Run(new Text("3 Proposed Method")) )); AddSampleParagraph(body, "We propose HetDocGNN, a heterogeneous graph neural network " + "designed specifically for document understanding. The architecture operates on " + "a document graph where nodes represent text blocks, tables, and figures, and " + "edges encode spatial and logical relationships.", "Normal"); // Results table body.Append(CreateThreeLineTable( new[] { "Model", "DocVQA", "InfoVQA", "Params" }, new[] { new[] { "LayoutLMv3", "83.4", "45.1", "133M" }, new[] { "UDOP", "84.7", "47.4", "770M" }, new[] { "HetDocGNN", "85.2", "48.9", "89M" } } )); AddSampleParagraph(body, "Table 1: Comparison on document understanding benchmarks.", "Caption"); // 4 CONCLUSION body.Append(new Paragraph( new ParagraphProperties( new ParagraphStyleId { Val = "Heading1" } ), new Run(new Text("4 Conclusion")) )); AddSampleParagraph(body, "We have presented HetDocGNN, a scalable graph neural network " + "for heterogeneous document understanding. Our approach achieves state-of-the-art " + "results with significantly fewer parameters than competing methods.", "Normal"); // REFERENCES section body.Append(new Paragraph( new ParagraphProperties( new ParagraphStyleId { Val = "Heading1" } ), new Run(new Text("References")) )); // Sample references in ACM style (7.5pt) AddSampleParagraph(body, "[1] Yiheng Xu, et al. 2020. LayoutLM: Pre-training of Text and " + "Layout for Document Image Understanding. In KDD '20. ACM, 1192\u20131200.", "References"); AddSampleParagraph(body, "[2] Zhiliang Peng, et al. 2023. UDOP: Unifying Vision, Text, " + "and Layout for Universal Document Processing. In CVPR '23. 19254\u201319264.", "References"); AddSampleParagraph(body, "[3] Zilong Wang, et al. 2022. DocFormer: End-to-End Transformer " + "for Document Understanding. In ICCV '22. 993\u20131003.", "References"); // Section properties must be last child of body body.Append(sectPr); } }