diff --git a/evolve-hub/driver-docx.xpl b/evolve-hub/driver-docx.xpl
index e76727d..8df0be9 100644
--- a/evolve-hub/driver-docx.xpl
+++ b/evolve-hub/driver-docx.xpl
@@ -11,6 +11,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -22,7 +51,7 @@
-
+
@@ -32,7 +61,7 @@
-
+
@@ -42,7 +71,7 @@
-
+
@@ -51,7 +80,7 @@
-
+
@@ -61,7 +90,7 @@
-
+
@@ -71,7 +100,7 @@
-
+
@@ -81,7 +110,7 @@
-
+
@@ -91,7 +120,7 @@
-
+
@@ -101,7 +130,7 @@
-
+
@@ -120,7 +149,7 @@
-
+
@@ -130,7 +159,7 @@
-
+
@@ -140,7 +169,7 @@
-
+
@@ -150,7 +179,7 @@
-
+
@@ -209,7 +238,7 @@
-
+
@@ -219,7 +248,7 @@
-
+
@@ -229,7 +258,7 @@
-
+
@@ -239,7 +268,7 @@
-
+
@@ -249,7 +278,7 @@
-
+
@@ -259,7 +288,7 @@
-
+
@@ -269,7 +298,7 @@
-
+
diff --git a/evolve-hub/driver-docx.xsl b/evolve-hub/driver-docx.xsl
index 22de78d..6c490fa 100644
--- a/evolve-hub/driver-docx.xsl
+++ b/evolve-hub/driver-docx.xsl
@@ -8,6 +8,7 @@
xmlns:functx="http://www.functx.com"
xmlns:xml2tex="http://transpect.io/xml2tex"
xmlns:tr="http://transpect.io"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
xmlns="http://docbook.org/ns/docbook"
xpath-default-namespace="http://docbook.org/ns/docbook"
exclude-result-prefixes="xs hub dbk xlink functx xml2tex"
@@ -164,19 +165,18 @@
-
-
-
-
+
@@ -185,14 +185,14 @@
= substring(preceding-sibling::*[1][self::para]/@role, 1, 6))]
[normalize-space()]
or
- self::para[matches(@role,$hub:blockquote-role-regex)]
- [preceding-sibling::*[1][self::para[matches(@role,$hub:blockquote-source-role-regex)]]]
+ self::para[matches(@role,$hub:blockquote-role-regex, 'i')]
+ [preceding-sibling::*[1][self::para[matches(@role, $hub:blockquote-source-role-regex, 'i')]]]
]">
-
+
-
-
+
+
@@ -202,7 +202,7 @@
-
@@ -273,13 +273,14 @@
-
+
+
-
+ mode="hub:clean-hub">
+
@@ -565,6 +571,7 @@
select="concat('(',
string-join(
($figure-image-role-regex,
+ $figure-alt-role-regex,
$figure-caption-role-regex,
$figure-source-role-regex,
$figure-link-role-regex
@@ -573,8 +580,7 @@
')')" />
+ or para[matches(@role, $figure-image-role-regex, 'i')]]" mode="hub:split-at-tab">
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -702,13 +739,20 @@
-
+
-
+
+
+
-
+
+
+
-
+
+
+
@@ -785,7 +831,7 @@
+ |para[matches(@role, '[a-z]{2,3}(figurecaption|figurealt)')][matches(., '^[\p{Zs}]+$')]" mode="hub:split-at-tab" priority="100000">
@@ -1084,34 +1130,50 @@
* dialogue
* -->
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -1254,8 +1316,9 @@
+ |blockquote[ not(node())
+ and (every $i in *
+ satisfies $i[not(node())])]" mode="hub:clean-hub" priority="5"/>
@@ -1290,7 +1353,7 @@
-
+
@@ -1319,7 +1382,9 @@
-
+
@@ -1428,8 +1493,10 @@
+ select="distinct-values(
+ for $index-type in distinct-values((//indexterm[not(@type)]/($index-type-default-name), //indexterm/@type))
+ return hub:normalize-index-type($index-type)
+ )(:to omit results that have same type after normalization:)"/>
@@ -1457,19 +1524,24 @@
+
+
+
-
+
@@ -1491,7 +1564,6 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select="matches(., concat('(^|[\P{L}])', $index-see-regex, '($|\P{L})'))(:avoid matching of Tennessee:)"/>
@@ -1664,8 +1764,12 @@
+
+
+
+
@@ -1688,19 +1792,28 @@
+
-
+
-
+
+
+
+
+
+
+
+
+
@@ -1715,7 +1828,9 @@
- -
+
+
+
@@ -1729,6 +1844,8 @@
+
+
@@ -1803,7 +1920,7 @@
-
+
@@ -1836,7 +1953,6 @@
-
@@ -1867,6 +1983,7 @@
+
+
@@ -2321,7 +2438,7 @@
-
+
@@ -2344,7 +2461,7 @@
-
+
@@ -2359,6 +2476,10 @@
+
+
+
+
@@ -2511,6 +2632,29 @@
+
+
@@ -2572,4 +2716,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/evolve-hub/parse-bibrefs.xsl b/evolve-hub/parse-bibrefs.xsl
index 2827315..7af53f1 100755
--- a/evolve-hub/parse-bibrefs.xsl
+++ b/evolve-hub/parse-bibrefs.xsl
@@ -150,6 +150,12 @@
+
+
+
+
+
+
diff --git a/generate-xmp/generate-xmp.xsl b/generate-xmp/generate-xmp.xsl
index 8671092..37adcbd 100755
--- a/generate-xmp/generate-xmp.xsl
+++ b/generate-xmp/generate-xmp.xsl
@@ -22,15 +22,27 @@
-
-
-
-
- 3
- U
+
+
+
1
- application/pdf
-
+ le-tex xerif with CoCoTeX
+ MS Word
+ PLACEHOLDER
+ PLACEHOLDER
+
@@ -59,39 +71,34 @@
+
+
+
+
+
-
-
- LaTeX with hyperref
-
-
- le-tex xerif
-
+
+
@@ -177,6 +184,7 @@
+
diff --git a/schematron/bits/bits.sch.xml b/schematron/bits/bits.sch.xml
index e9d8a28..68d5578 100755
--- a/schematron/bits/bits.sch.xml
+++ b/schematron/bits/bits.sch.xml
@@ -19,8 +19,8 @@
-
- There is no author in <contrib-group/>.
+
+ There is no author or editor in <contrib-group/>.
diff --git a/schematron/check-formatting/check-formatting.sch.xml b/schematron/check-formatting/check-formatting.sch.xml
index 871e3ed..7084190 100755
--- a/schematron/check-formatting/check-formatting.sch.xml
+++ b/schematron/check-formatting/check-formatting.sch.xml
@@ -53,7 +53,8 @@
This paragraph has been formatted with the figure caption style but includes an image. Please verify whether the image belongs to the caption or to the figure.
For the latter, please ensure that the image is placed in a paragraph above the caption and formatted with the figure style (regex: ).
-
+
This paragraph has been formatted with the figure caption style but the paragraph above has the style: ''.
@@ -71,7 +72,7 @@
-
+
This paragraph has been formatted with the table caption style but it is not placed above the table.
@@ -158,7 +159,7 @@
Dieser Absatz ist mit dem Absatzformat für eine gedrehte Tabelle ausgezeichnet, ist aber nicht über einer Tabelle platziert.
- Dieser Absatz ist als Tabellen-Legende ausgezeichnet, aber der Absatz darüber ist nicht über einer Tabelle platziert.
+ Dieser Absatz ist als Tabellen-Legende ausgezeichnet, ist aber nicht über einer Tabelle platziert.
Bitte beachten Sie die korrekte Reihenfolge der Absatzformate für Tabelle, Legende und Quelle.
diff --git a/schematron/flat-hub/flat-hub.sch.xml b/schematron/flat-hub/flat-hub.sch.xml
index 5020421..acdc4a4 100644
--- a/schematron/flat-hub/flat-hub.sch.xml
+++ b/schematron/flat-hub/flat-hub.sch.xml
@@ -19,6 +19,8 @@
+
+
@@ -48,7 +50,7 @@
-
+
diff --git a/styles/cssa.xml b/styles/cssa.xml
index eac50cf..2a20062 100644
--- a/styles/cssa.xml
+++ b/styles/cssa.xml
@@ -48,6 +48,7 @@
+
diff --git a/xml2tex/helpers.xsl b/xml2tex/helpers.xsl
index 90fea22..f97f392 100755
--- a/xml2tex/helpers.xsl
+++ b/xml2tex/helpers.xsl
@@ -7,6 +7,7 @@
xmlns:css="http://www.w3.org/1996/css"
xmlns:functx="http://www.functx.com"
xmlns:xml2tex="http://transpect.io/xml2tex"
+ xmlns:tr="http://transpect.io"
xmlns="http://docbook.org/ns/docbook"
exclude-result-prefixes="xs xhtml"
version="2.0">
@@ -45,6 +46,11 @@
+
+
+
+
+
@@ -53,7 +59,7 @@
)/dbk:row"
group-starting-with="dbk:row[dbk:entry//processing-instruction()[name() eq 'latex']
[matches(., functx:escape-for-regex($xml2tex:split-table-pi))]]">
-
+
diff --git a/xml2tex/latex.conf.xml b/xml2tex/latex.conf.xml
index 48dfbc9..146ed2c 100644
--- a/xml2tex/latex.conf.xml
+++ b/xml2tex/latex.conf.xml
@@ -52,7 +52,6 @@
-
@@ -128,7 +127,7 @@
+ select="$metadata/dbk:keyword[@role eq 'Website']"/>
@@ -232,7 +231,7 @@
select="concat('\documentclass[',
string-join(($babel-langs[position() ne 1],
$greek[normalize-space()],
- $babel-langs[1]), (: 1st lang is main lang and comes last :)
+ concat('main=',$babel-langs[1])), (: 1st lang is main lang and comes last :)
','),
$pubtype-value,
xml2tex:determine-footnote-options($pubtype, $notes-type, $notes-per-chapter, $endnotes-with-chapter),
@@ -240,11 +239,11 @@
',withcoltitles'[$running-header eq 'yes'],
',a11y'[$a11y],
']{',
- if ($cocotex) then 'cocotex' else 'transpect',
+ 'cocotex',
'}
')"/>
\usepackage{htmltabs}
-
+
@@ -323,16 +322,16 @@
\end{tpSeriesEditor}
-
+
-
+
-
+
@@ -468,7 +467,7 @@
@@ -529,26 +528,39 @@
+
+
-
+
+ ))"/>
-
+
+
+
+
+
+
+
-
+
-
+ else
+ if (self::dbk:keyword and matches(.,','))
+ then concat(normalize-space(replace(tokenize(., ',')[2],'(†|✝|\((.*)\)?)','')), ' ' , normalize-space(tokenize(replace(., '(†|✝|\((.*)\)?)', ''), ',')[1]) )
+ else xml2tex:meta-remove-links-etc(.), '}')">
+
@@ -589,7 +601,7 @@
@@ -629,7 +641,7 @@
-
+
@@ -707,26 +719,34 @@
-
+
\textit{
}
-
+
\tpBreak
+
+
-
+
\textbf{
}
+
+ \uline{
+
+ }
+
+
-
+
+
-
+
+
+
+
@@ -784,8 +811,11 @@
+ [empty(preceding-sibling::dbk:figure)][1]
+ [not(//dbk:toc)]
+ [$create-mainmatter]
+ |/*/dbk:para[1][following-sibling::*[self::dbk:part|self::dbk:chapter|self::dbk:section]][$create-mainmatter]
+ |/*/dbk:figure[1][following-sibling::*[self::dbk:part|self::dbk:chapter|self::dbk:section]][$create-mainmatter]" priority="3001">
\mainmatter
@@ -797,8 +827,10 @@
-
-
+
+
+
+
@@ -868,12 +900,22 @@
[not(ancestor::*[self::dbk:chapter])]
)
and
- ($context[$notes-type eq 'endnotes' and $notes-per-chapter eq 'yes']
+ ($context[$notes-type eq 'endnotes' and $notes-per-chapter eq 'yes' and not($endnotes-with-chapter eq 'yes')]
[.//dbk:footnote]
[not(.//dbk:para[matches(@role, $endnotes-heading-style)])]
[not(.//processing-instruction()[name() = ($name-for-Tex-PI, 'latex')][. = '\printnotes'])]
)">
+
+ [
+
+ ]
+
@@ -881,17 +923,30 @@
+ [$notes-type eq 'endnotes']
+ [not($notes-per-chapter eq 'yes') or $endnotes-with-chapter eq 'yes']
+ [.//dbk:footnote]
+ [not(.//dbk:para[matches(@role, $endnotes-heading-style)])]
+ [not(.//dbk:title[matches(@role, $endnotes-heading-style)])]
+ [not(.//processing-instruction()[name() = ($name-for-Tex-PI, 'latex')][. = '\printnotes'])]">
+
+ [
+
+ ]
+
-
@@ -916,11 +971,12 @@
-
@@ -935,32 +991,37 @@
|self::dbk:phrase[@role = ('identifier', 'hub:identifier')]
|self::dbk:tab
|self::dbk:anchor)])
- or
+ or @xml:lang
+ or
matches(., '[& - ®]')">
+ and therefore have to be escaped,
+ https://redmine.le-tex.de/issues/11930
+ https://redmine.le-tex.de/issues/19840 -->
+ string-join($content, ''), '\s+$', ''
+ ), '\\(&)', '\\string$1'
+ ), '\p{Zs}', ' '
+ ), '\{\\slash\}', '/'
+ ), '\\#', '{\\texthashchar}'
+ )"/>
+ |self::dbk:anchor)] or @xml:lang]">
@@ -971,7 +1032,7 @@
+ |self::dbk:anchor)] or @xml:lang]">
@@ -1038,20 +1099,31 @@
-
- [label={
-
-
-
-
-
- ,
-
-
- }]
-
-
-
+
+ [
+
+ label={
+
+
+
+
+
+ ,
+
+
+ }
+
+
+ ,
+
+
+
+
+ ]
@@ -1211,7 +1283,7 @@
-
+
@@ -1252,40 +1324,40 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1477,8 +1549,6 @@
-
-
@@ -1518,14 +1588,10 @@
|self::dbk:editor
|self::dbk:othercredit]">
-
+ or exists(*[not(self::dbk:personname)])">
@@ -1668,8 +1734,6 @@
-
-
@@ -2007,6 +2071,7 @@
-
+
@@ -2091,8 +2156,8 @@
|dbk:informaltable/dbk:caption
|*:table/dbk:textobject">
-
-
+
+
-
+
@@ -2256,14 +2321,16 @@
* -->
+ [@xml:lang[not(. = ../ancestor::*[@xml:lang][1]/@xml:lang)]
+ [xml2tex:lang-to-babel-lang(.)[normalize-space()]]
+ ]" priority="5000" mode="xml2tex">
-
-
+
+
-
+
@@ -2273,7 +2340,7 @@
-
+
@@ -2284,7 +2351,7 @@
-
+
@@ -2292,13 +2359,15 @@
-
-
+
+
+
+
@@ -2316,6 +2385,7 @@
{
+
@@ -2323,6 +2393,7 @@
+
}
@@ -2332,7 +2403,9 @@
{
+
+
}
@@ -2381,7 +2454,7 @@
-
+
@@ -2398,6 +2471,8 @@
+
+
@@ -2410,7 +2485,9 @@
-
+
+
+
@@ -2423,9 +2500,13 @@
+
+
-
+
+
+
\\
@@ -2436,9 +2517,13 @@
[following-sibling::*[1]
[self::dbk:para[matches(@role, $letter-spacing-para-style)]]
]">
+
+
-
+
+
+
@@ -2471,15 +2556,23 @@
-->
+
+
-
+
+
+
\tpBreak
-
+
+
+
-
+
+
+
@@ -2492,8 +2585,12 @@
+
+
-
+
+
+
\\
@@ -2503,8 +2600,12 @@
+
+
-
+
+
+
@@ -2512,16 +2613,27 @@
* dialogue
* -->
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
@@ -2548,8 +2660,12 @@
+
+
-
+
+
+
@@ -2568,11 +2684,15 @@
* -->
+
+
-
+
+
+
@@ -2661,12 +2781,16 @@
+
+
+
-
+
+
@@ -2705,7 +2829,7 @@
escape ! in indexterms (makeindex has no issues with escaped
exclamation mark "! but xindy does ) -->
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2853,13 +3001,13 @@
-
+
-
+
@@ -2901,9 +3049,16 @@
+
+
+
+
+
+
+
+ [not(matches(@css:text-decoration-line, 'line-through'))]
+ [empty(key('style', @role, $root)[matches(@css:text-decoration-line, 'line-through')])]">
\sout{
}
-
-
-
-
- {\sout{
-
- }}
-
-
-
+ [not(matches(@css:text-decoration-line, 'underline'))]
+ [empty(key('style', @role, $root)[matches(@css:text-decoration-line, 'underline')])]">
\uline{
@@ -2973,23 +3117,38 @@
+
+ [empty(key('style', @role, $root)[@css:font-style eq 'italic'])]">
\textit{
}
-
+
+
+
+
+
+
+
+
+
+ [empty(key('style', @role, $root)[@css:font-weight eq 'bold'])]">
\textbf{
}
@@ -3003,10 +3162,10 @@
-
-
-
-
+
+
+
@@ -3068,7 +3227,7 @@
-
+
-
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3138,11 +3316,11 @@
-
-
+
+
-
+
@@ -3194,14 +3372,14 @@
-
-
+ Example: A no-break Space has to be mapped to a tilde (https://redmine.le-tex.de/issues/13715, https://redmine.le-tex.de/issues/18364) otherwise no space is displayed-->
+
@@ -3369,14 +3547,24 @@
-
+
+
+
+
+
+
+
+
+
@@ -3399,17 +3587,17 @@
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/xpl/generate-xmp.xpl b/xpl/generate-xmp.xpl
index b18eb78..dde1bbf 100755
--- a/xpl/generate-xmp.xpl
+++ b/xpl/generate-xmp.xpl
@@ -21,7 +21,7 @@
-
+
Expects the metadata
@@ -34,8 +34,9 @@
- Hub document with updated filerefs
+ XMP document
+
@@ -63,4 +64,5 @@
+
\ No newline at end of file
diff --git a/xpl/hub2epub.xpl b/xpl/hub2epub.xpl
index 22ea08b..1788dca 100644
--- a/xpl/hub2epub.xpl
+++ b/xpl/hub2epub.xpl
@@ -125,7 +125,7 @@
-
+
diff --git a/xpl/main-ts.xpl b/xpl/main-ts.xpl
index 8f3c4e8..a774cd5 100644
--- a/xpl/main-ts.xpl
+++ b/xpl/main-ts.xpl
@@ -377,7 +377,7 @@
-
+
diff --git a/xpl/validate.xpl b/xpl/validate.xpl
index 71471af..a399eb6 100644
--- a/xpl/validate.xpl
+++ b/xpl/validate.xpl
@@ -124,7 +124,7 @@
-
+
@@ -160,8 +160,6 @@
-
-
diff --git a/xpl/xml2tex.xpl b/xpl/xml2tex.xpl
index f1eee44..ffb5cb9 100644
--- a/xpl/xml2tex.xpl
+++ b/xpl/xml2tex.xpl
@@ -104,6 +104,9 @@
+
+
+
collect all xsl templates from config. important if you work with several modes for the same elements.
diff --git a/xsl/shared-variables.xsl b/xsl/shared-variables.xsl
index dbb2300..86a2c8c 100644
--- a/xsl/shared-variables.xsl
+++ b/xsl/shared-variables.xsl
@@ -35,13 +35,13 @@
select="'^toctitle$'"/>
+ select="'^[a-z]{1,3}_?(motto|dedication|epigraph|dialogue[a-z]?(-action)?|quotation|verse|transcription|codeblock[a-z0-9]+)(_-_.+)?$'"/>
+ select="'^[a-z]{1,3}_?(motto|dedication|epigraph|dialogue[a-z]?|quotation|verse)-?source$'"/>
+ select="'^[a-z]{1,3}_?(literature|body|dedication|motto|dialogue[a-z]?(-action)?|quotation|figurecaption|figuresource|tablecaption|tablesource|formula|indexstatic|indexlist|codeblock[a-z0-9]+)'"/>
@@ -126,7 +126,13 @@
select="'^[a-z]{1,3}codeblock[a-z0-9]+$'"/>
+ select="'^[a-z]{1,3}dialogue(-action)?[a-z]?$'"/>
+
+
+
+
@@ -144,10 +150,13 @@
select="'^[a-z]+_?verse.*$'" />
+ select="'[a-z]{1,3}_letter$'"/>
+
+
+ select="'[a-z]{1,3}_letter_spacing$'"/>
@@ -157,6 +166,12 @@
+
+
+
+
@@ -257,6 +272,17 @@
+
+
+
+
+
@@ -267,7 +293,7 @@
select="'^[a-z]{1,3}abbreviations$'"/>
+ select="true()"/>
@@ -293,21 +319,22 @@
+
+
-
-
+
+
@@ -326,8 +353,6 @@
-
-
@@ -371,8 +396,6 @@
-
-
@@ -395,6 +418,10 @@
+
+
+
+
@@ -433,4 +460,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file