DifferentialGeometry - Maple Programming Help

Home : Support : Online Help : Mathematics : DifferentialGeometry : DifferentialGeometry/Preferences

DifferentialGeometry

 Preferences

 Calling Sequence Preferences(keyword) Preferences(keyword, value)

Parameters

 keyword - a string, the name of the particular preference value - the value to be assigned to the preference

Description

 • This command allows the user to control various display conventions used by the DifferentialGeometry package; to specify the LaTeX formatting of DifferentialGeometry objects such as vectors, differential forms and tensors; and to specify how commonly used Maple commands are used internally by DifferentialGeometry procedures.
 • The following are the admissible keywords strings:

 • The  paragraphs below describes the use of each of these keywords.
 • This command is part of the DifferentialGeometry package, and so can be used in the form Preferences(...) only after executing the command with(DifferentialGeometry).  It can always be used in the long form DifferentialGeometry:-Preferences.

Details

"DisplayFrameDefinitions"

This preference controls what information is displayed when the command DGsetup is executed. When this preference is false, no display is displayed.  When this preference is true, the names of the coordinate variables and the labels for the frame vectors and coframe 1-forms are displayed.  The default preference is false.

 > with(DifferentialGeometry):
 > Preferences("DisplayFrameDefinitions");
 ${\mathrm{false}}$ (1)
 > DGsetup([x, y, z], E3);
 ${\mathrm{frame name: E3}}$ (2)
 > Preferences("DisplayFrameDefinitions", true);
 ${\mathrm{false}}$ (3)
 > DGsetup([x, y, z], E3);
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}{,}{y}{,}{z}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{D_x}}{,}{\mathrm{D_y}}{,}{\mathrm{D_z}}\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{dx}}{,}{\mathrm{dy}}{,}{\mathrm{dz}}\right]$
 ${\mathrm{frame name: E3}}$ (4)
 "ErrorInfoLevel" This preference controls the amount of information provided by an error message from a DifferentialGeometry command.  The default for ErrorInfoLevel is 1.
 "ErrorPrintLength" For many of the error messages returned by the DifferentialGeometry commands, it is not necessary to display all the component information of the vectors, differential forms, and tensors provided as input.  By suppressing the component information, the error messages are generally much easier to read. The ErrorPrintLength preference controls the number of components which will be displayed -- the first k components will be displayed if the sum of their lengths does not exceed the integer specified by the ErrorPrintLength preference.  The length of each component is calculated using the Maple length command.  The default value for this preference is 0 so that no component information is displayed.  To display all component information, set this preference to infinity.

"HistoryDepth"

The Tools command CalculationHistory will store the results of certain critical intermediate computations which the user may wish to view.  The HistoryDepth preference specifies the number of such computations to store.  The default value for this preference is 10.

 > with(DifferentialGeometry):

To illustrate this preference, we create a small procedure called Test and store some values calculated by this program using the CalculationHistory command.

 > Test := proc(n) local i; for i to n do Tools:-CalculationHistory:-Update("Test", [i, i^2]) od; n^2 end:

Run the program Test.

 > Test(25);
 ${625}$ (5)

Retrieve the calculated values.

 > Tools:-CalculationHistory:-Get("Test");
 $\left[\left[{25}{,}{625}\right]{,}\left[{24}{,}{576}\right]{,}\left[{23}{,}{529}\right]{,}\left[{22}{,}{484}\right]{,}\left[{21}{,}{441}\right]{,}\left[{20}{,}{400}\right]{,}\left[{19}{,}{361}\right]{,}\left[{18}{,}{324}\right]{,}\left[{17}{,}{289}\right]{,}\left[{16}{,}{256}\right]\right]$ (6)

Change the HistoryDepth preference to 3.

 > Preferences("HistoryDepth", 3);
 ${10}$ (7)

 • Rerun the program Test and retrieve the calculated values.  This time only 3 values are stored.
 > Test(25);
 ${625}$ (8)
 > Tools:-CalculationHistory:-Get("Test");
 $\left[\left[{25}{,}{625}\right]{,}\left[{24}{,}{576}\right]{,}\left[{23}{,}{529}\right]\right]$ (9)

"JetNotation"

In the mathematical literature, there are two standard index notations for representing derivatives of a function.  For example, if u = u(x, y) then we have:

