Making pagination controls accessible to DITA writers
Posted: Tue Aug 06, 2019 5:56 pm
In our DITA flow, I used my RelaxNG DITA grammar creator (https://github.com/chrispy-snps/DITA-plugin-utilities) to create a specialized pagination attribute constrained to a set of values:
Oxygen XML Author is clever enough to present only the allowed attribute values to our writers. In this example, I apply a keep-with-next directive to the paragraph before a figure:
In Oxygen PDF Chemistry, our CSS file applies the pagination properties as follows:
We have similar specialized attributes for cross-reference format and table/example/inline style controls:
I wanted to share our approach in case it was useful to someone.
- Chris
Code: Select all
<attributedomain filename="paginateAttMod.rng" domain="paginate">
<specialize attribute="paginate" from="base" model="(keep-with-next|keep-with-previous|top-of-page)*"/>
</attributedomain>
In Oxygen PDF Chemistry, our CSS file applies the pagination properties as follows:
Code: Select all
@media print {
*[paginate~="keep-with-next"] { page-break-after: avoid; }
*[paginate~="keep-with-previous"] { page-break-before: avoid; }
*[paginate~="top-of-page"] { page-break-before: always; }
}
Code: Select all
<attributedomain filename="xformatAttMod.rng" domain="xformat">
<specialize attribute="xformat" from="base" model="(\(equation\)|appendix|chapter|command|endnote|equation|example|figure|footnote|heading|page|partdiv|section|step|table|topic|unknown|_uselabel|_onpage)*"/>
</attributedomain>
<attributedomain filename="styleAttMod.rng" domain="style">
<specialize attribute="style" from="base" model="(bold|italic|wide|smallfonts|tight)*"/>
</attributedomain>
- Chris