fontspec breaks capital greek letters in DeclareMathOperator
Using fontspec
together with amsmath
breaks the use of capital greek letters in DeclareMathOperator
. Instead, the greek letter just is omitted.
Here is a minimal working example:
%! TEX program = xelatex
documentclass{article}
usepackage{fontspec}
usepackage{amsmath}
DeclareMathOperator{exterior}{Lambda}
begin{document}
begin{align*}
exterior^k V \
Lambda^k V
end{align*}
end{document}
This is the output:
Removing usepackage{fontspec}
makes the Lambda appear.
Funnily enough, if one also adds unicode-math
in the mix, i.e.
usepackage{fontspec}
usepackage{unicode-math}
usepackage{amsmath}
it works. But unicode-math
recommends to load it after amsmath
, so it can override commands. Though this breaks it again, which is really confusing to me.
Is there a sensible way to use fontspec
and amsmath
together? Did I miss something?
math-mode xetex amsmath fontspec greek
add a comment |
Using fontspec
together with amsmath
breaks the use of capital greek letters in DeclareMathOperator
. Instead, the greek letter just is omitted.
Here is a minimal working example:
%! TEX program = xelatex
documentclass{article}
usepackage{fontspec}
usepackage{amsmath}
DeclareMathOperator{exterior}{Lambda}
begin{document}
begin{align*}
exterior^k V \
Lambda^k V
end{align*}
end{document}
This is the output:
Removing usepackage{fontspec}
makes the Lambda appear.
Funnily enough, if one also adds unicode-math
in the mix, i.e.
usepackage{fontspec}
usepackage{unicode-math}
usepackage{amsmath}
it works. But unicode-math
recommends to load it after amsmath
, so it can override commands. Though this breaks it again, which is really confusing to me.
Is there a sensible way to use fontspec
and amsmath
together? Did I miss something?
math-mode xetex amsmath fontspec greek
Alternatively, you could typeset the operator using a properly changed variant ofwedge
as shown here. (I guess that the convention of usingLambda
for exterior product space powers is due to laziness, not semactics... usingwedge
seems more consistent to me.)
– phg
20 hours ago
Yeah I actually came from this. Though mostly the symbol is too big for my taste (e.g.bigwedge
), or does not scale in subscripts (e.g. the solution usingmbox
). I also do not understand the more involved solutions, and am not particularly keen to add those.
– red_trumpet
19 hours ago
add a comment |
Using fontspec
together with amsmath
breaks the use of capital greek letters in DeclareMathOperator
. Instead, the greek letter just is omitted.
Here is a minimal working example:
%! TEX program = xelatex
documentclass{article}
usepackage{fontspec}
usepackage{amsmath}
DeclareMathOperator{exterior}{Lambda}
begin{document}
begin{align*}
exterior^k V \
Lambda^k V
end{align*}
end{document}
This is the output:
Removing usepackage{fontspec}
makes the Lambda appear.
Funnily enough, if one also adds unicode-math
in the mix, i.e.
usepackage{fontspec}
usepackage{unicode-math}
usepackage{amsmath}
it works. But unicode-math
recommends to load it after amsmath
, so it can override commands. Though this breaks it again, which is really confusing to me.
Is there a sensible way to use fontspec
and amsmath
together? Did I miss something?
math-mode xetex amsmath fontspec greek
Using fontspec
together with amsmath
breaks the use of capital greek letters in DeclareMathOperator
. Instead, the greek letter just is omitted.
Here is a minimal working example:
%! TEX program = xelatex
documentclass{article}
usepackage{fontspec}
usepackage{amsmath}
DeclareMathOperator{exterior}{Lambda}
begin{document}
begin{align*}
exterior^k V \
Lambda^k V
end{align*}
end{document}
This is the output:
Removing usepackage{fontspec}
makes the Lambda appear.
Funnily enough, if one also adds unicode-math
in the mix, i.e.
usepackage{fontspec}
usepackage{unicode-math}
usepackage{amsmath}
it works. But unicode-math
recommends to load it after amsmath
, so it can override commands. Though this breaks it again, which is really confusing to me.
Is there a sensible way to use fontspec
and amsmath
together? Did I miss something?
math-mode xetex amsmath fontspec greek
math-mode xetex amsmath fontspec greek
edited yesterday
Sebastiano
10.4k42060
10.4k42060
asked yesterday
red_trumpetred_trumpet
20629
20629
Alternatively, you could typeset the operator using a properly changed variant ofwedge
as shown here. (I guess that the convention of usingLambda
for exterior product space powers is due to laziness, not semactics... usingwedge
seems more consistent to me.)
– phg
20 hours ago
Yeah I actually came from this. Though mostly the symbol is too big for my taste (e.g.bigwedge
), or does not scale in subscripts (e.g. the solution usingmbox
). I also do not understand the more involved solutions, and am not particularly keen to add those.
– red_trumpet
19 hours ago
add a comment |
Alternatively, you could typeset the operator using a properly changed variant ofwedge
as shown here. (I guess that the convention of usingLambda
for exterior product space powers is due to laziness, not semactics... usingwedge
seems more consistent to me.)
– phg
20 hours ago
Yeah I actually came from this. Though mostly the symbol is too big for my taste (e.g.bigwedge
), or does not scale in subscripts (e.g. the solution usingmbox
). I also do not understand the more involved solutions, and am not particularly keen to add those.
– red_trumpet
19 hours ago
Alternatively, you could typeset the operator using a properly changed variant of
wedge
as shown here. (I guess that the convention of using Lambda
for exterior product space powers is due to laziness, not semactics... using wedge
seems more consistent to me.)– phg
20 hours ago
Alternatively, you could typeset the operator using a properly changed variant of
wedge
as shown here. (I guess that the convention of using Lambda
for exterior product space powers is due to laziness, not semactics... using wedge
seems more consistent to me.)– phg
20 hours ago
Yeah I actually came from this. Though mostly the symbol is too big for my taste (e.g.
bigwedge
), or does not scale in subscripts (e.g. the solution using mbox
). I also do not understand the more involved solutions, and am not particularly keen to add those.– red_trumpet
19 hours ago
Yeah I actually came from this. Though mostly the symbol is too big for my taste (e.g.
bigwedge
), or does not scale in subscripts (e.g. the solution using mbox
). I also do not understand the more involved solutions, and am not particularly keen to add those.– red_trumpet
19 hours ago
add a comment |
2 Answers
2
active
oldest
votes
DeclareMathOperator uses internally the operator font, and this is changed by fontspec. Why the new font does have a Lambda, it doesn't have it in the same glyph slot.
You could either load fontspec with the [no-math]
option, or use the real glyph:
documentclass{article}
usepackage{amsmath}
usepackage{fontspec}
DeclareMathOperator{exterior}{Λ}
begin{document}
begin{align*}
exterior^k V\
Lambda^k V
end{align*}
end{document}
Thanks. Any idea why the glyph slot is changed? That seems not very reasonable...
– red_trumpet
yesterday
unicode engines and unicode fonts do change slots. You can't expect that a Lambda is at the same place in a OT1 legacy font than in unicode font.
– Ulrike Fischer
yesterday
1
@red_trumpet It’s a little complicated to go into in the comments. Traditionally,Lambda
came from a special math-letter font in the legacy OML encoding. Then,amsmath
operators set the font tooperator@font
and are really intended to typeset text likesin
orlog
. If you loadfontspec
, it tries to enable modern fonts in text mode and still support legacy math fonts that containLambda
. One thing it does is changeoperator@font
to the text font. But it does this in such a way thatLambda
doesn’t work. It ends up trying to load the wrong codepoint.
– Davislor
20 hours ago
1
@red_trumpet The solution is to use a different command to either load the Unicode character Λ from the operator font (the default, Latin Modern Roman, has it), or use a different math-mode command to get a Lambda. For example,mathnormalLambda
overrides the operator font and works (although this is slanted by default),upLambda
fromunicode-math
,Uplambda
,Lambdaup
, etc. from various legacy packages.
– Davislor
20 hours ago
1
@red_trumpet Another alternative is not to useDeclareMathOperator
at all. You can just define it asmathop{Lambda}
to get operator-like spacing.
– Davislor
20 hours ago
|
show 9 more comments
The definition of Lambda
is mathchar"7003
, which means that when operator@font
is in effect, the glyph from slot 3 in that font is used, which doesn't exist.
You can avoid it with a trick:
documentclass{article}
usepackage{fontspec}
usepackage{amsmath}
newcommand{opgreek}[1]{begingroupmathgroup-1 #1endgroup}
DeclareMathOperator{exterior}{opgreek{Lambda}}
begin{document}
begin{align*}
exterior^k V \
Lambda^k V
end{align*}
end{document}
Otherwise
newcommand{exterior}{mathop{kern0ptLambda}}
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "85"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f477662%2ffontspec-breaks-capital-greek-letters-in-declaremathoperator%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
DeclareMathOperator uses internally the operator font, and this is changed by fontspec. Why the new font does have a Lambda, it doesn't have it in the same glyph slot.
You could either load fontspec with the [no-math]
option, or use the real glyph:
documentclass{article}
usepackage{amsmath}
usepackage{fontspec}
DeclareMathOperator{exterior}{Λ}
begin{document}
begin{align*}
exterior^k V\
Lambda^k V
end{align*}
end{document}
Thanks. Any idea why the glyph slot is changed? That seems not very reasonable...
– red_trumpet
yesterday
unicode engines and unicode fonts do change slots. You can't expect that a Lambda is at the same place in a OT1 legacy font than in unicode font.
– Ulrike Fischer
yesterday
1
@red_trumpet It’s a little complicated to go into in the comments. Traditionally,Lambda
came from a special math-letter font in the legacy OML encoding. Then,amsmath
operators set the font tooperator@font
and are really intended to typeset text likesin
orlog
. If you loadfontspec
, it tries to enable modern fonts in text mode and still support legacy math fonts that containLambda
. One thing it does is changeoperator@font
to the text font. But it does this in such a way thatLambda
doesn’t work. It ends up trying to load the wrong codepoint.
– Davislor
20 hours ago
1
@red_trumpet The solution is to use a different command to either load the Unicode character Λ from the operator font (the default, Latin Modern Roman, has it), or use a different math-mode command to get a Lambda. For example,mathnormalLambda
overrides the operator font and works (although this is slanted by default),upLambda
fromunicode-math
,Uplambda
,Lambdaup
, etc. from various legacy packages.
– Davislor
20 hours ago
1
@red_trumpet Another alternative is not to useDeclareMathOperator
at all. You can just define it asmathop{Lambda}
to get operator-like spacing.
– Davislor
20 hours ago
|
show 9 more comments
DeclareMathOperator uses internally the operator font, and this is changed by fontspec. Why the new font does have a Lambda, it doesn't have it in the same glyph slot.
You could either load fontspec with the [no-math]
option, or use the real glyph:
documentclass{article}
usepackage{amsmath}
usepackage{fontspec}
DeclareMathOperator{exterior}{Λ}
begin{document}
begin{align*}
exterior^k V\
Lambda^k V
end{align*}
end{document}
Thanks. Any idea why the glyph slot is changed? That seems not very reasonable...
– red_trumpet
yesterday
unicode engines and unicode fonts do change slots. You can't expect that a Lambda is at the same place in a OT1 legacy font than in unicode font.
– Ulrike Fischer
yesterday
1
@red_trumpet It’s a little complicated to go into in the comments. Traditionally,Lambda
came from a special math-letter font in the legacy OML encoding. Then,amsmath
operators set the font tooperator@font
and are really intended to typeset text likesin
orlog
. If you loadfontspec
, it tries to enable modern fonts in text mode and still support legacy math fonts that containLambda
. One thing it does is changeoperator@font
to the text font. But it does this in such a way thatLambda
doesn’t work. It ends up trying to load the wrong codepoint.
– Davislor
20 hours ago
1
@red_trumpet The solution is to use a different command to either load the Unicode character Λ from the operator font (the default, Latin Modern Roman, has it), or use a different math-mode command to get a Lambda. For example,mathnormalLambda
overrides the operator font and works (although this is slanted by default),upLambda
fromunicode-math
,Uplambda
,Lambdaup
, etc. from various legacy packages.
– Davislor
20 hours ago
1
@red_trumpet Another alternative is not to useDeclareMathOperator
at all. You can just define it asmathop{Lambda}
to get operator-like spacing.
– Davislor
20 hours ago
|
show 9 more comments
DeclareMathOperator uses internally the operator font, and this is changed by fontspec. Why the new font does have a Lambda, it doesn't have it in the same glyph slot.
You could either load fontspec with the [no-math]
option, or use the real glyph:
documentclass{article}
usepackage{amsmath}
usepackage{fontspec}
DeclareMathOperator{exterior}{Λ}
begin{document}
begin{align*}
exterior^k V\
Lambda^k V
end{align*}
end{document}
DeclareMathOperator uses internally the operator font, and this is changed by fontspec. Why the new font does have a Lambda, it doesn't have it in the same glyph slot.
You could either load fontspec with the [no-math]
option, or use the real glyph:
documentclass{article}
usepackage{amsmath}
usepackage{fontspec}
DeclareMathOperator{exterior}{Λ}
begin{document}
begin{align*}
exterior^k V\
Lambda^k V
end{align*}
end{document}
answered yesterday
Ulrike FischerUlrike Fischer
194k8302688
194k8302688
Thanks. Any idea why the glyph slot is changed? That seems not very reasonable...
– red_trumpet
yesterday
unicode engines and unicode fonts do change slots. You can't expect that a Lambda is at the same place in a OT1 legacy font than in unicode font.
– Ulrike Fischer
yesterday
1
@red_trumpet It’s a little complicated to go into in the comments. Traditionally,Lambda
came from a special math-letter font in the legacy OML encoding. Then,amsmath
operators set the font tooperator@font
and are really intended to typeset text likesin
orlog
. If you loadfontspec
, it tries to enable modern fonts in text mode and still support legacy math fonts that containLambda
. One thing it does is changeoperator@font
to the text font. But it does this in such a way thatLambda
doesn’t work. It ends up trying to load the wrong codepoint.
– Davislor
20 hours ago
1
@red_trumpet The solution is to use a different command to either load the Unicode character Λ from the operator font (the default, Latin Modern Roman, has it), or use a different math-mode command to get a Lambda. For example,mathnormalLambda
overrides the operator font and works (although this is slanted by default),upLambda
fromunicode-math
,Uplambda
,Lambdaup
, etc. from various legacy packages.
– Davislor
20 hours ago
1
@red_trumpet Another alternative is not to useDeclareMathOperator
at all. You can just define it asmathop{Lambda}
to get operator-like spacing.
– Davislor
20 hours ago
|
show 9 more comments
Thanks. Any idea why the glyph slot is changed? That seems not very reasonable...
– red_trumpet
yesterday
unicode engines and unicode fonts do change slots. You can't expect that a Lambda is at the same place in a OT1 legacy font than in unicode font.
– Ulrike Fischer
yesterday
1
@red_trumpet It’s a little complicated to go into in the comments. Traditionally,Lambda
came from a special math-letter font in the legacy OML encoding. Then,amsmath
operators set the font tooperator@font
and are really intended to typeset text likesin
orlog
. If you loadfontspec
, it tries to enable modern fonts in text mode and still support legacy math fonts that containLambda
. One thing it does is changeoperator@font
to the text font. But it does this in such a way thatLambda
doesn’t work. It ends up trying to load the wrong codepoint.
– Davislor
20 hours ago
1
@red_trumpet The solution is to use a different command to either load the Unicode character Λ from the operator font (the default, Latin Modern Roman, has it), or use a different math-mode command to get a Lambda. For example,mathnormalLambda
overrides the operator font and works (although this is slanted by default),upLambda
fromunicode-math
,Uplambda
,Lambdaup
, etc. from various legacy packages.
– Davislor
20 hours ago
1
@red_trumpet Another alternative is not to useDeclareMathOperator
at all. You can just define it asmathop{Lambda}
to get operator-like spacing.
– Davislor
20 hours ago
Thanks. Any idea why the glyph slot is changed? That seems not very reasonable...
– red_trumpet
yesterday
Thanks. Any idea why the glyph slot is changed? That seems not very reasonable...
– red_trumpet
yesterday
unicode engines and unicode fonts do change slots. You can't expect that a Lambda is at the same place in a OT1 legacy font than in unicode font.
– Ulrike Fischer
yesterday
unicode engines and unicode fonts do change slots. You can't expect that a Lambda is at the same place in a OT1 legacy font than in unicode font.
– Ulrike Fischer
yesterday
1
1
@red_trumpet It’s a little complicated to go into in the comments. Traditionally,
Lambda
came from a special math-letter font in the legacy OML encoding. Then, amsmath
operators set the font to operator@font
and are really intended to typeset text like sin
or log
. If you load fontspec
, it tries to enable modern fonts in text mode and still support legacy math fonts that contain Lambda
. One thing it does is change operator@font
to the text font. But it does this in such a way that Lambda
doesn’t work. It ends up trying to load the wrong codepoint.– Davislor
20 hours ago
@red_trumpet It’s a little complicated to go into in the comments. Traditionally,
Lambda
came from a special math-letter font in the legacy OML encoding. Then, amsmath
operators set the font to operator@font
and are really intended to typeset text like sin
or log
. If you load fontspec
, it tries to enable modern fonts in text mode and still support legacy math fonts that contain Lambda
. One thing it does is change operator@font
to the text font. But it does this in such a way that Lambda
doesn’t work. It ends up trying to load the wrong codepoint.– Davislor
20 hours ago
1
1
@red_trumpet The solution is to use a different command to either load the Unicode character Λ from the operator font (the default, Latin Modern Roman, has it), or use a different math-mode command to get a Lambda. For example,
mathnormalLambda
overrides the operator font and works (although this is slanted by default), upLambda
from unicode-math
, Uplambda
, Lambdaup
, etc. from various legacy packages.– Davislor
20 hours ago
@red_trumpet The solution is to use a different command to either load the Unicode character Λ from the operator font (the default, Latin Modern Roman, has it), or use a different math-mode command to get a Lambda. For example,
mathnormalLambda
overrides the operator font and works (although this is slanted by default), upLambda
from unicode-math
, Uplambda
, Lambdaup
, etc. from various legacy packages.– Davislor
20 hours ago
1
1
@red_trumpet Another alternative is not to use
DeclareMathOperator
at all. You can just define it as mathop{Lambda}
to get operator-like spacing.– Davislor
20 hours ago
@red_trumpet Another alternative is not to use
DeclareMathOperator
at all. You can just define it as mathop{Lambda}
to get operator-like spacing.– Davislor
20 hours ago
|
show 9 more comments
The definition of Lambda
is mathchar"7003
, which means that when operator@font
is in effect, the glyph from slot 3 in that font is used, which doesn't exist.
You can avoid it with a trick:
documentclass{article}
usepackage{fontspec}
usepackage{amsmath}
newcommand{opgreek}[1]{begingroupmathgroup-1 #1endgroup}
DeclareMathOperator{exterior}{opgreek{Lambda}}
begin{document}
begin{align*}
exterior^k V \
Lambda^k V
end{align*}
end{document}
Otherwise
newcommand{exterior}{mathop{kern0ptLambda}}
add a comment |
The definition of Lambda
is mathchar"7003
, which means that when operator@font
is in effect, the glyph from slot 3 in that font is used, which doesn't exist.
You can avoid it with a trick:
documentclass{article}
usepackage{fontspec}
usepackage{amsmath}
newcommand{opgreek}[1]{begingroupmathgroup-1 #1endgroup}
DeclareMathOperator{exterior}{opgreek{Lambda}}
begin{document}
begin{align*}
exterior^k V \
Lambda^k V
end{align*}
end{document}
Otherwise
newcommand{exterior}{mathop{kern0ptLambda}}
add a comment |
The definition of Lambda
is mathchar"7003
, which means that when operator@font
is in effect, the glyph from slot 3 in that font is used, which doesn't exist.
You can avoid it with a trick:
documentclass{article}
usepackage{fontspec}
usepackage{amsmath}
newcommand{opgreek}[1]{begingroupmathgroup-1 #1endgroup}
DeclareMathOperator{exterior}{opgreek{Lambda}}
begin{document}
begin{align*}
exterior^k V \
Lambda^k V
end{align*}
end{document}
Otherwise
newcommand{exterior}{mathop{kern0ptLambda}}
The definition of Lambda
is mathchar"7003
, which means that when operator@font
is in effect, the glyph from slot 3 in that font is used, which doesn't exist.
You can avoid it with a trick:
documentclass{article}
usepackage{fontspec}
usepackage{amsmath}
newcommand{opgreek}[1]{begingroupmathgroup-1 #1endgroup}
DeclareMathOperator{exterior}{opgreek{Lambda}}
begin{document}
begin{align*}
exterior^k V \
Lambda^k V
end{align*}
end{document}
Otherwise
newcommand{exterior}{mathop{kern0ptLambda}}
answered yesterday
egregegreg
724k8819173222
724k8819173222
add a comment |
add a comment |
Thanks for contributing an answer to TeX - LaTeX Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f477662%2ffontspec-breaks-capital-greek-letters-in-declaremathoperator%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Alternatively, you could typeset the operator using a properly changed variant of
wedge
as shown here. (I guess that the convention of usingLambda
for exterior product space powers is due to laziness, not semactics... usingwedge
seems more consistent to me.)– phg
20 hours ago
Yeah I actually came from this. Though mostly the symbol is too big for my taste (e.g.
bigwedge
), or does not scale in subscripts (e.g. the solution usingmbox
). I also do not understand the more involved solutions, and am not particularly keen to add those.– red_trumpet
19 hours ago