We no longer escape `(`. The reason we did this before (#9137)
has been addressed in another way (#9252).
We only escape `=`, `+`, `-` at the beginning of a line.
We now also escape `/` at the beginning of a line.
This should reduce unnecessary escapes.
Closes#9386.
...with a huge number of columns. Previously we got invalid pipe
tables when the number of table columns exceeded the setting of
`--columns`.
Closes#9346.
These styles were going into an office:styles element in content.xml,
but this is invalid. Instead they must go in styles.xml. See #9287.
The variable `highlighting-styles` no longer has any effect on
the default opendocument template, and highlighting styles are
not included in opendocument output.
when used with `--natbib` or `--biblatex`. These will treat a
bare number as a page locator, and they will be able to localize
it.
We borrow the code for stripping the locator label from the suffix
from Citeproc code. Note that the recognition of the locator label
is locale-sensitive; if `lang` is `de`, then `S. 33` is a page
reference, and `p. 33` is not!
Closes#9275.
Copying `endnotePr` causes validation errors, because it is now
referencing something that doesn't exist in the document:
```
{
"FilePath": "test/docx/golden/custom_style_reference.docx",
"ValidationErrors": "[{\"Description\":\"Element 'w:endnote' referenced by 'endnote@http://schemas.openxmlformats.org/wordprocessingml/2006/main:id' does not exist in part '/MainDocumentPart/EndnotesPart'. The reference value is '0'.\",\"Path\":{\"NamespacesDefinitions\":[\"xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\"],\"Namespaces\":{},\"XPath\":\"/w:settings[1]/w:endnotePr[1]/w:endnote[2]\",\"PartUri\":\"/word/settings.xml\"},\"Id\":\"Sem_MissingReferenceElement\",\"ErrorType\":\"Semantic\"},{\"Description\":\"Element 'w:endnote' referenced by 'endnote@http://schemas.openxmlformats.org/wordprocessingml/2006/main:id' does not exist in part '/MainDocumentPart/EndnotesPart'. The reference value is '-1'.\",\"Path\":{\"NamespacesDefinitions\":[\"xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\"],\"Namespaces\":{},\"XPath\":\"/w:settings[1]/w:endnotePr[1]/w:endnote[1]\",\"PartUri\":\"/word/settings.xml\"},\"Id\":\"Sem_MissingReferenceElement\",\"ErrorType\":\"Semantic\"}]"
}
```
For now don't copy this element, it wasn't copied before, and it doesn't
seem necessary to fix the ordering problems we had with settings.
Fixes: c9bf4da74 ("Docx writer: ensure that elements in settings are ordered correctly.")
Signed-off-by: Edwin Török <edwin@etorok.net>
```
{
"FilePath": "test/docx/golden/tables.docx",
"ValidationErrors": "[{\"Description\":\"The attribute 'http://schemas.openxmlformats.org/wordprocessingml/2006/main:val' has invalid value 'true'. The Enumeration constraint failed.\",\"Path\":{\"NamespacesDefinitions\":[\"xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\"],\"Namespaces\":{},\"XPath\":\"/w:document[1]/w:body[1]/w:tbl[1]/w:tr[1]/w:trPr[1]/w:tblHeader[1]\",\"PartUri\":\"/word/document.xml\"},\"Id\":\"Sch_AttributeValueDataTypeDetailed\",\"ErrorType\":\"Schema\"}]"
}
```
Although this one might actually be a bug in Open-XML-SDK similar to
this, or a subtle difference between standard versions:
https://github.com/dotnet/Open-XML-SDK/issues/780
Signed-off-by: Edwin Török <edwin@etorok.net>
They are equivalent, but OOXML-Validator complains:
```
{
"FilePath": "test/docx/golden/tables_separated_with_rawblock.docx",
"ValidationErrors": "[{\"Description\":\"The attribute 'http://schemas.openxmlformats.org/wordprocessingml/2006/main:val' has invalid value 'start'. The Enumeration constraint failed.\",\"Path\":{\"NamespacesDefinitions\":[\"xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\"],\"Namespaces\":{},\"XPath\":\"/w:document[1]/w:body[1]/w:tbl[2]/w:tblPr[1]/w:jc[1]\",\"PartUri\":\"/word/document.xml\"},\"Id\":\"Sch_AttributeValueDataTypeDetailed\",\"ErrorType\":\"Schema\"},{\"Description\":\"The attribute 'http://schemas.openxmlformats.org/wordprocessingml/2006/main:val' has invalid value 'start'. The Enumeration constraint failed.\",\"Path\":{\"NamespacesDefinitions\":[\"xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\"],\"Namespaces\":{},\"XPath\":\"/w:document[1]/w:body[1]/w:tbl[1]/w:tblPr[1]/w:jc[1]\",\"PartUri\":\"/word/document.xml\"},\"Id\":\"Sch_AttributeValueDataTypeDetailed\",\"ErrorType\":\"Schema\"}]"
}
```
pandoc already uses 'left' elsewhere, so be consistent, we still produce
the transitional schema, not the strict one which would have the 'start'
attribute.
Signed-off-by: Edwin Török <edwin@etorok.net>
From `make validate-docx-golden-tests2`:
```
{
"FilePath": "test/docx/golden/definition_list.docx",
"ValidationErrors": "[{\"Description\":\"The element has unexpected child element 'http://schemas.openxmlformats.org/wordprocessingml/2006/main:i'.\",\"Path\":{\"NamespacesDefinitions\":[\"xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\"],\"Namespaces\":{},\"XPath\":\"/w:document[1]/w:body[1]/w:p[3]/w:r[3]/w:rPr[1]\",\"PartUri\":\"/word/document.xml\"},\"Id\":\"Sch_UnexpectedElementContentExpectingComplex\",\"ErrorType\":\"Schema\"}]"
},
```
Signed-off-by: Edwin Török <edwin@etorok.net>
xmllint doesn't warn about this (maybe because the tag is empty?), but
the order doesn't match wml.xsd:
```
<w:rPr>
<w:color w:val="007020"/>
<w:b/>
</w:rPr>
```
And OOXMLValidatorCLI does warn about it:
```
{
"Description": "The element has unexpected child element 'http://schemas.openxmlformats.org/wordprocessingml/2006/main:b'.",
"Path": {
"NamespacesDefinitions": [
"xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\""
],
"Namespaces": {
},
"XPath": "/w:styles[1]/w:style[40]/w:rPr[1]",
"PartUri": "/word/styles.xml"
},
"Id": "Sch_UnexpectedElementContentExpectingComplex",
"ErrorType": "Schema"
}
```
Signed-off-by: Edwin Török <edwin@etorok.net>
The elements in pPr in lists were not properly ordered.
This doesn't seem to cause problems for Word, but it makes
validation fail and may pose problems for other consumers of
docx. Closes#9265.
* To conform to validator's expectations, `doc-footnote` role is used
with `aside` and `doc-endnotes` with `section`.
* `aside` is used only for notes at ends of sections or blocks;
if all the notes come at the end of the document, `section` is
used so we can have the `doc-endnotes` role.