diff --git a/affiliations.jats b/affiliations.jats
new file mode 100644
index 00000000..93238d22
--- /dev/null
+++ b/affiliations.jats
@@ -0,0 +1,38 @@
+$--
+$-- Affiliations
+$--
+$for(affiliation)$
+
+$-- wrap affiliation if it has a known institution identifier
+$if(affiliation.group)$
+$affiliation.group$
+$endif$
+$if(affiliation.department)$
+$affiliation.department$
+$endif$
+
+$if(affiliation.organization)$
+$affiliation.organization$
+$else$
+$affiliation.name$
+$endif$
+$if(affiliation.isni)$
+$affiliation.isni$
+$endif$
+$if(affiliation.ringgold)$
+$affiliation.ringgold$
+$endif$
+$if(affiliation.ror)$
+$affiliation.ror$
+$endif$
+$for(affiliation.pid)$
+$affiliation.pid.id$
+$endfor$
+$if(affiliation.street-address)$,
+$for(affiliation.street-address)$
+$affiliation.street-address$$sep$,
+$endfor$
+$else$$if(affiliation.city)$, $affiliation.city$$endif$$endif$$if(affiliation.country)$,
+$affiliation.country$$endif$
+
+$endfor$
diff --git a/article.jats_publishing b/article.jats_publishing
index b64425fd..4bdb3f27 100644
--- a/article.jats_publishing
+++ b/article.jats_publishing
@@ -101,14 +101,15 @@ $endif$
$if(author.email)$
$author.email$
$endif$
-$if(author.aff-id)$
-
-$endif$
+$for(author.affiliation)$
+
+$endfor$
$if(author.cor-id)$
*
$endif$
$endfor$
+${ affiliations.jats() }
$endif$
$if(article.author-notes)$
diff --git a/default.epub2 b/default.epub2
index f440134d..685d1020 100644
--- a/default.epub2
+++ b/default.epub2
@@ -48,7 +48,7 @@ $endif$
$else$
$if(coverpage)$
-
diff --git a/default.epub3 b/default.epub3
index 4f5bd664..fc4fa762 100644
--- a/default.epub3
+++ b/default.epub3
@@ -49,7 +49,7 @@ $endif$
$else$
$if(coverpage)$
-
+
diff --git a/default.jats_articleauthoring b/default.jats_articleauthoring
index f86bb2d3..94c92954 100644
--- a/default.jats_articleauthoring
+++ b/default.jats_articleauthoring
@@ -34,14 +34,15 @@ $endif$
$if(author.email)$
$author.email$
$endif$
-$if(author.aff-id)$
-
-$endif$
+$for(author.affiliation)$
+
+$endfor$
$if(author.cor-id)$
*
$endif$
$endfor$
+${ affiliations.jats() }
$endif$
$if(copyright)$
diff --git a/default.latex b/default.latex
index aad9ee36..16966158 100644
--- a/default.latex
+++ b/default.latex
@@ -89,6 +89,7 @@ $endif$
$if(beamerarticle)$
\usepackage{beamerarticle} % needs to be loaded first
$endif$
+\usepackage{amsmath,amssymb}
$if(fontfamily)$
\usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$}
$else$
@@ -97,17 +98,14 @@ $endif$
$if(linestretch)$
\usepackage{setspace}
$endif$
-\usepackage{amsmath}
\usepackage{ifxetex,ifluatex}
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
\usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{textcomp} % provide euro and other symbols
- \usepackage{amssymb}
\else % if luatex or xetex
$if(mathspec)$
\ifxetex
- \usepackage{amssymb}
\usepackage{mathspec}
\else
\usepackage{unicode-math}
@@ -256,7 +254,7 @@ $if(highlighting-macros)$
$highlighting-macros$
$endif$
$if(tables)$
-\usepackage{longtable,booktabs}
+\usepackage{longtable,booktabs,array}
\usepackage{calc} % for calculating minipage widths
$if(beamer)$
\usepackage{caption}
@@ -336,7 +334,10 @@ $for(polyglossia-otherlangs)$
\setotherlanguage[$for(polyglossia-otherlangs.options)$$polyglossia-otherlangs.options$$sep$,$endfor$]{$polyglossia-otherlangs.name$}
$endfor$
\else
- \usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel}
+ \usepackage[$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel}
+% get rid of language-specific shorthands (see #6817):
+\let\LanguageShortHands\languageshorthands
+\def\languageshorthands#1{}
$if(babel-newcommands)$
$babel-newcommands$
$endif$
@@ -390,6 +391,9 @@ $if(csl-refs)$
\newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{#1}\break}
\newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1}
$endif$
+$if(csquotes)$
+\usepackage{csquotes}
+$endif$
$if(title)$
\title{$title$$if(thanks)$\thanks{$thanks$}$endif$}