JetNotation1: u[1] = u_x, u[2] = u_y, u[1, 1] = u_xx, u[1, 2] = u_xy, u[2, 2] = u_yy, u[1, 1, 1] = u_xxx, u[1, 1, 2] = u_xxy, u[1, 2, 2] = u_xyy, u[2, 2, 2] = u_yyy.

JetNotation2: u[1, 0] = u_x, u[0, 1] = u_y, u[2, 0] = u_xx, u[1, 1] = u_xy, u[0, 2] = u_yy, u[3, 0] = u_xxx, u[2, 1] = u_xxy, u[1, 2] = u_xyy, u[0, 3] = u_yyy.

 • The JetNotation preference determines which notation is used by the DifferentialGeometry package (and the JetCalculus subpackage).  The default is JetNotation1.
 > with(DifferentialGeometry):
 > Preferences("JetNotation");
 ${"JetNotation1"}$ (10)
 > DGsetup([x,y], [u], Jet, 3, verbose);
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}{,}{y}{,}{{u}}_{{[}{]}}{,}{{u}}_{{1}}{,}{{u}}_{{2}}{,}{{u}}_{{1}{,}{1}}{,}{{u}}_{{1}{,}{2}}{,}{{u}}_{{2}{,}{2}}{,}{{u}}_{{1}{,}{1}{,}{1}}{,}{{u}}_{{1}{,}{1}{,}{2}}{,}{{u}}_{{1}{,}{2}{,}{2}}{,}{{u}}_{{2}{,}{2}{,}{2}}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{D_x}}{,}{\mathrm{D_y}}{,}{\mathrm{D_u}}\left[\right]{,}{{\mathrm{D_u}}}_{{1}}{,}{{\mathrm{D_u}}}_{{2}}{,}{{\mathrm{D_u}}}_{{1}{,}{1}}{,}{{\mathrm{D_u}}}_{{1}{,}{2}}{,}{{\mathrm{D_u}}}_{{2}{,}{2}}{,}{{\mathrm{D_u}}}_{{1}{,}{1}{,}{1}}{,}{{\mathrm{D_u}}}_{{1}{,}{1}{,}{2}}{,}{{\mathrm{D_u}}}_{{1}{,}{2}{,}{2}}{,}{{\mathrm{D_u}}}_{{2}{,}{2}{,}{2}}\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{dx}}{,}{\mathrm{dy}}{,}{\mathrm{du}}\left[\right]{,}{{\mathrm{du}}}_{{1}}{,}{{\mathrm{du}}}_{{2}}{,}{{\mathrm{du}}}_{{1}{,}{1}}{,}{{\mathrm{du}}}_{{1}{,}{2}}{,}{{\mathrm{du}}}_{{2}{,}{2}}{,}{{\mathrm{du}}}_{{1}{,}{1}{,}{1}}{,}{{\mathrm{du}}}_{{1}{,}{1}{,}{2}}{,}{{\mathrm{du}}}_{{1}{,}{2}{,}{2}}{,}{{\mathrm{du}}}_{{2}{,}{2}{,}{2}}\right]$
 ${\mathrm{The following type \left[1,0\right] biforms have been defined and protected::}}$
 $\left[{\mathrm{Dx}}{,}{\mathrm{Dy}}\right]$
 ${\mathrm{The following type \left[0,1\right] biforms \left(contact 1-forms\right) have been defined and protected::}}$
 $\left[{\mathrm{Cu}}\left[\right]{,}{{\mathrm{Cu}}}_{{1}}{,}{{\mathrm{Cu}}}_{{2}}{,}{{\mathrm{Cu}}}_{{1}{,}{1}}{,}{{\mathrm{Cu}}}_{{1}{,}{2}}{,}{{\mathrm{Cu}}}_{{2}{,}{2}}{,}{{\mathrm{Cu}}}_{{1}{,}{1}{,}{1}}{,}{{\mathrm{Cu}}}_{{1}{,}{1}{,}{2}}{,}{{\mathrm{Cu}}}_{{1}{,}{2}{,}{2}}{,}{{\mathrm{Cu}}}_{{2}{,}{2}{,}{2}}\right]$
 ${\mathrm{frame name: Jet}}$ (11)
 > Preferences("JetNotation", "JetNotation2");
 ${"JetNotation1"}$ (12)
 > DGsetup([x, y], [u], Jet, 3, verbose);
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}{,}{y}{,}{{u}}_{{0}{,}{0}}{,}{{u}}_{{1}{,}{0}}{,}{{u}}_{{0}{,}{1}}{,}{{u}}_{{2}{,}{0}}{,}{{u}}_{{1}{,}{1}}{,}{{u}}_{{0}{,}{2}}{,}{{u}}_{{3}{,}{0}}{,}{{u}}_{{2}{,}{1}}{,}{{u}}_{{1}{,}{2}}{,}{{u}}_{{0}{,}{3}}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{D_x}}{,}{\mathrm{D_y}}{,}{{\mathrm{D_u}}}_{{0}{,}{0}}{,}{{\mathrm{D_u}}}_{{1}{,}{0}}{,}{{\mathrm{D_u}}}_{{0}{,}{1}}{,}{{\mathrm{D_u}}}_{{2}{,}{0}}{,}{{\mathrm{D_u}}}_{{1}{,}{1}}{,}{{\mathrm{D_u}}}_{{0}{,}{2}}{,}{{\mathrm{D_u}}}_{{3}{,}{0}}{,}{{\mathrm{D_u}}}_{{2}{,}{1}}{,}{{\mathrm{D_u}}}_{{1}{,}{2}}{,}{{\mathrm{D_u}}}_{{0}{,}{3}}\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{dx}}{,}{\mathrm{dy}}{,}{{\mathrm{du}}}_{{0}{,}{0}}{,}{{\mathrm{du}}}_{{1}{,}{0}}{,}{{\mathrm{du}}}_{{0}{,}{1}}{,}{{\mathrm{du}}}_{{2}{,}{0}}{,}{{\mathrm{du}}}_{{1}{,}{1}}{,}{{\mathrm{du}}}_{{0}{,}{2}}{,}{{\mathrm{du}}}_{{3}{,}{0}}{,}{{\mathrm{du}}}_{{2}{,}{1}}{,}{{\mathrm{du}}}_{{1}{,}{2}}{,}{{\mathrm{du}}}_{{0}{,}{3}}\right]$
 ${\mathrm{The following type \left[1,0\right] biforms have been defined and protected::}}$
 $\left[{\mathrm{Dx}}{,}{\mathrm{Dy}}\right]$
 ${\mathrm{The following type \left[0,1\right] biforms \left(contact 1-forms\right) have been defined and protected::}}$
 $\left[{{\mathrm{Cu}}}_{{0}{,}{0}}{,}{{\mathrm{Cu}}}_{{1}{,}{0}}{,}{{\mathrm{Cu}}}_{{0}{,}{1}}{,}{{\mathrm{Cu}}}_{{2}{,}{0}}{,}{{\mathrm{Cu}}}_{{1}{,}{1}}{,}{{\mathrm{Cu}}}_{{0}{,}{2}}{,}{{\mathrm{Cu}}}_{{3}{,}{0}}{,}{{\mathrm{Cu}}}_{{2}{,}{1}}{,}{{\mathrm{Cu}}}_{{1}{,}{2}}{,}{{\mathrm{Cu}}}_{{0}{,}{3}}\right]$
 ${\mathrm{frame name: Jet}}$ (13)

