---
layout: author-docs
title: Document attributes
---

This is the list of document attributes supported by all flavors of Metanorma.

[TIP]
====
If you're using one of the link:/flavors/[officially supported flavors of Metanorma],
please also see flavor-specific guidance for any additional supported or
required document attributes.
====

== Build and configuration

`:document-class:`, `:flavor:`, (legacy: `:mn-document-class:`, `:mn-flavor:`)::
The flavor of Metanorma used to compile the document; e.g. `iso`, `nist`, `ogc`. Needs to be a supported version
of the document.

`:output-extensions:` (legacy: `:mn-output-extensions:`)::
The output formats to generate for the document, comma-delimited; e.g. `xml,presentation,html,doc,pdf`.
The formats supported vary for each flavor, but all flavors support `xml` (Semantic XML), `presentation`
(Presentation XML), and one of `html` or `pdf`.

`:imagesdir:`::
(Optional) Directory in which images are located: all local image file locations
are prefixed with this directory.
Accepts a directory path.

`:nodoc:`::
Instructs Metanorma to not generate Word and HTML output, means only XML output will be generated.

`:novalid:`::
Suppress document validation.

`:index-terms:`::
Terms (and symbols) are indexed automatically in postprocessing.
See link:/author/topics/inline_markup/index_terms#auto-index-terms[automatic terms indexing]. [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.11.3]

`:relaton-output-file:` (legacy: `:mn-relaton-output-file:`)::
Output the bibliographic record describing the document as a Relaton XML file (with the suffix `.rxl`).



== Bibliography

=== Reference lookup

For bibliographic lookup, see link:/author/basics/reference-lookups[automatic reference lookup].

`:no-isobib:`::
If set, do not use the `relaton` or `iev` gem functionality to look up
ISO and IEV references online, nor the cache of `relaton` and `iev` searches.


=== Caching

For bibliographic caches, see
link:/author/basics/reference-lookups/#lookup-result-caching[lookup result caching].

`:no-isobib-cache:`::
If set, use the `relaton` and `iev` gem functionality to look up
ISO and IEV references online, but do not use the cache of `relaton` and `iev` searches.

`:local-cache:`::
Use the local Relaton and iev search caches to override the global `relaton` and `iev` search
caches. If a directory name is given for the attribute, that name overrides `relaton` as the
cache name.

`:local-cache-only:`::
Use the local Relaton and iev search caches to the exclusion of the global
`relaton` and `iev` search caches.
If a directory name is given for the attribute, that name overrides `relaton` as the cache name.

`:flush-caches:`::
If set, delete and reinitialise the cache of https://www.relaton.org/[Relaton] searches.

