Drawing objects and the drawing primitives enumerated within drawing object groups use the syntax described by the following tables.
| <do> | '{\*' \do <dohead> <dpinfo>'}' |
| <dohead> | <dobx> <doby> <dodhgt> <dolock>? |
| <dobx> | \dobxpage | \dobxcolumn | \dobxmargin |
| <doby> | \dobypage | \dobypara | \dobymargin |
| <dodhgt> | \dodhgt |
| <dolock> | \dolock |
| <dpinfo> | <dpgroup> | <dpcallout> | <dpsimple> |
| <dpgroup> | \dpgroup \dpcount <dphead> <dpinfo>+ \dpendgroup <dphead> |
| <dpcallout> | \dpcallout <cotype> <coangle>? <coaccent>? <cosmartattach>? <cobestfit>? <cominusx>? <cominusy>? <coborder>? <codescent>? \dpcooffset \dpcolength <dphead> <dppolyline> <dphead> <dpprops> <dptextbox> <dphead> <dpprops> |
| <dpsimple> | <dpsimpledpk> <dphead> <dpprops> |
| <dpsimpledpk> | <dpline> | <dprect> | <dptextbox> | <dpellipse> | <dppolyline> | <dparc> |
| <dpline> | \dpline <dppt> <dppt> |
| <dprect> | \dprect (\dproundr)? |
| <dptextbox> | \dptxbx \dptxbxmar '{' \dptxbxtext <para>+'}' |
| <dpellipse> | \dpellipse |
| <dparc> | \dparc \dparcflipx? \dparcflipy? |
| <dppolyline> | \dppolyline (\dppolygon)? \dppolycount <dppt>+ |
| <dppt> | \dpptx \dppty |
| <dphead> | \dpx \dpy \dpxsize \dpysize |
Note that in <dpgroup> the number of <dpinfo>s is equal to the argument of \dpcount, whereas in <dppolyline> the number of <dppt>s is equal to the argument of \dppolycount.
The following elements of the drawing-object syntax pertain specifically to callout objects:
| <cotype> | \dpcotright | \dpcotsingle | \dpcotdouble | \dpcottriple |
| <coangle> | \dpcoa |
| <coaccent> | \dpcoaccent |
| <cosmartattach> | \dpcosmarta |
| <cobestfit> | \dpcobestfit |
| <cominusx> | \dpcominusx |
| <cominusy> | \dpcominusy |
| <coborder> | \dpcoborder |
| <codescent> | \dpcodtop | \dpcodcenter | \dpcodbottom | \dpcodabs |
The remaining elements of the drawing object syntax are properties applied to individual drawn primitives:
| <dpprops> | <lineprops>? <fillprops>? <endstylestart>? <endstyleend>? <shadow>? |
| <lineprops> | <linestyle> <linecolor> \dplinew |
| <linestyle> | \dplinesolid | \dplinehollow | \dplinedash | \dplinedot | \dplinedado | \dplinedadodo |
| <linecolor> | <linegray> | <linergb> |
| <linegray> | \dplinegray |
| <linergb> | \dplinecor \dplinecog \dplinecob<linepal>? |
| <linepal> | \dplinepal |
| <fillprops> | <fillcolorfg> <fillcolorbg> \dpfillpat |
| <fillcolorfg> | <fillfggray> | <fillfgrgb> |
| <fillfggray> | \dpfillfggray |
| <fillfgrgb> | \dpfillfgcr \dpfillfgcg \dpfillfgcb<fillfgpal>? |
| <fillfgpal> | \dpfillfgpal |
| <fillcolorbg> | <fillbggray> | <fillbgrgb> |
| <fillbggray> | \dpfillbggray |
| <fillbgrgb> | \dpfillbgcr \dpfillbgcg \dpfillbgcb<fillbgpal>? |
| <fillbgpal> | \dpfillbgpal |
| <endstylestart> | <arrowstartfill> \dpastartl \dpastartw |
| <arrowstartfill> | \dpastartsol | \dpastarthol |
| <endstyleend> | <arrowendfill> \dpaendl \dpaendw |
| <arrowendfill> | \dpaendsol | \dpaendhol |
| <shadow> | \dpshadow \dpshadx \dpshady |
The following table describes the control words for the drawing object group in detail. All color values are RGB values between 0-255. All distances are in twips. All other values are as indicated.
| Control word | Definition |
| \do | Indicates a drawing object is to be inserted at this point in the character stream. This is a destination control word. |
| \dolock | The drawing object's anchor is locked and cannot be moved. |
| \dobxpage | The drawing object is page relative in the x-direction. |
| \dobxcolumn | The drawing object is column relative in the x-direction. |
| \dobxmargin | The drawing object is margin relative in the x-direction. |
| \dobypage | The drawing object is page relative in the y-direction. |
| \dobypara | The drawing object is paragraph relative in the y-direction. |
| \dobymargin | The drawing object is margin relative in the y-direction. |
| \dodhgtN | The drawing object is positioned at the following numeric address in the z-ordering. |
| Drawing Primitives | |
| \dpgroup | Begin group of drawing primitives. |
| \dpcountN | Number of drawing primitives in the current group. |
| \dpendgroup | End group of drawing primitives. |
| \dparc | Arc drawing primitive. |
| \dpcallout | Callout drawing primitive, which consists of both a polyline and a text box. |
| \dpellipse | Ellipse drawing primitive. |
| \dpline | Line drawing primitive. |
| \dppolygon | Polygon drawing primitive (closed polyline). |
| \dppolyline | Polyline drawing primitive. |
| \dprect | Rectangle drawing primitive. |
| \dptxbx | Text box drawing primitive. |
| Position and Size | |
| \dpxN | X-offset of the drawing primitive from its anchor. |
| \dpxsizeN | X-size of the drawing primitive. |
| \dpyN | Y-offset of the drawing primitive from its anchor. |
| \dpysizeN | Y-size of the drawing primitive. |
| Callouts | |
| \dpcoaN | Angle of callout's diagonal line is restricted to one of the following: 0, 30, 45, 60, or 90. If this control word is absent, the callout has an arbitrary angle, indicated by the coordinates of its primitives. |
| \dpcoaccent | Accent bar on callout (vertical bar between polyline and text box). |
| \dpcobestfit | Best fit callout (x-length of each line in callout is similar). |
| \dpcoborder | Visible border on callout text box. |
| \dpcodabs | Absolute distance-attached polyline. |
| \dpcodbottom | Bottom-attached polyline. |
| \dpcodcenter | Center-attached polyline. |
| \dpcodtop | Top-attached callout. |
| \dpcodescentN | The descent of the callout |
| \dpcolengthN | Length of callout. |
| \dpcominusx | Text box falls in quadrants II or III relative to polyline origin. |
| \dpcominusy | Text box falls in quadrants III or IV relative to polyline origin. |
| \dpcooffsetN | Offset of callout. This is the distance between the end of the polyline and the edge of the text box. |
| \dpcosmarta | Auto-attached callout. Polyline will attach to either the top or bottom of the text box depending on the relative quadrant. |
| \dpcotdouble | Double line callout. |
| \dpcotright | Right angle callout. |
| \dpcotsingle | Single line callout. |
| \dpcottriple | Triple line callout. |
| Text Boxes and Rectangles | |
| \dptxbxmarN | Internal margin of the text box. |
| \dptxbxtext | Group that contains the text of the text box. |
| \dproundr | Rectangle is a round rectangle. |
| Lines and Polylines | |
| \dpptxN | X-coordinate of the current vertex (only for lines and polylines). The coordinate order for a point must be x, y. |
| \dpptyN | Y-coordinate of the current vertex (only for lines and polylines). The coordinate order for a point must be x, y. |
| \dppolycountN | Number of vertices in polyline drawing primitive. |
| Arcs | |
| \dparcflipx | This indicates that the end point of the arc is to the right of the start point. Arcs are drawn counter-clockwise. |
| \dparcflipy | This indicates that the end point of the arc is below the start point. Arcs are drawn counter-clockwise. |
| Line Style | |
| \dplinecobN | Blue value for line color. |
| \dplinecogN | Green value for line color. |
| \dplinecorN | Red value for line color. |
| \dplinepal | Render line color using the PALETTERGB macro instead of the RGB macro in Windows. |
| \dplinedado | Dashed-dotted line style. |
| \dplinedadodo | Dashed-dotted-dotted line style. |
| \dplinedash | Dashed line style. |
| \dplinedot | Dotted line style. |
| \dplinegrayN | Grayscale value for line color (in half-percentages). |
| \dplinehollow | Hollow line style (no line color). |
| \dplinesolid | Solid line style. |
| \dplinewN | Thickness of line (in twips). |
| Arrow Style | |
| \dpaendhol | Hollow end arrow (lines only). |
| \dpaendlN | Length of end arrow, relative to pen width: 1Small 2Medium 3Large |
| \dpaendsol | Solid end arrow (lines only). |
| \dpaendwN | Width of end arrow, relative to pen width: 1Small 2Medium 3Large |
| \dpastarthol | Hollow start arrow (lines only). |
| \dpastartlN | Length of start arrow, relative to pen width: 1Small 2Medium 3Large |
| \dpastartsol | Solid start arrow (lines only). |
| \dpastartwN | Width of start arrow, relative to pen width: 1Small 2Medium 3Large |
| Fill Pattern | |
| \dpfillbgcbN | Blue value for background fill color. |
| \dpfillbgcgN | Green value for background fill color. |
| \dpfillbgcrN | Red value for background fill color. |
| \dpfillbgpal | Render fill background color using the PALETTERGB macro instead of the RGB macro in Windows. |
| \dpfillbggrayN | Grayscale value for background fill (in half-percentages). |
| \dpfillfgcbN | Blue value for foreground fill color. |
| \dpfillfgcgN | Green value for foreground fill color. |
| \dpfillfgcrN | Red value for foreground fill color. |
| \dpfillfgpal | Render fill foreground color using the PALETTERGB macro instead of the RGB macro in Windows. |
| \dpfillfggrayN | Grayscale value for foreground fill (in half-percentages). |
| \dpfillpatN | Index into a list of fill patterns. See below for list. |
| Shadow | |
| \dpshadow | Current drawing primitive has a shadow. |
| \dpshadxN | X-offset of the shadow. |
| \dpshadyN | Y-offset of the shadow. |
The following values are available for specifying fill patterns in drawing objects with the \dpfillpat control word.
| Value | Fill pattern |
| 0 | Clear (no pattern) |
| 1 | Solid (100%) |
| 2 | 5% |
| 3 | 10% |
| 4 | 20% |
| 5 | 25% |
| 6 | 30% |
| 7 | 40% |
| 8 | 50% |
| 9 | 60% |
| 10 | 70% |
| 11 | 75% |
| 12 | 80% |
| 13 | 90% |
| 14 | Dark horizontal lines |
| 15 | Dark vertical lines |
| 16 | Dark left-diagonal lines (\\\) |
| 17 | Dark right-diagonal lines (///) |
| 18 | Dark grid lines |
| 19 | Dark trellis lines |
| 20 | Light horizontal lines |
| 21 | Light vertical lines |
| 22 | Light left-diagonal lines (\\\) |
| 23 | Light right-diagonal lines (///) |
| 24 | Light grid lines |
| 25 | Light trellis lines |