a:rPr (Run Properties)

Specifies formatting properties for text runs, including font, size, color, bold, italic, and character-level effects.

Description

a:rPr (Run Properties) is the character-level formatting container in DrawingML. It is defined in ECMA-376 Part 1 §20.1.2.3.1 and controls all visual presentation of individual text characters within a run (a:r).

Purpose and Scope

Run properties specify formatting that applies to every character in the run:

  • Typography — Font family, size, weight (bold), slant (italic)
  • Text Decoration — Underline, strikethrough, overline styles
  • Color and Fill — Solid color, gradient, pattern, transparency
  • Outline — Line properties (width, dash, color)
  • Effects — Shadow, glow, reflection, soft edge, blur
  • Position and Spacing — Baseline offset, kerning, character spacing, rotation
  • Language and Proofing — Language code for spell check and hyphenation

When a:rPr is omitted, the run inherits formatting from:

  1. Paragraph properties (a:pPr)
  2. Default run properties (a:defRPr in master/theme)
  3. Master slide theme
  4. Application defaults

Hierarchy and Precedence

Formatting precedence (highest to lowest):

  • Explicit run properties (a:rPr in a:r) — Most specific
  • Default run properties (a:defRPr in list style)
  • Paragraph properties (a:pPr)
  • Master/theme defaults — Least specific

Content Organization

The a:rPr element contains:

  1. Attributes (inline) — sz, b, i, u, strike, lang, etc.
  2. Child elements (nested) — solidFill, latin, effectLst, ln, etc.

All attributes and child elements are optional. If an attribute is not specified, the preceding level’s value is used.

Attributes

Attribute Type Range/Values Default Description
sz Integer (EMU) 100–400000 Inherited Font size in hundredths of points (100 = 1pt, 2400 = 24pt).
b Boolean 0, 1, true, false false Bold text weight.
i Boolean 0, 1, true, false false Italic (slanted) style.
u Enum none, sng, dbl, heavy, dash, dashDotDotHeavy, wave none Underline style.
strike Enum noStrike, sngStrike, dblStrike noStrike Strikethrough style.
kern Integer (EMU) 0–51200 0 Kerning threshold; smaller values kern tighter.
spc Integer (twips) -20000–20000 0 Character spacing (positive = wider, negative = tighter).
baseline Integer (%) -100000–100000 0 Vertical position: positive = superscript, negative = subscript.
lang String (BCP-47) e.g., en-US, fr-FR, zh-CN Inherited Language code for spellcheck, hyphenation, and proofing.
altLang String e.g., ja-JP Inherited Alternate language code.
dirty Boolean 0, 1, true, false true Text has changed; requires recalculation.
smtClean Boolean 0, 1, true, false true Text proofed (spelling/grammar); false = needs check.
noProof Boolean 0, 1, true, false false Disable proofing/spell check for this run.
normalizeH Boolean 0, 1, true, false false Normalize height.
kumimoji Boolean 0, 1, true, false false Kumimoji (Japanese) formatting.
cap Enum none, small, all none Capitalization: small caps or all caps.
rot Integer (1/60000°) 0–5400000 0 Character rotation: 5400000 = 90°.
spaceBef Integer (EMU) -4000–4000 0 Space before character.
spaceAft Integer (EMU) -4000–4000 0 Space after character.

Child Elements

Element Occurrence Purpose
a:solidFill 0–1 Solid color fill for text.
a:schemeClr 0–1 Theme color reference.
a:srgbClr 0–1 RGB color fill.
a:latin 0–1 Font family for Latin characters.
a:ea 0–1 Font family for East Asian (CJK) characters.
a:cs 0–1 Font family for Complex Script (Arabic, Hebrew, etc.) characters.
a:sym 0–1 Font family for symbol characters.
a:ln 0–1 Outline (border) properties.
a:effectLst 0–1 List of effects (shadow, glow, reflection, soft edge).

Examples

Basic Font Properties (Size, Bold, Italic)

<a:r>
  <a:rPr lang="en-US" sz="2400" b="1" i="0">
    <a:latin typeface="Calibri"/>
  </a:rPr>
  <a:t>Bold 24pt in Calibri</a:t>
</a:r>

Colored Text with Solid Fill

<a:r>
  <a:rPr lang="en-US" sz="2400">
    <a:solidFill>
      <a:srgbClr val="C55A11"/>
    </a:solidFill>
    <a:latin typeface="Calibri"/>
  </a:rPr>
  <a:t>Orange colored text</a:t>
</a:r>

Underlined and Strikethrough Text

<a:r>
  <a:rPr lang="en-US" sz="2400" u="sng" strike="sngStrike">
    <a:latin typeface="Calibri"/>
  </a:rPr>
  <a:t>Underlined + Struck through</a:t>
</a:r>

Superscript and Subscript

<a:p>
  <a:pPr lvl="0"/>
  <a:r>
    <a:rPr sz="2400" lang="en-US">
      <a:latin typeface="Calibri"/>
    </a:rPr>
    <a:t>H</a:t>
  </a:r>
  <a:r>
    <a:rPr sz="1200" baseline="-25000" lang="en-US">
      <a:latin typeface="Calibri"/>
    </a:rPr>
    <a:t>2</a:t>
  </a:r>
  <a:r>
    <a:rPr sz="2400" lang="en-US">
      <a:latin typeface="Calibri"/>
    </a:rPr>
    <a:t>O and E=mc</a:t>
  </a:r>
  <a:r>
    <a:rPr sz="1200" baseline="35000" lang="en-US">
      <a:latin typeface="Calibri"/>
    </a:rPr>
    <a:t>2</a:t>
  </a:r>
