Aspose::Words::Fields::FieldEQ class
Contents
[
Hide
]FieldEQ class
Implements the EQ field. To learn more, visit the Working with Fields documentation article.
class FieldEQ : public Aspose::Words::Fields::Field
Methods
Method | Description |
---|---|
AsOfficeMath() | Returns Office Math object corresponded to the EQ field. |
get_DisplayResult() | Gets the text that represents the displayed field result. |
get_End() const | Gets the node that represents the field end. |
get_FieldEnd() const | Gets the node that represents the field end. |
get_FieldStart() const | Gets the node that represents the start of the field. |
get_Format() | Gets a FieldFormat object that provides typed access to field’s formatting. |
get_IsDirty() | Gets whether the current result of the field is no longer correct (stale) due to other modifications made to the document. |
get_IsLocked() | Gets or sets whether the field is locked (should not recalculate its result). |
get_LocaleId() | Gets or sets the LCID of the field. |
get_Result() | Gets or sets text that is between the field separator and field end. |
get_Separator() | Gets the node that represents the field separator. Can be null. |
get_Start() const | Gets the node that represents the start of the field. |
virtual get_Type() const | Gets the Microsoft Word field type. |
GetFieldCode() | Returns text between field start and field separator (or field end if there is no separator). Both field code and field result of child fields are included. |
GetFieldCode(bool) | Returns text between field start and field separator (or field end if there is no separator). |
GetType() const override | |
Is(const System::TypeInfo&) const override | |
Remove() | Removes the field from the document. Returns a node right after the field. If the field’s end is the last child of its parent node, returns its parent paragraph. If the field is already removed, returns null. |
set_IsDirty(bool) | Sets whether the current result of the field is no longer correct (stale) due to other modifications made to the document. |
set_IsLocked(bool) | Setter for Aspose::Words::Fields::Field::get_IsLocked. |
set_LocaleId(int32_t) | Setter for Aspose::Words::Fields::Field::get_LocaleId. |
set_Result(const System::String&) | Setter for Aspose::Words::Fields::Field::get_Result. |
static Type() | |
Unlink() | Performs the field unlink. |
Update() | Performs the field update. Throws if the field is being updated already. |
Update(bool) | Performs a field update. Throws if the field is being updated already. |
Examples
Shows how to use the EQ field to display a variety of mathematical equations.
void FieldEQ_()
{
auto doc = MakeObject<Document>();
auto builder = MakeObject<DocumentBuilder>(doc);
// An EQ field displays a mathematical equation consisting of one or many elements.
// Each element takes the following form: [switch][options][arguments].
// There may be one switch, and several possible options.
// The arguments are a set of coma-separated values enclosed by round braces.
// Here we use a document builder to insert an EQ field, with an "\f" switch, which corresponds to "Fraction".
// We will pass values 1 and 4 as arguments, and we will not use any options.
// This field will display a fraction with 1 as the numerator and 4 as the denominator.
SharedPtr<FieldEQ> field = InsertFieldEQ(builder, u"\\f(1,4)");
ASSERT_EQ(u" EQ \\f(1,4)", field->GetFieldCode());
// One EQ field may contain multiple elements placed sequentially.
// We can also nest elements inside one another by placing the inner elements
// inside the argument brackets of outer elements.
// We can find the full list of switches, along with their uses here:
// https://blogs.msdn.microsoft.com/murrays/2018/01/23/microsoft-word-eq-field/
// Below are applications of nine different EQ field switches that we can use to create different kinds of objects.
// 1 - Array switch "\a", aligned left, 2 columns, 3 points of horizontal and vertical spacing:
InsertFieldEQ(builder, u"\\a \\al \\co2 \\vs3 \\hs3(4x,- 4y,-4x,+ y)");
// 2 - Bracket switch "\b", bracket character "[", to enclose the contents in a set of square braces:
// Note that we are nesting an array inside the brackets, which will altogether look like a matrix in the output.
InsertFieldEQ(builder, u"\\b \\bc\\[ (\\a \\al \\co3 \\vs3 \\hs3(1,0,0,0,1,0,0,0,1))");
// 3 - Displacement switch "\d", displacing text "B" 30 spaces to the right of "A", displaying the gap as an underline:
InsertFieldEQ(builder, u"A \\d \\fo30 \\li() B");
// 4 - Formula consisting of multiple fractions:
InsertFieldEQ(builder, u"\\f(d,dx)(u + v) = \\f(du,dx) + \\f(dv,dx)");
// 5 - Integral switch "\i", with a summation symbol:
InsertFieldEQ(builder, u"\\i \\su(n=1,5,n)");
// 6 - List switch "\l":
InsertFieldEQ(builder, u"\\l(1,1,2,3,n,8,13)");
// 7 - Radical switch "\r", displaying a cubed root of x:
InsertFieldEQ(builder, u"\\r (3,x)");
// 8 - Subscript/superscript switch "/s", first as a superscript and then as a subscript:
InsertFieldEQ(builder, u"\\s \\up8(Superscript) Text \\s \\do8(Subscript)");
// 9 - Box switch "\x", with lines at the top, bottom, left and right of the input:
InsertFieldEQ(builder, u"\\x \\to \\bo \\le \\ri(5)");
// Some more complex combinations.
InsertFieldEQ(builder, u"\\a \\ac \\vs1 \\co1(lim,n→∞) \\b (\\f(n,n2 + 12) + \\f(n,n2 + 22) + ... + \\f(n,n2 + n2))");
InsertFieldEQ(builder, u"\\i (,, \\b(\\f(x,x2 + 3x + 2))) \\s \\up10(2)");
InsertFieldEQ(builder, u"\\i \\in( tan x, \\s \\up2(sec x), \\b(\\r(3) )\\s \\up4(t) \\s \\up7(2) dt)");
doc->Save(ArtifactsDir + u"Field.EQ.docx");
}
static SharedPtr<FieldEQ> InsertFieldEQ(SharedPtr<DocumentBuilder> builder, String args)
{
auto field = System::ExplicitCast<FieldEQ>(builder->InsertField(FieldType::FieldEquation, true));
builder->MoveTo(field->get_Separator());
builder->Write(args);
builder->MoveTo(field->get_Start()->get_ParentNode());
builder->InsertParagraph();
return field;
}
See Also
- Class Field
- Namespace Aspose::Words::Fields
- Library Aspose.Words for C++