`:relaton-data-source`::
Allows specification of an external bibliographic file to be
imported [added in https://github.com/metanorma/metanorma-standoc/releases/tag/2.2.9].
The value of the field is the file name. If the format also needs to be
specified, this is done as `file=PATH/TO/FILE,format=FORMAT`. Valid formats are
follows.

`bibtex`::: The BibTeX format. Currently, only
this is supported as a format, all other formats will raise an error.

`:relaton-data-source-{id}`::
Allows specification of multiple external bibliographic files to be
imported [added in https://github.com/metanorma/metanorma-standoc/releases/tag/2.2.9].
The different bibliographic sources are differentiated through the value of the `{id}` identifier.
+
[example]
====
[source,adoc]
----
:relaton-data-source-bib1: PATH/TO/FIRST/FILE
:relaton-data-source-bib2: PATH/TO/SECOND/FILE
----
====

=== Reference lookup

`:relaton-render-config:`::
Override the default configuration of Relaton Render selectively, with attributes from the
named configuration YAML file [added in https://github.com/metanorma/metanorma-standoc/releases/tag/3.2.4].
See https://www.relaton.org/specs/relaton-render/[Relaton Render specification] for description of
the configuration file format. We recommend you inspect the configuration compiled into the flavor gem
(`lib/relaton/render/config.yml`) and include modifications of that in the override config file.

== Math and scientific formatting

`:keep-asciimath:` (legacy: `:mn-keep-asciimath:`)::
Do not translate Asciimath in the document to MathML.

`:suppress-asciimath-dup:`::
By default, MathML in the Metanorma XML has equivalent AsciiMath added
to it in a comment. This AsciiMath can be used as an accessibility
alternative to the MathML expression. The generation of this AsciiMath
can be suppressed [added in
https://github.com/metanorma/metanorma-standoc/releases/tag/v1.10.5].

[[stem]] `:stem:`::
(Defaults to `asciimath`) The default language for `stem:[...]` and `[stem]`
blocks expressions in the document. (AsciiMath, MathML, or LaTeX). For example,
if you want the `stem` expressions in your document to be interpreted as LaTeX
by default, use `:stem: latexmath`.

Read more about
link:/author/topics/blocks/math/[mathematical expressions].

`:number-presentation:`::
Sets the formatting options for the `number:[]` command in the
document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.8.12].
Please refer to the dedicated section at
link:/author/topics/inline_markup/semantic-elements#numbers[numbers] for usage.
+
.Using the `:number-presentation:` attribute
[example]
====
[source,adoc]
----
:number-presentation: notation=e,exponent_sign=plus,precision=4

number:341[]
----
====


`:number-presentation-profile-{NAME}:`::
Sets the formatting options for the `number:[]` command in the document
as profile `{NAME}` [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.8.12].
Please refer to the dedicated section at
link:/author/topics/inline_markup/semantic-elements#numbers[numbers] for usage.
+
.Using the `:number-presentation-profile-{NAME}:` attribute
[example]
====
[source,adoc]
----
:number-presentation-profile-3: notation=scientific,exponent_sign=nil,decimal=","
...

number:342[profile=3]
----
====


`:number-presentation-formula:`::
Sets the formatting options for numbers contained in formulas [added in https://github.com/metanorma/metanorma-standoc/releases/tag/2.9.6].
Please refer to the dedicated section at
link:/author/topics/inline_markup/semantic-elements#formula-numbers[numbers in formulas].

== Languages and localization

See also the link:/author/topics/languages[Languages] topic.

`:i18nyaml:`::
Name of YAML language template file.
Use if you wish to output an standard in a language that's not supported out of the box.
For more on how to customize localization, see link:/develop/topics/localization[Localization].

`:language:`::
Two-letter code (ISO 639-1) of the language the document is written in. Defaults to `en`.

`:script:`::
The script of the document (ISO 15924). Defaults to `Latn`. Must be supplied as
`Hans` for Simplified Chinese.

`:locale:`::
The locale of the document (currently expected to be a two-letter country code,
ISO 3166-1 alpha-2). [added in https://github.com/metanorma/metanorma-standoc/releases/tag/2.2.4]

`:boilerplate-authority:`::
File containing predefined text of document, in Metanorma XML. The document
predefined text needs to follow the structure described in
link:/develop/topics/metadata-and-boilerplate#boilerplate[Predefined text];
compare examples of Metanorma predefined text files such as
https://github.com/metanorma/metanorma-itu/blob/main/lib/metanorma/itu/boilerplate.xml[that in ITU]
 [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.3.15].

`:localize-number:`::
Template for how to present localized numbers. The localization template string is in the following form:
+
`:localize-number: +++#,##0.### ###+++`
+
TIP: See link:/author/topics/languages#number-localization[Number localization]
for how numbers are localized in
Metanorma [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.2.4].


== Document information

`:publisher_{i}:`:: The standards agency publishing the standard. The first publisher is given as
`:publisher:`; more publishers are added with the suffix `_2`, `_3`, etc., e.g. `:publisher_2:`,
`:publisher_3:` [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.7.0].
+
NOTE: Prior to 1.7.0, this field accepted comma-delimited values [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.5.1].
+
NOTE: Prior to 2.7.0, this field accepted semicolon-delimited values [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.7.0].
These are processed via CSV, recognising quote marks. This functionality is maintained in later versions,
but other attributes of organisations are ignored (`publisher_logo`, `pub-address`, etc.)

`:publisher_abbr_{i}:`:: The abbreviation of the publisher; if not provided, and the standards organisation is the home
organisation of the standard, the SDO's abbreviation will already be available to Metanorma, and will be
supplied [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v3.0.7].

`:publisher_logo_{i}:`:: The logo of the publisher, specified as an image file; the numbers in the attribute
align to the `:publisher_{i}:` attributes [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.7.0].

`:sponsor_{i}:`:: An organization sponsoring the publication of this document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.7.0].
+
NOTE: If a person needs to be nominated as the responsible party for a sponsoring organization,
that person should be treated as a personal contributor (`:surname_{i}:`, `:affiliation_{i}:`, etc.),
with a `:role:` attribute of `enabler`.

`:sponsor_logo_{i}:`:: The logo of the sponsoring organization, specified as an image file; the numbers in the attribute
align to the `:sponsor_{i}:` attributes [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.7.0].

`:copyright-holder:`:: The copyright holder, if distinct from the publisher;
can be multiple
(semicolon-delimited: processed via CSV, recognising quote marks). [added in
https://github.com/metanorma/metanorma-standoc/releases/tag/v1.7.0]. +
+
NOTE: Prior to 1.7.0, this field accepted comma-delimited values [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.5.1].

[[docnumber]] `:docnumber:`::
The numeric component of the document identifier.
The full identifier is formed by prefixing and suffixing this element with other strings
derived from metadata.

`:docidentifier:`::
The `:docidentifier:` attribute is an alternative to `docnumber` and other
attributes (such as `doctype` and `docstage`).
+
The value here is supposed to be the "full document identifier" and overrides
the composition of the automatically-constructed document identifier [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.3.9].
+
If `:docidentifier:` is supplied, _`:docnumber:` and the other related
attributes are ignored_ when composing the identifier for the document. The
`:docidentifier:` attribute is used for document identifiers that do not follow
normal SDO conventions, and for which the identifier cannot be constructed out of
`:docnumber:` in the normal way.
+
NOTE: Since `:docidentifier:` is a preformatted value, and it is opaque to Metanorma. This means that Metanorma cannot
make any inference about the internal structure of the identifier. For example, Metanorma cannot generate
undated or language-specific variants of the identifier, or mark up the part number separately
from the document number, as is required by ISO.
+
WARNING: `:docidentifier:` should be avoided unless absolutely necessary due to
the limitations its usage brings. Metanorma maintains the `pubid-*` set of
software libraries to generate document identifiers for different Metanorma
flavours, and those libraries should be updated to deal with the novel use case.

`:docidentifier-additional:`::
This attribute provides additional primary identifiers for the document, to be used alongside
the native identifier generated from `docnumber` or `docidentifier` [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.8.2].
It is intended for copublished standards with multiple primary identifiers.
The list of identifiers is comma-delimited, and is specified as TYPE:VALUE; e.g.
`:docidentifier-additional: IDF:IDF 21, RFC:RFC 97`.

`:edition:`::
The document edition.

`:version:`::
The document version [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v3.1.0].
The distinction between `:edition:` and `:version:` is specific to the SDO, but the overall trend is that
`:edition:` corresponds to major versions, and are what corrigenda and amendments apply to, while `:version:`
corresponds to minor versions and patches, including pre-publication versions (drafts). However,
only `:version:` is used if the SDO uses semantic versioning throughout. Before `:version:` was added
to Metanorma, `:draft:` fulfilled that function instead.

`:revdate:`::
The date the document was last updated.

`:library-ics:`::
The ICS (International Categorization for Standards) number for the standard.
There may be more than one ICS for a document; if so, they should be comma-delimited.
(The ICS identifier is added to the document metadata,
but may not be visible in the resulting document, depending on Metanorma flavor.)

`:isbn:`::
The ISBN-13 number of the document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.6.2].
This value is optional.

`:isbn10:`::
The ISBN-10 number of the document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.6.2]
This value is optional.

`:title:`::
The title of the document. If not supplied, the built-in AsciiDoc title
(first line of document header) is used instead.

`:title-{langcode}:`::
The title of the document in the language `langcode`. `langcode` is a ISO 639-1 code.
[example]
`:title-en:`, `:title-fr`:

`:title-{type}-{langcode}:`::
The title of the document in the language `langcode`, and of type `type` [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v3.1.6].
+
[example]
`:title-main-en:`, `:title-intro-fr`:
+
NOTE: This was previously supported only in individual flavours that required
title parts, such as ISO that supports `main`, `intro`, `part`, `complementary`,
`addendum`. It is now supported generically in Metanorma.

`:title-{type}-{langcode}:`::
The title of the document in the language `langcode`, and of type `type` [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v3.1.6]. Note: this was previously supported only in individual flavours.

`:doctype:`::
The document type; e.g. `standard`, `guide`, `report`.

`:docsubtype:`::
The document subtype; by default, used to provide an ad hoc, user defined document class,
unless provided for explicitly in the flavour,
as in OGC [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.9.1]

`:status:`, `:docstage:`:: The status of the document; e.g. `draft`, `published`.

`:docsubstage:`:: The substage code for the document status, where applicable.

`:iteration:`:: The iteration of a stage, in case there have been multiple drafts
(e.g. `2` on a `CD`: this is the second iteration through the `CD` stage).

`:keywords:`::
Comma-delimited list of keywords associated with the document.

`:classification:`::
Comma-delimited list of classification tokens, expressed as `type:value` pairs; if no prefix is given to a value,
"default" is supplied as the type [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.9.1].
There can only be one value per type in a token; if there are multiple classification values of the same type,
repeat the type in a new token; e.g.  `:classification: Dewey:563.5.081, Dewey:537.71`.

[[draft]] `:draft:`::
If present, link:/author/topics/blocks/annotations[reviewer notes]
will be rendered (otherwise those are suppressed). Is also ued as a legacy
equivalent of `:version:` [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v3.1.0].

`:document-scheme:`::
Document content arrangement that Metanorma will enforce for this document.
+
Accepted values are flavour-specific.
+
Depending on the document scheme, Metanorma may insert clauses with
predetermined text and orders clauses in accordance with the style prescribed by
the SDO. If those styles are updated, this attribute indicates to Metanorma
which iteration of the prescription to
enforce [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.1.6].
+
NOTE: As of this writing, implemented in the IEEE, BSI, ITU and ISO flavours.


== Generic metadata

Metanorma allows generic metadata to be passed to the generated document in key/value form, for downstream
use [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.0.1].
This metadata needs to be indicated as either semantic, or presentation-related. The name of the metadata
value is included in the document attribute:

`:semantic-metadata-{name}:`::
Comma-delimited list of values, relating to `name` as semantic metadata about the document.
Stored in the document under `//metanorma-extension/semantic-metadata/{name}`, with repeating tags for each value.

`:presentation-metadata-{name}:`::
Comma-delimited list of values, relating to `name` as presentation metadata about the document.
Stored in the document under `//metanorma-extension/presentation-metadata/{name}`, with repeating tags for each value.

The following instances of generic metadata are applicable to all flavors of
Metanorma; other instances are specific to flavors, and are documented there:

`:semantic-metadata-headless:`:: This document is to be compiled without adding
initial document boilerplate to it. This is used for compiling Metanorma AsciiDoc
boilerplate documents themselves.

`:presentation-metadata-doctype-alias:`:: Specify how the document type is to be
rendered. This overrides the language-specific internationalization of the
supplied document type, and is used in Metanorma tastes, to override the base
flavor document type rendering. [added in https://github.com/metanorma/isodoc/releases/tag/v3.2.0]

`:presentation-metadata-custom-charset-font:`:: Specify a custom character set for
https://en.wikipedia.org/wiki/Private_Use_Areas[Unicode "Private Use Area" (PUA)]
character codepoints [added in https://github.com/metanorma/isodoc/releases/tag/v2.7.0]

`:presentation-metadata-publisher-{doc|html|pdf}-{width|height}[_{i}]:`::
Specify height and width of the publisher logo, for each of the standard output
formats of Metanorma [added in https://github.com/metanorma/isodoc/releases/tag/v3.2.0].
+
The publishers are read in the same sequence for logo attributes as they are for
publisher names and abbreviations, and the numbering includes the primary
publisher of the document as the first publisher (for which a logo typically
does not need to be specified.)
+
[example]
====
For example, `presentation-metadata-publisher-pdf-height_2` specifies the height
of the coverpage logo in PDF of the second specified publisher.
====

`:presentation-metadata-ul-label-list:`:: Specify the characters to be used as
bullets for unordered lists, as a comma-delimited list of strings, each string
corresponding to a deeper level of list [added in https://github.com/metanorma/isodoc/releases/tag/v3.2.2].
The bullet list rotates once the list is exceeded.
+
[example]
====
`:presentation-metadata-ul-label-list: *,&#x2013;,"x,x"` will use `*` at level 1;
`&#x2013;` at level 2, `x,x` at level 3, then go back to  `*` at level 4.
====
+
NOTE: Custom unordered list bullets are only processed for PDF output.

`:presentation-metadata-annex-delim:`:: Delimiter between the line heading
giving the number of an annex, and the title of the annex (Metanorma XML,
default `<br/><br/>`)
 [added in https://github.com/metanorma/isodoc/releases/tag/v3.2.7].

`:presentation-metadata-middle-title:`:: Presentation XML Liquid template for
middle title (document title at the start of the main section of the document)
(Metanorma XML, default `"<p class='zzSTDTitle1'>{{ doctitle }}</p>"`)
 [added in https://github.com/metanorma/isodoc/releases/tag/v3.2.7].

[[document-relations]]
== Document relations

=== General

These attributes takes a document identifier in the Relaton format:

* If the document can be found via Relaton auto-fetch (e.g. a published IEC standard), the actual bibliographic item will be used.
* Otherwise, a dummy bibliographic item with an empty title and the nominated document identifier will be used.

Multiple document identifiers can be delimited by `;`. If the document cannot be auto-fetched,
a title for each document nominated can be introduced, delimited from the document identifier
by `,`. For example, `NIST SP 800-1,Title 1;NIST SP 800-2,Title 2`.

=== Part of

`:part-of:`:: document identifier that the current document is a part of.

This document attribute applies to a document part in order to point to the parent document.

=== Translated from

`:translated-from:`:: document identifier that the current document is a translation of.

This document attribute applies to a translated document, pointing to the original (untranslated) document.


== URIs

`:uri:`:: The URI to which this standard is published.
`:xml-uri:`:: The URI to which the (Metanorma) XML representation of this standard is published.
`:html-uri:`:: The URI to which the HTML representation of this standard is published.
`:pdf-uri:`:: The URI to which the PDF representation of this standard is published.
`:doc-uri:`:: The URI to which the DOC representation of this standard is published.
`:relaton-uri:`:: The URI to which the Relaton XML representation of this standard is published.

[[timestamps]]
== Timestamps

[[copyright-year]] `:copyright-year:`::
The year which will be claimed as when the copyright for the document was issued.

`:announced-date:`::
The date on which the publication of the standard was announced by the issuing authority.

[[issued-date]] `:issued-date:`::
The date on which the standard was issued (authorised for publication by the issuing authority).

[[published-date]] `:published-date:`::
The date on which the standard was published (distributed by the publisher).

`:implemented-date:`::
The date on which the standard became active.

[[created-date]] `:created-date:`::
The date on which the first version of the standard was created.

`:updated-date:`::
The date on which the current version of the standard was updated.

`:corrected-date:`::
The date on which the current version of the standard was corrected, without that correction amounting to a distinct
update [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.6.3].

`:obsoleted-date:`::
The date on which the standard was obsoleted/revoked.

`:confirmed-date:`::
The date on which the standard was reviewed and approved by the issuing authority.

`:unchanged-date:`::
The date on which the standard was last renewed without any changes in content.

`:circulated-date:`::
The date on which the unpublished standard was last circulated officially as a preprint. For standards, this is associated with the latest transition to a formally defined preparation stage, such as Working Draft or Committee Draft.

`:accessed-date:`::
The date on which the standard was last accessed by the compiler of the bibliography; e.g. for a cited online resource,
the date on which the document author viewed the resource.

`:date:`::
An arbitrary date in the production of the standard. Content of the attribute should be a token, giving the type of date, then space, then the date itself. Multiple dates can be added as `:date_2:`, `:date_3:`, etc.

`:vote-started-date:`::
The date on which the voting process starts for this document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.3.25].

`:vote-ended-date:`::
The date on which the voting process ends for this document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.3.25].

`:announced-date:`::
The date on which the document was announced as forthcoming [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.9.3].


== Author information

`:technical-committee:`::
The name of the relevant technical committee.

`:corporate-author_{i}:`:: The organization authoring the standard [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v3.1.5].
+
This document attribute **should not** be provided if the authoring organization
is identical to the publishing body, as its value is automatically set to that
of `:publisher:`.
+
Use `:corporate-author:` **only when** a standard is authored or co-authored by
an agency distinct from the publishing body, and only the publishing agency is
credited as the publisher.
+
Multiple agencies can be specified as corporate authors (similar to
`:publisher:`). The first agency specified is expected to be the publishing
body. Use `:corporate-author_2:`, `:corporate-author_3:`, etc. for additional
agencies.
+
NOTE: For personal authors, use `:fullname:` or `:surname:` and `:givenname:`
instead.

[[fullname]] `:fullname{_i}:`::
The full name of a person who is a contributor to the document.
A second person is indicated by using a numeric suffix: `:fullname:`, `:fullname_2:`, `fullname_3:`, &c.
The same convention applies to all the following attributes.
(This and the other personal name attributes are not displayed in all standards.)

[[surname]] `:surname{_i}:`::
The surname of a person who is a contributor to the document.

[[givenname]] `:givenname{_i}:`::
The given name(s) of a person who is a contributor to the document.

`:initials{_i}:`::
The initials(s) of a person who is a contributor to the document.

`:contributor-credentials{_i}:`::
Credentials of the person, appearing after their name in Metanorma flavour-specific
contexts [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.3.9].

[[role]] `:role{_i}:`::
The role of a person who is a contributor to the document.
By default, they are coded as an `editor`; they can also be represented as an `author`,
or (if they are the responsible party for a sponsoring organization) `enabler`.
Is meant to draw from the constrained vocabulary of Relaton: `author`, `editor`, `adapter`,
`translator`, `performer`, `realizer`, `publisher`, `distributor`, `owner`, `authorizer`,
`enabler`, `subject`; see https://www.relaton.org/model/creator/[Relaton specification].

`:role-description{_i}:`::
A more detailed description of the role of a person who is a contributor to
the document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.7.5].

`:affiliation{_i}:`::
The organization that a person who is a contributor to the document is affiliated with.

`:affiliation_abbrev{_i}:`::
The abbreviation of the organization that a person who is a contributor to the document
is affiliated with [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.3.12].

`:affiliation_subdiv{_i}:`::
The subdivision of the organization that a person who is a contributor to the document
is affiliated with [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.7.0].
The subdivisions can be multiple (semicolon-delimited: processed via CSV, recognising quote marks),
and they can also be hierarchical, with multiple levels of subdivision (comma-delimited,
from larger to smaller) [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.8.3];
the different hierarchical levels can optionally be prefixed with type and a colon.

`:affiliation_logo{_i}:`::
The logo of the organization that a person who is a contributor to the document
is affiliated with, specified as an image file [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.7.0].

`:contributor-credentials{_i}:`::
The credentials of the person (e.g. "PhD, F.R.Pharm.S"); these are often displayed inline with the
person's name [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.3.9].

`:contributor-position{_i}:`::
The position of the person within the organization [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.3.9].

`:address{_i}:`::
The organizational address of a person who is a contributor to the document.
Mutually exclusive with street/city/region/country/postcode.

`:street{_i}:`::
The street component of the organization address of a person who is a contributor
to the document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.9.4].

`:city{_i}:`::
The city component of the organization address of a person who is a contributor
to the document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.9.4].

`:region{_i}:`::
The region component of the organization address of a person who is a contributor
to the document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.9.4].

`:country{_i}:`::
The country component of the organization address of a person who is a contributor
to the document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.9.4].

`:postcode{_i}:`::
The postcode component of the organization address of a person who is a contributor
to the document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.9.4].

`:contributor-uri{_i}:`::
The URI of a person who is a contributor to the document.

`:email{_i}:`::
The email of a person who is a contributor to the document.

`:phone{_i}:`::
The phone number of a person who is a contributor to the document.

`:fax{_i}:`::
The fax number of a person who is a contributor to the document.

`:subdivision:`::
The subdivision of the organization that is responsible for this
document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.6.1].
The subdivisions can be multiple (semicolon-delimited: processed via CSV, recognising quote marks),
and they can also be hierarchical, with multiple levels of subdivision (comma-delimited,
from larger to smaller) [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.8.3];
the different hierarchical levels can optionally be prefixed with type and a colon.