</a:p>

Multi-Language Text with Font Substitution

<a:r>
  <a:rPr sz="2400" lang="en-US">
    <a:latin typeface="Calibri"/>
    <a:ea typeface="SimSun"/>
    <a:cs typeface="Arial"/>
  </a:rPr>
  <a:t>English and 中文 Mixed Language Text</a:t>
</a:r>

Text with Shadow and Glow Effects

<a:r>
  <a:rPr sz="3600" lang="en-US">
    <a:solidFill>
      <a:srgbClr val="4472C4"/>
    </a:solidFill>
    <a:latin typeface="Calibri"/>
    <a:effectLst>
      <a:outerShdw blurRad="50800" dist="38100" dir="2700000" algn="tl" rotWithShape="0">
        <a:srgbClr val="000000">
          <a:alpha val="75000"/>
        </a:srgbClr>
      </a:outerShdw>
      <a:glow rad="50800">
        <a:srgbClr val="00B0F0">
          <a:alpha val="100000"/>
        </a:srgbClr>
      </a:glow>
    </a:effectLst>
  </a:rPr>
  <a:t>Text with shadow and glow</a:t>
</a:r>

Character Spacing and Rotation

<a:r>
  <a:rPr sz="2400" spc="60" rot="5400000" lang="en-US">
    <a:solidFill>
      <a:srgbClr val="70AD47"/>
    </a:solidFill>
    <a:latin typeface="Calibri"/>
  </a:rPr>
  <a:t>Wide spaced & rotated 90°</a:t>
</a:r>

Text Decoration Values

Value Appearance Use Case
none (or omitted) No underline Normal text
sng Single line below text Standard underline
dbl Double line below text Important/emphasized
heavy Thick single line Bold emphasis
wave Wavy line Spell check indicator
dash Dashed line Temporary or draft

Capitalization Values

Value Effect Example
none No change Sample Text
small Small capitals SAMPLE TEXT (with smaller capitals)
all All capitals SAMPLE TEXT

Font Size Reference Table

Value Points Use Case
800 8pt Small text, footnotes
1000 10pt Body text (minimal)
1200 12pt Standard body text
1800 18pt Subheading
2400 24pt Normal heading
3600 36pt Large heading
4400 44pt Slide title
5600 56pt Very large title

Language Code Examples

Code Language
en-US English (US)
en-GB English (UK)
fr-FR French
de-DE German
zh-CN Chinese (Simplified)
ja-JP Japanese
ar-SA Arabic

Common Formatting Patterns

Small Caps (Legal/Academic Documents)

<a:rPr sz="2400" cap="small">
  <a:latin typeface="Calibri"/>
</a:rPr>

Kerning (Professional Typography)

<a:rPr sz="2400" kern="2000">
  <a:latin typeface="Calibri"/>
</a:rPr>

Thin Outline + Fill (Outlined Text)

<a:rPr sz="2400">
  <a:solidFill><a:srgbClr val="FFFFFF"/></a:solidFill>
  <a:ln w="12700"><a:solidFill><a:srgbClr val="000000"/></a:solidFill></a:ln>
  <a:latin typeface="Calibri"/>
</a:rPr>

Notes

Element Relationships

  • Parents (three contexts):
    • a:r (text run): Character properties for a specific text run within a paragraph.
    • a:defRPr (default run properties): Default character properties for a list/paragraph style.
    • a:endParaRPr (end paragraph run properties): Formatting for the paragraph mark itself.
  • Children (optional formatting elements):
    • Color: a:solidFill, a:schemeClr, a:srgbClr, a:sysClr, a:hslClr, a:prstClr, a:scrgbClr
    • Fonts: a:latin, a:ea, a:cs, a:sym (form a fallback chain)
    • Styling: a:ln (outline), a:effectLst (effects), a:outerShdw (shadow)

General Notes

  • Inheritance Chain: Run properties inherit from paragraph properties (a:pPr), which inherit from paragraph list style (a:lstStyle). Character-level attributes override inherited values.
  • Applied to: Run properties control formatting for text within a:r, but also appear in a:defRPr (default run properties for the style) and a:endParaRPr (paragraph mark formatting).
  • Optional Element: Run properties are optional; formatting defaults to theme or paragraph-level settings if omitted.
  • Font Stack: Multiple font elements (a:latin, a:ea, a:cs, a:sym) form a fallback chain. Consumers pick the first applicable font for the text language/script.
  • Font Size Conversion: Size is in hundredths of points (sz = 100 × point size). Examples: 1200 = 12pt, 2400 = 24pt, 7200 = 72pt.
  • Color System: Color can come from RGB (a:srgbClr), theme colors (a:schemeClr), system colors (a:sysClr), or HSL (a:hslClr). Theme colors enable color scheme switching.
  • Outline vs Fill: The a:ln (outline) is a line stroke around text characters, not a paragraph border; rarely used in body text.
  • Spacing: Character spacing (a:spc) is in 1/100th of a point, applied after base font size.
  • Compatibility: Run properties structure mirrors WordML w:rPr, ensuring consistent text formatting across Office formats.