a:rPr (Run Properties)
Specifies formatting properties for text runs, including font, size, color, bold, italic, and character-level effects.
Parent elements
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:
- Paragraph properties (
a:pPr) - Default run properties (
a:defRPrin master/theme) - Master slide theme
- Application defaults
Hierarchy and Precedence
Formatting precedence (highest to lowest):
- Explicit run properties (
a:rPrina:r) — Most specific - Default run properties (
a:defRPrin list style) - Paragraph properties (
a:pPr) - Master/theme defaults — Least specific
Content Organization
The a:rPr element contains:
- Attributes (inline) — sz, b, i, u, strike, lang, etc.
- 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>
var rPr = new RunProperties
{
Language = "en-US",
FontSize = 2400, // 24pt
Bold = true,
Italic = false
};
rPr.Append(new LatinFont { Typeface = "Calibri" });
var run = new Run(rPr, new Text("Bold 24pt in Calibri"));
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>
var rPr = new RunProperties { Language = "en-US", FontSize = 2400 };
var solidFill = new SolidFill();
solidFill.Append(new RgbColorModelHex { Val = "C55A11" });
rPr.Append(solidFill);
rPr.Append(new LatinFont { Typeface = "Calibri" });
var run = new Run(rPr, new Text("Orange colored text"));
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>
var rPr = new RunProperties
{
Language = "en-US",
FontSize = 2400,
Underline = TextUnderlineValues.Single,
Strike = TextStrikeValues.SingleStrike
};
rPr.Append(new LatinFont { Typeface = "Calibri" });
var run = new Run(rPr, new Text("Underlined + Struck through"));
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>
var para = new Paragraph(new ParagraphProperties { Level = 0 });
para.Append(new Run(
new RunProperties { FontSize = 2400, Language = "en-US" }
.Append(new LatinFont { Typeface = "Calibri" }),
new Text("H")));
para.Append(new Run(
new RunProperties { FontSize = 1200, Baseline = -25000, Language = "en-US" }
.Append(new LatinFont { Typeface = "Calibri" }),
new Text("2")));
para.Append(new Run(
new RunProperties { FontSize = 2400, Language = "en-US" }
.Append(new LatinFont { Typeface = "Calibri" }),
new Text("O and E=mc")));
para.Append(new Run(
new RunProperties { FontSize = 1200, Baseline = 35000, Language = "en-US" }
.Append(new LatinFont { Typeface = "Calibri" }),
new Text("2")));
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>
var rPr = new RunProperties { FontSize = 2400, Language = "en-US" };
rPr.Append(new LatinFont { Typeface = "Calibri" });
rPr.Append(new EastAsianFont { Typeface = "SimSun" });
rPr.Append(new ComplexScriptFont { Typeface = "Arial" });
var run = new Run(rPr, new Text("English and 中文 Mixed Language Text"));
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>
var effectLst = new EffectList();
var shadow = new OuterShadow
{
BlurRadius = 50800,
Distance = 38100,
Direction = 2700000,
Alignment = RectangleAlignmentValues.TopLeft,
RotateWithShape = false
};
shadow.Append(new RgbColorModelHex { Val = "000000" }
.Append(new Alpha { Val = 75000 }));
effectLst.Append(shadow);
var glow = new Glow { Radius = 50800 };
glow.Append(new RgbColorModelHex { Val = "00B0F0" }
.Append(new Alpha { Val = 100000 }));
effectLst.Append(glow);
var rPr = new RunProperties { FontSize = 3600, Language = "en-US" };
rPr.Append(new SolidFill(new RgbColorModelHex { Val = "4472C4" }));
rPr.Append(new LatinFont { Typeface = "Calibri" });
rPr.Append(effectLst);
var run = new Run(rPr, new Text("Text with shadow and glow"));
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>
var rPr = new RunProperties
{
FontSize = 2400,
Spacing = 60, // Wider spacing
Rotation = 5400000, // 90 degrees
Language = "en-US"
};
rPr.Append(new SolidFill(new RgbColorModelHex { Val = "70AD47" }));
rPr.Append(new LatinFont { Typeface = "Calibri" });
var run = new Run(rPr, new Text("Wide spaced & rotated 90°"));
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)
- Color:
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 ina:defRPr(default run properties for the style) anda: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.