`:subdivision-abbr:`::
The abbreviation of the subdivision of the organization that is responsible for this
document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.6.1].

`:pub-address_{i}:`::
The address of the organization responsible for this document, if it overrides
the default. [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.6.1].
The number of this and subsequent attributes aligns with the number of
`:publisher_{i}:` [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.6.1] +
+
[NOTE]
--
Each line in a multi-line address must end with `+ \`, e.g.

[source,adoc]
----
:pub-address: 1 Infinity Loop + \
California + \
United States of America
----
--
+
NOTE: As of 2.7.0, if `:publisher:` is semicolon-delimited, instead of using numbered attributes,
this and subsequent publisher attributes are ignored.

`:pub-phone_{i}:`::
The phone number of the organization responsible for this document, if it overrides
the default [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.6.1].

`:pub-fax_{i}:`::
The fax number of the organization responsible for this document, if it overrides
the default [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.6.1].

`:pub-email_{i}:`::
The email of the organization responsible for this document, if it overrides
the default [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.6.1].

`:pub-uri_{i}:`::
The URI of the organization responsible for this document, if it overrides
the default [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.6.1].

`:sponsor-address_{i}:`, `:sponsor-phone_{i}:`, `:sponsor-fax_{i}:`, `:sponsor-email_{i}:`, `:sponsor-uri_{i}:`::
The address, phone number, fax number, email, URI of an organization sponsoring
this document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.7.0].

`:sponsor-subdivision_{i}:`::
The subdivision of the organization that is sponsoring this document.
The subdivisions can be multiple (semicolon-delimited: processed via CSV, recognising quote marks),
and they can also be hierarchical, with multiple levels of subdivision (comma-delimited,
from larger to smaller) [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.8.3];
the different hierarchical levels can optionally be prefixed with type and a colon.

`:authorizer_{i}:`::
The organisation that authorised this document  [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.8.3].

`:authorizer_logo_{i}:`::
The logo of the sponsoring organization, specified as an image file; the numbers in the attribute
align to the `:authorizer_{i}:` attributes   [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.8.3].

`:authorizer-address_{i}:`, `:authorizer-phone_{i}:`, `:authorizer-fax_{i}:`, `:authorizer-email_{i}:`, `:authorizer-uri_{i}:`::
The address, phone number, fax number, email, URI of an organization authorizing
this document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.8.3].

`:authorizer-subdivision_{i}:`::
The subdivision of the organization that is authorizing this document.
The subdivisions can be multiple (semicolon-delimited: processed via CSV, recognising quote marks),
and they can also be hierarchical, with multiple levels of subdivision (comma-delimited,
from larger to smaller) [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.8.3];
the different hierarchical levels can optionally be prefixed with type and a colon.

== Style customization

=== Fonts

`:fonts:`::
+
--
Semicolon-delimited listing of fonts to be used for this document, in addition
to the fonts predefined for the
flavour [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.0.7]. +

Valid values are font names supported by https://www.fontist.org[Fontist].
The full font name listing is available from the
https://github.com/fontist/formulas[Fontist Formulas] repository.

NOTE: This is currently only used in PDF generation.

.Example of setting a custom font to Euphemia
[example]
====
The https://www.tiro.com/syllabics/resources/index.html[Euphemia] font is
an openly licensed font for end-users only commonly used to render
https://en.wikipedia.org/wiki/Canadian_Aboriginal_syllabics[Canadian Syllabics].
The font name `Euphemia` is supported by Fontist for unattended
install. In a document that contains Canadian Syllabics, the following attributes
can be used.

[source,adoc]
----
:fonts: Euphemia
:font-license-agreement: agree-to-terms
----
====
--

`:font-license-agreement:`::
+
--
The response to the license agreement prompt by https://www.fontist.org[fontist]
for the fonts specified in
`:fonts:` [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.0.7].

Valid values are:

* `no-install-fonts`: (default) do not install any additional fonts, even when
listed in `:fonts:`.

* `agree-to-terms`: agree to all terms of the fonts that will be installed in an
unattended manner.

* `continue-without-fonts`: do not warn if a font is not available on the
system.
--

`:body-font:`::
Font for body text; will be inserted into CSS, overriding the default set for
the particular Metanorma flavour.

`:header-font:`::
Font for headers; will be inserted into CSS, overriding the default set for
the particular Metanorma flavour.

`:monospace-font:`::
Font for monospace; will be inserted into CSS, overriding the default set for
the particular Metanorma flavour.


=== HTML

`:html-stylesheet:` (legacy: `htmlstylesheet`)::
SCSS stylesheet to use for HTML output. Defaults to built-in stylesheet
for the particular Metanorma flavour.  Overriding is not recommended.

`:html-stylesheet-override:` (legacy: `htmlstylesheet-override`)::
CSS stylesheet to use for HTML output, inserted after the built-in stylesheet
for the particular Metanorma flavour, and can be used to override
it. [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.8.7]

`:html-cover-page:` (legacy: `htmlcoverpage`)::
HTML template for cover page.
Defaults to built-in template for the particular Metanorma flavour.
Overriding is not recommended.

`:html-intro-page:` (legacy: `htmlintropage`)::
HTML template for introductory section.
Defaults to built-in template for the particular Metanorma flavour.
Overriding is not recommended.


`:scripts:`::
JavaScript scripts for HTML output.
Defaults to built-in scripts for the particular Metanorma flavour.
Overriding is not recommended.

`:scripts-override:`::
JavaScript scripts for HTML output. Inserted after any built-in
scripts for the particular Metanorma flavour, and can be used to
override them. [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.9.4]

`:scripts-pdf:` (DEPRECATED)::
JavaScript scripts for HTML to PDF output.
Defaults to built-in scripts for the particular Metanorma flavour.
Overriding is not recommended.


=== PDF

`:presentation-metadata-papersize:`::
PDF document page size. Can be used to override the page size in built-in stylesheet for the particular Metanorma flavour.
Valid values are: `Letter`, `letter`, `A4` or `a4`.

`:pdf-stylesheet:` (legacy: `pdfstylesheet`)::
XSLT stylesheet to use for PDF output [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v3.0.10].
Defaults to built-in stylesheet for the particular Metanorma flavour.
Overriding is not recommended.

`:pdf-stylesheet-override:` (legacy: `pdfstylesheet-override`)::
XSLT stylesheet to use for PDF output, inserted after the built-in stylesheet
for the particular Metanorma flavour, and can be used to override
it. [added in https://github.com/metanorma/metanorma-standoc/releases/tag/3.0.10]


=== Word

`:word-stylesheet:` (legacy: `wordstylesheet`)::
Primary SCSS stylesheet to use for Word output.
Defaults to built-in stylesheet for the particular Metanorma flavour.
Overriding is not recommended.

`:standard-stylesheet:` (legacy: `standardstylesheet`)::
Secondary SCSS stylesheet use for Word output.
Defaults to built-in template for the particular Metanorma flavour.
Overriding is not recommended.

`:word-stylesheet-override:` (legacy: `wordstylesheet-override`)::
CSS stylesheet to use for Word output, inserted after the built-in stylesheet
for the particular Metanorma flavour, and can be used to override
it [added in https://github.com/metanorma/isodoc/releases/tag/v1.8.7].

`:header:`::
Header and footer file for Word output.
Defaults to built-in template the particular Metanorma flavour.
Overriding is not recommended.

`:word-cover-page:` (legacy: `wordcoverpage`)::
Word template for cover page.
Defaults to built-in template for the particular Metanorma flavour.
Overriding is not recommended.

`:word-intro-page:` (legacy: `wordintropage`)::
Word template for introductory section.
Defaults to built-in template for the particular Metanorma flavour.
Overriding is not recommended.

`:ulstyle:`::
Word CSS selector for unordered lists in supplied stylesheets.
Defaults to value for built-in stylesheet.
Overriding is not recommended.

`:olstyle:`::
Word CSS selector for ordered lists in supplied stylesheets.
Defaults to value for built-in stylesheet.
Overriding is not recommended.


=== Cover page

`:coverpage-image:`:: Comma-delimited list of image locations, for images to be
included on the (PDF) cover page. All image locations are relative to the source
document. Currently only supported for BSI, ITU, JIS, Plateau.
+
If the supplied image(s) is to replace the cover page(s) of the document in its
entirety, and already includes title information, add
the attribute `:presentation-metadata-full-coverpage-replacement: true` (supported for all flavours).

`:innercoverpage-image:`:: Same, for images to be included on the (PDF) inside
cover page. Currently only supported for BSI.

`:tocside-image:`:: Same, for images to be included on the (PDF) Table of
Contents side page. Currently only supported for BSI.

`:backpage-image:`:: Same, for images to be included on the (PDF) back page.
Currently only supported for BSI, JIS.


== Image handling

=== Data URI

`:data-uri-image:`::
Encode all images in Metanorma XML and HTML output as inline data-URIs.
Defaults to `true`. [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.11.0].

`:data-uri-maxsize:`::
Set the maximum permitted size of a Data URI-encoded image, in bytes.
Defaults to `13981013` bytes (size of the Base-64 encoding of a 10 MB image).
If set to `0`, no maximum is enforced. [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.9.1].

`:data-uri-attachments:`::
Encode all attachments in Metanorma XML as inline data-URIs.
Defaults to `true`. [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.8.10].

=== SVG

`svg-conform-profile`::
Profile of the https://github.com/claricle/svg_conform[`SVGConfirm`] software library to apply for
SVG validation and repair. See https://github.com/claricle/svg_conform/blob/main/docs/profiles.adoc[SVG Profiles]
for the available profile values. Metanorma by default uses the `metanorma` profile by default, except for
IETF, which uses `svg_1_2_rfc` [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v3.2.1].

=== PlantUML

`:plantuml-image-format:`::
Format to generate PlantUML diagrams as. Legal values are `png`, `svg`.
Defaults to `png`. [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v3.0.9].


== Cross-references

`:xrefstyle:`::
Override the default rendering of cross-references to
clauses [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.2.6].
Available styles as follows:

`short`::: (default) the clause type and number is used as the cross-reference.
+
.Example of a cross-reference rendered in the "short" style
[example]
"Clause 3.1.2"

`basic`::: the title of the clause is used as the cross-reference.
+
.Example of a cross-reference rendered in the "basic" style
[example]
"Other considerations"

`full`::: combines the title with the clause type/number cross-reference.
+
.Example of a cross-reference rendered in the "full" style
[example]
"Clause 3.1.2, Other considerations"

`id`::: the cross-reference is to be rendered as the target anchor identifier
(or any identifier aliasing the
anchor) [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.2.7].
+
.Example of a cross-reference rendered in the "id" style
[example]
====
The following cross-reference:

[source,adoc]
----
[[my-anchor]]
=== My title
...

=== Another place
<<my-anchor>>
----

Renders the cross-reference as:

"my-anchor"
====

`:modspec-identifier-base:`::
(optional)
Base identifier pattern for ModSpec instances throughout the document. The
attribute value provides a prefix that will be removed from all ModSpec instance
identifiers used to cross-reference ModSpec instances. The specification of the
pattern only affects the rendering of cross-references, not the underlying XML
representation of the ModSpec instances. See more details at
link:/author/topics/blocks/requirements-modspec/#identifier-base[ModSpec identifier base] [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.2.7].

`:block-unnumbered:`::
(optional)
A comma-delimited list of Metanorma block names, which should have numbering
suppressed throughout the document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.4.6].
Typically will be used for sourcecode fragments: `:block-unnumbered: sourcecode`.


[[smart-quotes]]
== Smart quotes

`:smartquotes:`::
Apply "`smart quotes`" and other auto-formatting to the XML output (and hence
the downstream outputs). Available values below:

`true`::: (default) Smart quotes are not applied to the following type of text:
*** text in source code;
*** text in pseudo-code;
*** text in monospace.

`false`::: The AsciiDoc default is used to generate smart quotes:
`"&#x060; &#x060;"`, `'&#x060; &#x060;'`. The rules for smart formatting follow
the https://github.com/pbhogan/sterile[sterile] gem, and are given in
https://github.com/pbhogan/sterile/blob/main/lib/sterile/data/smart_format_rules.rb[smart_format_rules.rb].
In particular:

* `"` and `'` followed by space, with optional punctuation intervening, are treated as closing,
and converted to smart closing quotes `”` and `’`.
* `"` and `'` preceded by space, with optional punctuation intervening, are treated as opening,
and converted to smart opening quotes `“` and `‘`.
* Midword apostrophes are treated as closing: `Sana'a` becomes `Sana’a`.
* Initial apostrophes before numerals are treated as closing: `'80s` becomes `’80s`.
* There are many possible exceptions to these default rules, such as initial apostrophes
(`fish ’n’ chips`), and quote pairs used to illustrate the punctuation (`Use smart quotes (" ")`).
For such cases, use either real smart quotes (the literal characters `“ ” ‘ ’`) or the Asciidoc
ASCII codes, `"&#x060; &#x060;"`, `'&#x060; &#x060;'`