"Keywords"

The option Keywords returns the list of all admissible keywords for the Preferences procedure.

 > with(DifferentialGeometry):
 > Preferences("Keywords");
 $\left[{"DisplayFrameDefinitions"}{,}{"ErrorInfoLevel"}{,}{"ErrorPrintLength"}{,}{"HistoryDepth"}{,}{"JetNotation"}{,}{"Macros"}{,}{"PrettyPrint"}{,}{"PromptLength"}{,}{"SafeMode"}{,}{"ShowFramePrompt"}{,}{"TeXBiformList"}{,}{"TeXFormList"}{,}{"TeXLineBreak"}{,}{"TeXPrintOrder"}{,}{"TeXVectorList"}{,}{"TensorDisplay"}{,}{"VectorDisplay"}{,}{"WedgeDisplay"}{,}{"dsolve"}{,}{"is"}{,}{"nullspace"}{,}{"pdsolve"}{,}{"rref"}{,}{"simplification"}{,}{"solve"}\right]$ (14)

"PrettyPrint"

With the PrettyPrint preference set to true, the components of vectors, differential forms and tensors are always displayed on the main text line -- they will not appear as numerators in fractions.  This is somewhat easier to read but has the disadvantage that the resulting outline (for vectors and 1-forms) cannot be copied and pasted.  The default for the PrettyPrint preference is false.

 > with(DifferentialGeometry):
 > DGsetup([x, y, z], M):
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}{,}{y}{,}{z}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{D_x}}{,}{\mathrm{D_y}}{,}{\mathrm{D_z}}\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{dx}}{,}{\mathrm{dy}}{,}{\mathrm{dz}}\right]$ (15)
 > Preferences("PrettyPrint");
 ${\mathrm{false}}$ (16)
 > X := evalDG(1/(x^2 + y^2)*dx &w dy - dx &w dz);
 ${X}{≔}\frac{{\mathrm{dx}}}{{{x}}^{{2}}{+}{{y}}^{{2}}}{}{\bigwedge }{}{\mathrm{dy}}{-}\left({\mathrm{dx}}{}{\bigwedge }{}{\mathrm{dz}}\right)$ (17)
 > Preferences("PrettyPrint", true);
 ${\mathrm{false}}$ (18)
 > X := evalDG(1/(x^2 + y^2)*dx &w dy - dx &w dz);
 ${X}{≔}\left({\left(\frac{{1}}{{{x}}^{{2}}{+}{{y}}^{{2}}}\right)}_{{}}{}{\mathrm{dx}}\right){}{\bigwedge }{}{\mathrm{dy}}{-}\left({\mathrm{dx}}{}{\bigwedge }{}{\mathrm{dz}}\right)$ (19)

