0
我想通過OMath命名空間向Word寫一個方程式,但我無法獲得正確生成的轉義字符。當我執行下面的控制檯程序時,它恰當地放置分子和除數,但轉義字符「\ delta」仍然完全按照輸入,而不是轉換成小寫字母delta的希臘符號。OMath buildup()轉義字符
如果我在\ delta中的'a'之後設置光標,並按下空格,它將進行轉換。如果從功能區點擊專業版,也會轉換。
有人可以解釋如何以編程方式創建一個轉義字符,並讓它正確顯示?
static void Main(string[] args)
{
string fName = @"C:\Users\Desktop\Doc_1.docx";
Word._Application myApp = new Word.Application();
myApp.Visible = true;
Word.Document myDoc = myApp.Documents.Open(fName);
Word.Range myFunctionR = myApp.Selection.OMaths.Add(myApp.Selection.Range);
Word.OMathFunction myFunction = myApp.Selection.OMaths[1].Functions.Add(
myApp.Selection.Range, Word.WdOMathFunctionType.wdOMathFunctionBox);
Word.OMathBox myBox = myFunction.Box;
myBox.E.Range.Text = @"\delta = (PL)/(AE)";
myBox.E.BuildUp();
}
如果我貼出來,從MS Word中的MathML和它看起來像這樣:
正確的/所需的版本:
<mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math">
<mml:mi>δ</mml:mi><mml:mi>
<mml:mi> </mml:mi>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:mfrac>
錯誤/編程版本:
<mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math">
<mml:mo>\</mml:mo>
<mml:mi>d</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi> </mml:mi>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:mfrac>