The smart quotes converted by Metanorma postprocessing are specifically those of English.
Other languages' smart quotes will need to be entered as the correct characters.

== Table of contents

`:toclevels:`::
Number of table of contents levels to render. Accepts an integer value. (default: `2`).
Can be overridden with output-specific options (`htmltoclevels`, `doctoclevels`).

`:toclevels-html:`::
Number of table of contents levels to render in HTML output; used to override
`:toclevels:` for HTML output. Accepts an integer value. (default: `2`).
Formerly `:htmltoclevels:` [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.7.5].

`:toclevels-doc:`::
Number of table of contents levels to render in Microsoft Word "DOC" output;
used to override `:toclevels:` for Word DOC output. Accepts an integer value.
(default: `2`).
Formerly `:doctoclevels:` [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.7.5].

`:toclevels-pdf:`::
Number of table of contents levels to render in PDF output;
used to override `:toclevels:` for PDF output [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.7.5].
Accepts an integer value. (default: `2`)

`:toc-figures:`::
Introduce table of contents for figures [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.0.4].
No attribute value needed.
Only numbered and/or captioned figures are included.

`:toc-tables:`::
Introduce table of contents for tables [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.0.4].
No attribute value needed.
Only numbered and/or captioned tables are included.

`:toc-requirements:`::
Introduce table of contents for requirements, recommendations, and
permissions [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.0.4].
No attribute value needed.
Only numbered and/or captioned requirements, recommendations, and permissions are included.