"PromptLength"

This preference specifies the maximum number of characters that will be displayed in the frame prompt.

 > with(DifferentialGeometry):
 > DGsetup([x], Newton);
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{D_x}}\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{dx}}\right]$
 ${\mathrm{frame name: Newton}}$ (20)
 > Preferences("PromptLength", 4);
 ${1000}$ (21)

"SafeMode"

With the SafeMode preference set to false, no global assignments are made for the coordinate vectors and 1-forms when the command DGsetup is called.  Use this preference when writing programs in which temporary manifolds, Lie algebras, etc... need to be constructed.  This will avoid introducing globals into the Maple namespace.

 > with(DifferentialGeometry):
 > Preferences("SafeMode");
 ${\mathrm{false}}$ (22)
 > DGsetup([x], R1):
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{D_x}}\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{dx}}\right]$ (23)
 > assigned(D_x), assigned(dx);
 ${\mathrm{true}}{,}{\mathrm{true}}$ (24)

Now set the SafeMode preference to true.  The names D_y and dy are not assigned nor are they protected.

 > Preferences("SafeMode", true);
 ${\mathrm{false}}$ (25)
 > DGsetup([y], R2):
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{y}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[\left[\left[{"vector"}{,}{\mathrm{R2}}{,}\left[{}\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[\left[\left[{"form"}{,}{\mathrm{R2}}{,}{1}\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right]$ (26)
 > assigned(D_y), assigned(dy);
 ${\mathrm{true}}{,}{\mathrm{true}}$ (27)
 > D_y := 3;
 ${\mathrm{D_y}}{≔}{3}$ (28)
 • Note that the coordinate vectors and forms for the frame R2 can still be accessed using commands from the Tools subpackage.  In SafeMode, the internal representations of DifferentialGeometry are displayed as output.
 > Tools:-DGvector(y);
 $\left[\left[{"vector"}{,}{\mathrm{R2}}{,}\left[{}\right]\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]$ (29)
 > Tools:-DGinfo("FrameBaseForms");
 $\left[\left[\left[{"form"}{,}{\mathrm{R2}}{,}{1}\right]{,}\left[\left[\left[{1}\right]{,}{1}\right]\right]\right]\right]$ (30)
 > Preferences("SafeMode", false);
 ${\mathrm{true}}$ (31)

"Show"

The option Show returns the list of all the preference values.

 > with(DifferentialGeometry):
 > Preferences("Show");
 ${"DisplayFrameDefinitions"}{=}{\mathrm{true}}{,}{"ErrorInfoLevel"}{=}{0}{,}{"ErrorPrintLength"}{=}{0}{,}{"HistoryDepth"}{=}{3}{,}{"JetNotation"}{=}{"JetNotation2"}{,}{"Macros"}{=}{"off"}{,}{"PrettyPrint"}{=}{\mathrm{true}}{,}{"PromptLength"}{=}{4}{,}{"SafeMode"}{=}{\mathrm{false}}{,}{"ShowFramePrompt"}{=}{\mathrm{true}}{,}{"TeXLineBreak"}{=}\left[{8}\right]{,}{"TeXPrintOrder"}{=}\left[{}\right]{,}{"TensorDisplay"}{=}{0}{,}{"VectorDisplay"}{=}{0}{,}{"WedgeDisplay"}{=}{1}{,}{"dsolve"}{=}{\mathrm{dsolve}}{,}{"is"}{=}{\mathrm{is}}{,}{"nullspace"}{=}{\mathrm{LinearAlgebra:-NullSpace}}{,}{"pdsolve"}{=}{\mathrm{pdsolve}}{,}{"rref"}{=}{\mathrm{LinearAlgebra:-ReducedRowEchelonForm}}{,}{"simplification"}{=}{\mathrm{simplify}}{,}{"solve"}{=}{\mathrm{solve}}$ (32)

"ShowFramePrompt"

With the ShowFramePrompt set to false, the standard Maple prompt will be used.

 > with(DifferentialGeometry):
 > Preferences("ShowFramePrompt", false);
 ${\mathrm{true}}$ (33)
 > DGsetup([x, y], Gauss);
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}{,}{y}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{D_x}}{,}{\mathrm{D_y}}\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{dx}}{,}{\mathrm{dy}}\right]$
 ${\mathrm{frame name: Gauss}}$ (34)
 > LieBracket(D_x, x*D_y);
 ${\mathrm{D_y}}$ (35)

Notice that the prompt has remained the standard Maple prompt '>'.

 > Preferences("ShowFramePrompt", true);
 ${\mathrm{false}}$ (36)
 > DGsetup([x, y], Gauss);
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}{,}{y}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{D_x}}{,}{\mathrm{D_y}}\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{dx}}{,}{\mathrm{dy}}\right]$
 ${\mathrm{frame name: Gauss}}$ (37)

