I’ve found an answer to my first problem. The functions, that print
out the names in the list, are defined in publ-imp-author.mkvi.
I copied the responsible function to publ-imp-iso690.mkiv,
edited one line (see code below) and everything works as intended.
Tomáš
% publ-imp-iso690.mkiv
\startbtxrenderingdefinitions[iso690]
\definebtx
[iso690]
[
default=default,
specification=iso690,
]
\definebtxrendering
[iso690]
[
specification=iso690,
numbering=yes,
]
\setupbtx[default:list]
[
authorconversion=inverted,
]
% field definitions
\starttexdefinition btx:iso690:author
\btxdoif {author} {
\btxflush{author}
\btxperiod
}
\stoptexdefinition
% book definition
\startsetups btx:iso690:list:book
\texdefinition{btx:iso690:author}
\removeunwantedspaces
\stopsetups
% surname to small caps in list
\startsetups \s!btx:\s!list:\s!author:inverted
\fastsetup{\s!btx:\s!list:\s!author:concat}
\ifx\currentbtxvons\empty \else
\texdefinition{\s!btx:\s!cite:\s!author:\s!de}
\doifnotmode {\s!btx:\s!de} {
\currentbtxvons
\btxparameter{\c!separator:vons}
}
\fi
\ifx\currentbtxsurnames\empty \else
\WORDS{\currentbtxsurnames} % <-- changed line
\ifx\currentbtxjuniors\empty \else
\btxparameter{\c!separator:juniors}
\currentbtxjuniors
\fi
\fi
\ifx\currentbtxfirstnames\empty
% firstnames are optional
\else
\btxparameter{\c!separator:invertedfirstnames}
\currentbtxfirstnames
\fi
\ifx\currentbtxvons\empty \else
\doifmode {\s!btx:\s!de} {
\btxparameter{\c!separator:vons}
\currentbtxvons
}
\fi
\fastsetup{\s!btx:\s!list:\s!author:others}
\stopsetups