OMath名前空間を介してWordに式を書き込もうとしていますが、エスケープ文字を正しく生成できません。以下のコンソールプログラムを実行すると、分子と除数が正しく配置されますが、エスケープ文字 "\ delta"は、小文字のデルタのギリシャ記号に変わるのではなく、入力されたとおりにそのまま残ります。OMath buildup()エスケープ文字
\ deltaの 'a'の直後にカーソルを置いてspaceを押すと、それが変換されます。私がリボンからプロフェッショナルをクリックすると、また変換します。
エスケープ文字をプログラムで作成して正しく表示する方法を説明できる人はいますか?
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>
誤った/プログラマバージョン:
この例では210<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>