Now the prompt contains the name of the current frame.

"TensorDisplay"

The preference TensorDisplay controls how the tensor product is displayed in Maple output.  If this preference is 0, no symbol is printed; if this preference is 1, then '&t' is printed.  The default TensorDisplay preference is 0.

 > with(DifferentialGeometry):
 > DGsetup([x, y, z], M):
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}{,}{y}{,}{z}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{D_x}}{,}{\mathrm{D_y}}{,}{\mathrm{D_z}}\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{dx}}{,}{\mathrm{dy}}{,}{\mathrm{dz}}\right]$ (38)
 > alpha := evalDG(2*dx &t dy - dy &t dz);
 ${\mathrm{α}}{≔}\left({2}{}{\mathrm{dx}}\right){}{\mathrm{dy}}{-}\left({\mathrm{dy}}{}{\mathrm{dz}}\right)$ (39)
 > Preferences("TensorDisplay", 1);
 ${0}$ (40)
 > alpha;
 $\left({2}{}{\mathrm{dx}}\right){}{\otimes }{}{\mathrm{dy}}{-}\left({\mathrm{dy}}{}{\otimes }{}{\mathrm{dz}}\right)$ (41)
 > Preferences("TensorDisplay", 0);
 ${1}$ (42)

"TeXFormList", "TeXVectorList", "TeXBiformList", "TeXPrintOrder", "TeXLineBreak"

These preferences control how the Maple latex command will TeX the components of a vector, differential form or tensor.  These preferences must be set by the user for each frame.

 > with(DifferentialGeometry):
 > DGsetup([x, y, z], M): DGsetup([x, y, z], N):
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}{,}{y}{,}{z}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{D_x}}{,}{\mathrm{D_y}}{,}{\mathrm{D_z}}\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{dx}}{,}{\mathrm{dy}}{,}{\mathrm{dz}}\right]$
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}{,}{y}{,}{z}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{D_x}}{,}{\mathrm{D_y}}{,}{\mathrm{D_z}}\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{dx}}{,}{\mathrm{dy}}{,}{\mathrm{dz}}\right]$ (43)

Specify the LaTeX representations for the frame [D_x, D_y, D_z] on M.

 > Preferences("TeXVectorList", M, ["\\partial_x", "\\partial_y", "\\partial_z"]);
 $\left[{"\partial_x"}{,}{"\partial_y"}{,}{"\partial_z"}\right]$ (44)

