MathObjectType

MathObjectType enumeration

يحدد نوع كائن Office الرياضي .

public enum MathObjectType

قيم

اسم قيمة وصف
OMath 0 مثيل النص الرياضي .
OMathPara 1 فقرة رياضية ، أو عرض منطقة رياضية ، تحتوي على واحد أو أكثرOMath العناصر الموجودة في وضع العرض.
Accent 2 دالة تشكيل ، تتكون من قاعدة وعلامة تشكيل مجمعة .
Bar 3 دالة شريطية ، تتكون من وسيطة أساسية وشريط علوي أو شريط سفلي.
BorderBox 4 كائن مربع الحدود ، يتكون من حد مرسوم حول مثيل نص رياضي (مثل صيغة أو معادلة)
Box 5 كائن Box ، الذي يُستخدم لتجميع مكونات معادلة أو مثيل آخر للنص الرياضي.
Delimiter 6 كائن محدد ، يتكون من محددات الفتح والإغلاق (مثل الأقواس والأقواس والأقواس والأشرطة الرأسية) ، وعنصر مضمن بالداخل.
Degree 7 درجة في الجذر الرياضي .
Argument 8 كائن وسيطة. إحاطة كيانات Office Math عند استخدامها كوسيطات لكيانات Office Math الأخرى.
Array 9 كائن صفيف يتكون من معادلة واحدة أو أكثر أو تعبيرات أو نص رياضي آخر يعمل يمكن ضبطه رأسياً كوحدة فيما يتعلق بالنص المحيط على السطر .
Fraction 10 كائن كسر يتكون من بسط ومقام مفصولين بشريط كسر .
Denominator 11 مقام كائن كسر .
Numerator 12 بسط كائن الكسر .
Function 13 كائن تطبيق الوظيفة ، والذي يتكون من اسم دالة وعنصر وسيطة يتم التعامل معه.
FunctionName 14 اسم الوظيفة. على سبيل المثال ، أسماء الوظائف هي sin و cos.
GroupCharacter 15 كائن مجموعة الأحرف ، يتكون من حرف مرسوم أعلى أو أسفل النص ، غالبًا بغرض تجميع العناصر بشكل مرئي
Limit 16 الحد الأدنى لملفLowerLimit الكائن و الحد الأعلى لملفUpperLimit الوظيفة. _
LowerLimit 17 كائن ذو حد أدنى ، يتكون من نص على خط الأساس ونص بحجم أصغر أسفله مباشرةً.
UpperLimit 18 كائن ذو حد أعلى ، يتكون من نص في الخط الأساسي ونص بحجم أصغر فوقه مباشرةً .
Matrix 19 عنصر مصفوفة يتكون من عنصر واحد أو أكثر تم وضعه في صف واحد أو أكثر وعمود واحد أو أكثر.
MatrixRow 20 صف واحد من المصفوفة .
NAry 21 كائن N-ary ، يتكون من كائن n-ary وقاعدة (أو معامل) وحدود علوية وسفلية اختيارية.
Phantom 22 كائن فانتوم .
Radical 23 كائن جذري يتكون من جذري وعنصر أساسي ودرجة اختيارية .
SubscriptPart 24 نص منخفض للكائن الذي يمكن أن يحتوي على جزء منخفض.
SuperscriptPart 25 نص مرتفع للكائن المرتفع .
PreSubSuperscript 26 كائن Pre-Sub-Superscript ، والذي يتكون من عنصر أساسي وخط منخفض ومرتفع موضوع على يسار القاعدة .
Subscript 27 كائن منخفض ، يتكون من عنصر أساسي ونص صغير الحجم موضوع أسفل وإلى اليمين .
SubSuperscript 28 كائن فرعي مرتفع ، يتكون من عنصر أساسي ، نص برمجي صغير الحجم موضوع أسفل وإلى اليمين ، ونص برمجي صغير الحجم موضوع أعلى وإلى اليمين .
Supercript 29 كائن مرتفع ، يتكون من عنصر أساسي ونص صغير الحجم يتم وضعه في الأعلى وإلى اليمين .

أمثلة

يوضح كيفية طباعة بنية العقدة لكل عقدة رياضية للمكتب في مستند.

public void OfficeMathToText()
{
    Document doc = new Document(MyDir + "DocumentVisitor-compatible features.docx");
    OfficeMathStructurePrinter visitor = new OfficeMathStructurePrinter();

    // عندما نحصل على عقدة مركبة لقبول زائر المستند ، يزور الزائر عقدة القبول ،
    // ثم يعبر جميع أبناء العقدة بطريقة العمق أولاً.
    // يمكن للزائر قراءة كل عقدة تمت زيارتها وتعديلها.
    doc.Accept(visitor);

    Console.WriteLine(visitor.GetText());
}

/// <summary>
/// يتجاوز الشجرة غير الثنائية للعقد الفرعية للعقد.
/// ينشئ خريطة في شكل سلسلة لجميع عقد OfficeMath التي تمت مواجهتها وأطفالها.
/// </summary>
public class OfficeMathStructurePrinter : DocumentVisitor
{
    public OfficeMathStructurePrinter()
    {
        mBuilder = new StringBuilder();
        mVisitorIsInsideOfficeMath = false;
    }

    /// <summary>
    /// يحصل على النص العادي للمستند الذي قام الزائر بتجميعه.
    /// </summary>
    public string GetText()
    {
        return mBuilder.ToString();
    }

    /// <summary>
    /// يتم الاستدعاء عند مواجهة عقدة تشغيل في المستند.
    /// </summary>
    public override VisitorAction VisitRun(Run run)
    {
        if (mVisitorIsInsideOfficeMath) IndentAndAppendLine("[Run] \"" + run.GetText() + "\"");

        return VisitorAction.Continue;
    }

    /// <summary>
    /// يتم الاستدعاء عند مصادفة عقدة OfficeMath في المستند.
    /// </summary>
    public override VisitorAction VisitOfficeMathStart(OfficeMath officeMath)
    {
        IndentAndAppendLine("[OfficeMath start] Math object type: " + officeMath.MathObjectType);
        mDocTraversalDepth++;
        mVisitorIsInsideOfficeMath = true;

        return VisitorAction.Continue;
    }

    /// <summary>
    /// يتم استدعاؤها بعد زيارة جميع العقد الفرعية لعقدة OfficeMath.
    /// </summary>
    public override VisitorAction VisitOfficeMathEnd(OfficeMath officeMath)
    {
        mDocTraversalDepth--;
        IndentAndAppendLine("[OfficeMath end]");
        mVisitorIsInsideOfficeMath = false;

        return VisitorAction.Continue;
    }

    /// <summary>
    /// قم بإلحاق سطر بـ StringBuilder وقم بعمل مسافة بادئة له اعتمادًا على مدى عمق الزائر في شجرة المستند.
    /// </summary>
    /// < param name = "text" > < / param >
    private void IndentAndAppendLine(string text)
    {
        for (int i = 0; i < mDocTraversalDepth; i++) mBuilder.Append("|  ");

        mBuilder.AppendLine(text);
    }

    private bool mVisitorIsInsideOfficeMath;
    private int mDocTraversalDepth;
    private readonly StringBuilder mBuilder;
}

أنظر أيضا