== Tables

`:break-up-urls-in-tables:`::
If present, long strings in table cells are broken up on rendering, to help
tables fit within the page width.  No attribute value needed. [added in
https://github.com/metanorma/metanorma-standoc/releases/tag/v1.3.25].
The current behaviour is: strings are broken by zero-width spaces;
words are broken up every 10 characters on punctuation (e.g. URIs on / ),
and every 20 characters if there is no punctuation in the word,
in order to deal with very narrow columns. (Because the break is zero-width,
it will not be visible unless it coincides with the end of a column.)



== Sourcecode

`:sourcecode-markup-start:`::
Initial delimiter for markup inserted in sourcecode [added in
https://github.com/metanorma/metanorma-standoc/releases/tag/v1.7.4]

`:sourcecode-markup-end:`::
Final delimiter for markup inserted in sourcecode [added in
https://github.com/metanorma/metanorma-standoc/releases/tag/v1.7.4]

`:source-highlighter:`::
Whether to use a source highlighter for sourcecode; default value is true [added in
https://github.com/metanorma/metanorma-standoc/releases/tag/v2.3.2]

`:source-linenums-option:`::
Provided a source highlighter is being used, whether to display line numbers; default value is false [added in
https://github.com/metanorma/metanorma-standoc/releases/tag/v2.3.2]

`:bare:`::
(optional)
The document is rendered in "`bare form`" -- without the cover page,
boilerplate, or introductory text expected of a complete
document [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.9.4].
This is typically used for HTML output, e.g. clauses as standalone documents, or document attachments.

`:base-asset-path:`::
(optional)
All media paths in the XML path are relative to the given directory; used when
the Metanorma XML file to be processed is not necessarily in the same directory
as the source Metanorma AsciiDoc file, and the media file paths are given as
relative and not absolute file locations (and are not encoded as data URIs via
`:data-uri-image:`) [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.10.7].


== Logging

`:log-filter-severity:`::
Filter from error log all warnings at the given severity level or above it.
See link:/author/topics/output/validation[Validation] for valid values.
 [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.9.7]

`:log-filter-category:`::
Filter from error log all warnings belonging to one of the named categories; comma-delimited.
See link:/author/topics/output/validation[Validation] for valid values.
 [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v2.9.7]

`:log-filter-error-ids:`::
Filter from error log all warnings with the identifiers of individual errors to exclude (comma-delimited).
See link:/author/topics/output/validation#error-id[Error ID].
  [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v3.2.1].


== PDF protection and permissions

All the following attributes relate to protection of PDF files as described
in https://www.iso.org/standard/51502.html[ISO 32000-1:2008].
copying [added in https://github.com/metanorma/metanorma-standoc/releases/tag/v1.11.3].

`:pdf-encrypt:`::
Specify encryption of PDF output.

`true`::: Applies encryption to PDF output.
`false`::: Do not encrypt PDF output. (default)

`:pdf-encryption-length:`::
Specify encryption strength.

`256`::: Use 256-bit AES keys (default)
`128`::: Use 128-bit AES keys.

`:pdf-user-password:`::
Specify user password needed to open the encrypted PDF document.
The attribute value sets the user password.

`:pdf-owner-password:`::
Specify owner password to bypass restrictions on encrypted PDF document.
The attribute value sets the owner password.

`:pdf-allow-copy-content:`::
Allow content to be copy-pasted from the PDF document.

`true`::: Content can be copy-pasted from the PDF document. (default)
`false`::: Content cannot be copy-pasted from the PDF document.

`:pdf-allow-edit-content:`::
Allow content of the PDF document to be edited.

`true`::: Content of the PDF document can be edited. (default)
`false`::: Content of the PDF document cannot be edited.

`:pdf-allow-assemble-document:`::
Allow inserting, deleting, or rotating pages in the PDF document.

`true`::: Inserting, deleting or rotating pages in the PDF document is allowed. (default)
`false`::: Inserting, deleting or rotating pages in the PDF document is disallowed.

`:pdf-allow-edit-annotations:`::
Allow annotations and signatures to be added to the PDF document.

`true`::: Annotations and signatures can be added to the PDF document. (default)
`false`::: Annotations and signatures cannot be added to the PDF document.

`:pdf-allow-print:`::
Allow PDF document to be printed, physically or to a file.

`true`:: PDF content can be printed, physically or to a file. (default)
`false`:: PDF content cannot be printed, physically or to a file.

`:pdf-allow-print-hq:`::
Allow PDF document to be printed in high quality.

`true`:: PDF content can be printed in high quality. (default)
`false`:: PDF content cannot be printed in high quality.

`:pdf-allow-fill-in-forms:`::
Allow forms to be filled in the PDF document.

`true`:: Forms in the PDF document can be filled in. (default)
`false`:: Forms in the PDF document are read-only, they cannot be filled in.

`:pdf-allow-access-content:`::
Allow text and graphics extraction from the PDF document for accessibility purposes.

`true`:: Text and graphics can be extracted from the PDF document. (default)
`false`:: Text and graphics cannot be extracted from the PDF document.

`:pdf-encrypt-metadata:`::
Specify encryption of the metadata stream.

`true`:: The PDF metadata stream will be encrypted. (default)
`false`:: The PDF metadata stream will not be encrypted.