Specify the LaTeX representations for the coframe [dx, dy, dz] on M.

 > Preferences("TeXFormList", M, ["dx", "dy", "d,z"]);
 $\left[{"dx"}{,}{"dy"}{,}{"d,z"}\right]$ (45)

Specify the LaTeX representations for the frame [D_x, D_y, D_z] on N.

 > Preferences("TeXVectorList", N, ["\\frac{\\partial\\hfill}{\\partial_x}", "\\frac{\\partial\\hfill}{\\partial_y}", "\\frac{\\partial\\hfill}{\\partial_y}"]);
 $\left[{"\frac\left\{\partial\hfill\right\}\left\{\partial_x\right\}"}{,}{"\frac\left\{\partial\hfill\right\}\left\{\partial_y\right\}"}{,}{"\frac\left\{\partial\hfill\right\}\left\{\partial_y\right\}"}\right]$ (46)

Specify the LaTeX representations for the coframe [dx, dy, dz] on N.

 > Preferences("TeXFormList", N, ["\\alpha", "\\beta", "\\gamma"]);
 $\left[{"\alpha"}{,}{"\beta"}{,}{"\gamma"}\right]$ (47)

Define a vector X1 and a form alpha1 on M and convert to LaTeX.

 > ChangeFrame(M);
 ${N}$ (48)
 > X1 := evalDG(3*D_x - D_y + z*D_z);
 ${\mathrm{X1}}{≔}{3}{}{\mathrm{D_x}}{-}{\mathrm{D_y}}{+}{z}{}{\mathrm{D_z}}$ (49)
 > alpha1 := evalDG(y*dx - sin(z)*dy + (1/z)*dz);
 ${\mathrm{α1}}{≔}{y}{}{\mathrm{dx}}{-}\left({\mathrm{sin}}{}\left({z}\right){}{\mathrm{dy}}\right){+}{\left(\frac{{1}}{{z}}\right)}_{{}}{}{\mathrm{dz}}$ (50)
 > latex(X1);
 3\, \partial_x-\, \partial_y+z\, \partial_z
 > latex(alpha1);
 y\, dx-\sin \left( z \right) \, dy+{z}^{-1}\, d,z

Now LaTeX the same vector and form, but viewed as objects on N.

 > ChangeFrame(N);
 ${M}$ (51)
 > X2 := evalDG(3*D_x - D_y + z*D_z);
 ${\mathrm{X2}}{≔}{3}{}{\mathrm{D_x}}{-}{\mathrm{D_y}}{+}{z}{}{\mathrm{D_z}}$ (52)
 > alpha2 := evalDG(y*dx - sin(z)*dy + (1/z)*dz);
 ${\mathrm{α2}}{≔}{y}{}{\mathrm{dx}}{-}\left({\mathrm{sin}}{}\left({z}\right){}{\mathrm{dy}}\right){+}{\left(\frac{{1}}{{z}}\right)}_{{}}{}{\mathrm{dz}}$ (53)
 > latex(X2);
 3\, \frac{\partial\hfill}{\partial_x}-\, \frac{\partial\hfill}{\partial_y}+z\, \frac{\partial\hfill}{\partial_y}
 > latex(alpha2);
 y\, \alpha-\sin \left( z \right) \, \beta+{z}^{-1}\, \gamma

The TeXPrintOrder preference allows the user to specify the ordering of components in the TeX representation of a vector, differential form, or tensor.

 > ChangeFrame(M):
 > Preferences("TeXPrintOrder", [dy, dz, dx]);
 $\left[{}\right]$ (54)
 > latex(alpha1);
 -\sin \left( z \right) \, dy+{z}^{-1}\, d,z+y\, dx
 > TensorOrder := evalDG([dx &t dx, dy &t dy, dz &t dz, dx &t dy, dx &t dz, dy &t dz]);
 ${\mathrm{TensorOrder}}{≔}\left[{\mathrm{dx}}{}{\mathrm{dx}}{,}{\mathrm{dy}}{}{\mathrm{dy}}{,}{\mathrm{dz}}{}{\mathrm{dz}}{,}{\mathrm{dx}}{}{\mathrm{dy}}{,}{\mathrm{dx}}{}{\mathrm{dz}}{,}{\mathrm{dy}}{}{\mathrm{dz}}\right]$ (55)
 > Preferences("TeXPrintOrder", TensorOrder);
 $\left[\left[{2}\right]{,}\left[{3}\right]{,}\left[{1}\right]\right]$ (56)
 > T := evalDG(dx &t dy + dy &t dy);
 ${T}{≔}{\mathrm{dx}}{}{\mathrm{dy}}{+}{\mathrm{dy}}{}{\mathrm{dy}}$ (57)
 > latex(T);
 \,dy\, dy+\,dx\, dy

