w:caps (All Capitals)
Displays all lowercase letters in the run as uppercase without altering the stored text.
Parent elements
Description
w:caps displays all lowercase letters in the run as uppercase characters. It is an on/off toggle property defined in ECMA-376 Part 1 §17.3.2.4.
Unlike converting text to uppercase, w:caps does not change the stored text — the underlying characters remain in their original case. Only the rendered glyphs are uppercased. This means a spell-checker still uses the original mixed-case text.
w:smallCaps and w:caps are mutually exclusive; if both are set, w:caps takes precedence.
Attributes
| Attribute | Type | Possible Values | Description |
|---|---|---|---|
w:val |
ST_OnOff |
true, 1, on (enabled) / false, 0, off (disabled). Omitting the attribute is equivalent to true. |
Toggles All Caps on or off. |
Examples
<w:r>
<w:rPr>
<w:caps/>
</w:rPr>
<w:t>hello world</w:t>
</w:r>
// Stored as lowercase, rendered as HELLO WORLD
new Run(
new RunProperties(new Caps()),
new Text("hello world"));
<!-- Cancel caps from parent style -->
<w:rPr>
<w:caps w:val="false"/>
</w:rPr>
new RunProperties(new Caps { Val = false });
Notes
- Content unchanged: stored as original case, rendered as uppercase.
- Spell-checking uses original text, not rendered form.
- Toggle property:
w:val="false"cancels caps from parent. - Mutually exclusive with
w:smallCaps(caps takes precedence). - Search and copy use original text, not rendered uppercase.
- Works consistently across Office versions.