To LaTeX a vector or a form the TeXPrintOrder preference must now be reset.  Often, the user may wish to insert the latex output into a LaTeX alignment environment.  With the TeXLineBreak preference, a carriage return \' and alignment character & can be automatically placed.after any number of components.

 > Preferences("TeXLineBreak", [1]);
 $\left[{8}\right]$ (58)
 > latex(X1);
 3\, \partial_x\\&-\, \partial_y+z\, \partial_z
 > Preferences("TeXLineBreak", [1, 2]);
 $\left[{1}\right]$ (59)
 > latex(X1);
 3\, \partial_x\\&-\, \partial_y\\&+z\, \partial_z

"WedgeDisplay"

The preference WedgeDisplay controls how the wedge product of differential forms is displayed in Maple output.  If this preference is 0, no symbol is printed; if this preference is 1, a '^' is printed; and if the preference is 2, then '&w' is printed.  The default WedgeDisplay preference is 1.

 > with(DifferentialGeometry):
 > DGsetup([x, y, z], M):
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}{,}{y}{,}{z}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{D_x}}{,}{\mathrm{D_y}}{,}{\mathrm{D_z}}\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{dx}}{,}{\mathrm{dy}}{,}{\mathrm{dz}}\right]$ (60)
 > alpha := evalDG(2*dx &w dy - dy &w dz);
 ${\mathrm{α}}{≔}\left({2}{}{\mathrm{dx}}\right){}{\bigwedge }{}{\mathrm{dy}}{-}\left({\mathrm{dy}}{}{\bigwedge }{}{\mathrm{dz}}\right)$ (61)
 > Preferences("WedgeDisplay", 0);
 ${1}$ (62)
 > alpha;
 $\left({2}{}{\mathrm{dx}}\right){}{\mathrm{dy}}{-}\left({\mathrm{dy}}{}{\mathrm{dz}}\right)$ (63)
 > Preferences("WedgeDisplay", 2);
 ${0}$ (64)
 > alpha;
 $\left({2}{}{\mathrm{dx}}\right){}{\mathrm{&w}}{}{\mathrm{dy}}{-}\left({\mathrm{dy}}{}{\mathrm{&w}}{}{\mathrm{dz}}\right)$ (65)

"dsolve", "nullspace","pdsolve", "rref", "simplification", "solve"

These preferences allow the user to customize the procedures which will be used with DifferentialGeometry programs for dsolve, LinearAlgebra:-Nullspace, pdsolve, LinearAlgebra:-ReducedRowEchelonForm, simplify, and solve. Here is a simple example.

 > with(DifferentialGeometry):
 > DGsetup([x], M);
 ${\mathrm{The following coordinates have been protected:}}$
 $\left[{x}\right]$
 ${\mathrm{The following vector fields have been defined and protected:}}$
 $\left[{\mathrm{D_x}}\right]$
 ${\mathrm{The following differential 1-forms have been defined and protected:}}$
 $\left[{\mathrm{dx}}\right]$
 ${\mathrm{frame name: M}}$ (66)
 > ExteriorDerivative(sqrt(x^2));
 ${\mathrm{csgn}}{}\left({x}\right){}{\mathrm{dx}}$ (67)

To obtain the simpler result dx, we can change the simplification command used by the DifferentialGeometry package.  Call the new simplification command MySimplify and pass this procedure name to the Preferences. Then rerun the ExteriorDerivative command.

 > MySimplify := x -> simplify(x, symbolic);
 ${\mathrm{MySimplify}}{≔}{x}{→}{\mathrm{simplify}}{}\left({x}{,}{\mathrm{symbolic}}\right)$ (68)
 > Preferences("simplification", MySimplify);
 ${\mathbf{proc}}\left({s}{,}\left\{{\mathrm{applysimplifysize}}{≔}{\mathrm{evalb}}{}\left({\mathrm{kernelopts}}{}\left({'}{\mathrm{level}}{'}\right){<}{41}\right)\right\}\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{...}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{end proc}}$ (69)
 > ExteriorDerivative(sqrt(x^2));
 ${\mathrm{dx}}$ (70)
 M    >