Proper LaTeX3 syntax for usepackage - ProvidesPackage
Clash Royale CLAN TAG#URR8PPP
The MWE_1
defines a document command
which in turn calls a cs_
macro. Both are defined in the document's preamble
section sandwiched between ExplSyntaxOn
ExplSyntaxOff
statements, as is the declaration of the associated local and global variables. There seems to be little reason to define document commands for the purpose of using them in a single document, and no reason whatsoever to develop cs_
macros with that scope in mind, hence I usually work with a number of .sty
files. For the purpose of demonstration let the preamble of MWE_1
be packaged in the file myCommandsAndMacros.sty
which is headed with the instruction ProvidesPackagemyCommandsAndMacros
and in MWE_2
loaded with the instruction usepackagemyCommandsAndMacros
- not sure where in the distant past I gleaned this process from, but it works. To my surprise I now learn (see Part II in the LaTeX3 Interfaces
document) that ProvidesPackage
is an instruction that belongs to LaTeX2
(although it may be used by LaTeX3
), but all attempts to modify the syntax I have been using to ProvidesExplPackagemyCommandsAndMacros
fail with error !Paragraph ended before ProvidesExplPackage was complete
.
MWE_1:
documentclassarticle
%-----------------------
usepackage[check-declarations,log-functions,enable-debug]expl3
% or: RequirePackage[check-declarations,log-functions,enable-debug]expl3
usepackagexparse
%-----------------------
ExplSyntaxOn
% Variable Declarations:
tl_new:N l_rn_auxOne_tl
int_new:N l_rn_auxOne_int
int_new:N g_rn_Result_int
cs_new:Npn rnUtils_Squared:n #1
group_begin:
int_set:Nn l_rn_auxOne_int #1
int_gset:Nn g_rn_Result_int int_eval:n l_rn_auxOne_int *l_rn_auxOne_int
group_end:
% rnUtils_Squared:n
NewDocumentCommandmyDocumentCommandO911Oabc
int_set:Nn l_rn_auxOne_int #1
rnUtils_Squared:n l_rn_auxOne_int
tl_set:Nn l_rn_auxOne_tl #2
int_use:N g_rn_Result_int,~tl_use:N l_rn_auxOne_tl
% myDocumentCommand
ExplSyntaxOff
%-----------------------
begindocument
myDocumentCommand[2][$alpha$]
myDocumentCommand
enddocument
MWE_2:
documentclassarticle
%-----------------------
usepackage[check-declarations,log-functions,enable-debug]expl3
% or: RequirePackage[check-declarations,log-functions,enable-debug]expl3
usepackagexparse
usepackagemyCommandsAndMacros
%-----------------------
begindocument
myDocumentCommand[2][$alpha$]
myDocumentCommand
enddocument
myCommandsAndMacros.sty
ProvidesPackagemyCommandsAndMacros
%ProvidesExplPackagemyCommandsAndMacros ==> ERROR
% ===========================================================
ExplSyntaxOn
% Variable Declarations:
tl_new:N l_rn_auxOne_tl
int_new:N l_rn_auxOne_int
int_new:N g_rn_Result_int
cs_new:Npn rnUtils_Squared:n #1
group_begin:
int_set:Nn l_rn_auxOne_int #1
int_gset:Nn g_rn_Result_int int_eval:n l_rn_auxOne_int *l_rn_auxOne_int
group_end:
% rnUtils_Squared:n
NewDocumentCommandmyDocumentCommandO911Oabc
int_set:Nn l_rn_auxOne_int #1
rnUtils_Squared:n l_rn_auxOne_int
tl_set:Nn l_rn_auxOne_tl #2
int_use:N g_rn_Result_int,~tl_use:N l_rn_auxOne_tl
% myDocumentCommand
ExplSyntaxOff
expl3
add a comment |
The MWE_1
defines a document command
which in turn calls a cs_
macro. Both are defined in the document's preamble
section sandwiched between ExplSyntaxOn
ExplSyntaxOff
statements, as is the declaration of the associated local and global variables. There seems to be little reason to define document commands for the purpose of using them in a single document, and no reason whatsoever to develop cs_
macros with that scope in mind, hence I usually work with a number of .sty
files. For the purpose of demonstration let the preamble of MWE_1
be packaged in the file myCommandsAndMacros.sty
which is headed with the instruction ProvidesPackagemyCommandsAndMacros
and in MWE_2
loaded with the instruction usepackagemyCommandsAndMacros
- not sure where in the distant past I gleaned this process from, but it works. To my surprise I now learn (see Part II in the LaTeX3 Interfaces
document) that ProvidesPackage
is an instruction that belongs to LaTeX2
(although it may be used by LaTeX3
), but all attempts to modify the syntax I have been using to ProvidesExplPackagemyCommandsAndMacros
fail with error !Paragraph ended before ProvidesExplPackage was complete
.
MWE_1:
documentclassarticle
%-----------------------
usepackage[check-declarations,log-functions,enable-debug]expl3
% or: RequirePackage[check-declarations,log-functions,enable-debug]expl3
usepackagexparse
%-----------------------
ExplSyntaxOn
% Variable Declarations:
tl_new:N l_rn_auxOne_tl
int_new:N l_rn_auxOne_int
int_new:N g_rn_Result_int
cs_new:Npn rnUtils_Squared:n #1
group_begin:
int_set:Nn l_rn_auxOne_int #1
int_gset:Nn g_rn_Result_int int_eval:n l_rn_auxOne_int *l_rn_auxOne_int
group_end:
% rnUtils_Squared:n
NewDocumentCommandmyDocumentCommandO911Oabc
int_set:Nn l_rn_auxOne_int #1
rnUtils_Squared:n l_rn_auxOne_int
tl_set:Nn l_rn_auxOne_tl #2
int_use:N g_rn_Result_int,~tl_use:N l_rn_auxOne_tl
% myDocumentCommand
ExplSyntaxOff
%-----------------------
begindocument
myDocumentCommand[2][$alpha$]
myDocumentCommand
enddocument
MWE_2:
documentclassarticle
%-----------------------
usepackage[check-declarations,log-functions,enable-debug]expl3
% or: RequirePackage[check-declarations,log-functions,enable-debug]expl3
usepackagexparse
usepackagemyCommandsAndMacros
%-----------------------
begindocument
myDocumentCommand[2][$alpha$]
myDocumentCommand
enddocument
myCommandsAndMacros.sty
ProvidesPackagemyCommandsAndMacros
%ProvidesExplPackagemyCommandsAndMacros ==> ERROR
% ===========================================================
ExplSyntaxOn
% Variable Declarations:
tl_new:N l_rn_auxOne_tl
int_new:N l_rn_auxOne_int
int_new:N g_rn_Result_int
cs_new:Npn rnUtils_Squared:n #1
group_begin:
int_set:Nn l_rn_auxOne_int #1
int_gset:Nn g_rn_Result_int int_eval:n l_rn_auxOne_int *l_rn_auxOne_int
group_end:
% rnUtils_Squared:n
NewDocumentCommandmyDocumentCommandO911Oabc
int_set:Nn l_rn_auxOne_int #1
rnUtils_Squared:n l_rn_auxOne_int
tl_set:Nn l_rn_auxOne_tl #2
int_use:N g_rn_Result_int,~tl_use:N l_rn_auxOne_tl
% myDocumentCommand
ExplSyntaxOff
expl3
2
I don't know and I haven't read the question yet, butExplSyntaxOn
andOff
is likely not needed in an expl package.
– Manuel
Dec 24 '18 at 6:31
If you use the L3 version, isn't expl syntax automatically toggled on?
– Johannes_B
Dec 24 '18 at 6:32
2
You needRequirePackageexpl3 ProvidesExplPackage ...
. And you probably also want to addRequirePackagexparse
.
– Henri Menke
Dec 24 '18 at 6:43
2
ProvidesExplPackage
takes four arguments:ProvidesExplPackage<package><date><version><description>
not just one and an optional argument likeProvidesPackage<package>[<version and date info>]
. Cf. also texdev.net/2011/12/11/…
– moewe
Dec 24 '18 at 6:58
1
Off-topic: you have non-expandable material, so you needcs_new_protected:Npn
notcs_new:Npn
.
– Joseph Wright♦
Dec 24 '18 at 8:02
add a comment |
The MWE_1
defines a document command
which in turn calls a cs_
macro. Both are defined in the document's preamble
section sandwiched between ExplSyntaxOn
ExplSyntaxOff
statements, as is the declaration of the associated local and global variables. There seems to be little reason to define document commands for the purpose of using them in a single document, and no reason whatsoever to develop cs_
macros with that scope in mind, hence I usually work with a number of .sty
files. For the purpose of demonstration let the preamble of MWE_1
be packaged in the file myCommandsAndMacros.sty
which is headed with the instruction ProvidesPackagemyCommandsAndMacros
and in MWE_2
loaded with the instruction usepackagemyCommandsAndMacros
- not sure where in the distant past I gleaned this process from, but it works. To my surprise I now learn (see Part II in the LaTeX3 Interfaces
document) that ProvidesPackage
is an instruction that belongs to LaTeX2
(although it may be used by LaTeX3
), but all attempts to modify the syntax I have been using to ProvidesExplPackagemyCommandsAndMacros
fail with error !Paragraph ended before ProvidesExplPackage was complete
.
MWE_1:
documentclassarticle
%-----------------------
usepackage[check-declarations,log-functions,enable-debug]expl3
% or: RequirePackage[check-declarations,log-functions,enable-debug]expl3
usepackagexparse
%-----------------------
ExplSyntaxOn
% Variable Declarations:
tl_new:N l_rn_auxOne_tl
int_new:N l_rn_auxOne_int
int_new:N g_rn_Result_int
cs_new:Npn rnUtils_Squared:n #1
group_begin:
int_set:Nn l_rn_auxOne_int #1
int_gset:Nn g_rn_Result_int int_eval:n l_rn_auxOne_int *l_rn_auxOne_int
group_end:
% rnUtils_Squared:n
NewDocumentCommandmyDocumentCommandO911Oabc
int_set:Nn l_rn_auxOne_int #1
rnUtils_Squared:n l_rn_auxOne_int
tl_set:Nn l_rn_auxOne_tl #2
int_use:N g_rn_Result_int,~tl_use:N l_rn_auxOne_tl
% myDocumentCommand
ExplSyntaxOff
%-----------------------
begindocument
myDocumentCommand[2][$alpha$]
myDocumentCommand
enddocument
MWE_2:
documentclassarticle
%-----------------------
usepackage[check-declarations,log-functions,enable-debug]expl3
% or: RequirePackage[check-declarations,log-functions,enable-debug]expl3
usepackagexparse
usepackagemyCommandsAndMacros
%-----------------------
begindocument
myDocumentCommand[2][$alpha$]
myDocumentCommand
enddocument
myCommandsAndMacros.sty
ProvidesPackagemyCommandsAndMacros
%ProvidesExplPackagemyCommandsAndMacros ==> ERROR
% ===========================================================
ExplSyntaxOn
% Variable Declarations:
tl_new:N l_rn_auxOne_tl
int_new:N l_rn_auxOne_int
int_new:N g_rn_Result_int
cs_new:Npn rnUtils_Squared:n #1
group_begin:
int_set:Nn l_rn_auxOne_int #1
int_gset:Nn g_rn_Result_int int_eval:n l_rn_auxOne_int *l_rn_auxOne_int
group_end:
% rnUtils_Squared:n
NewDocumentCommandmyDocumentCommandO911Oabc
int_set:Nn l_rn_auxOne_int #1
rnUtils_Squared:n l_rn_auxOne_int
tl_set:Nn l_rn_auxOne_tl #2
int_use:N g_rn_Result_int,~tl_use:N l_rn_auxOne_tl
% myDocumentCommand
ExplSyntaxOff
expl3
The MWE_1
defines a document command
which in turn calls a cs_
macro. Both are defined in the document's preamble
section sandwiched between ExplSyntaxOn
ExplSyntaxOff
statements, as is the declaration of the associated local and global variables. There seems to be little reason to define document commands for the purpose of using them in a single document, and no reason whatsoever to develop cs_
macros with that scope in mind, hence I usually work with a number of .sty
files. For the purpose of demonstration let the preamble of MWE_1
be packaged in the file myCommandsAndMacros.sty
which is headed with the instruction ProvidesPackagemyCommandsAndMacros
and in MWE_2
loaded with the instruction usepackagemyCommandsAndMacros
- not sure where in the distant past I gleaned this process from, but it works. To my surprise I now learn (see Part II in the LaTeX3 Interfaces
document) that ProvidesPackage
is an instruction that belongs to LaTeX2
(although it may be used by LaTeX3
), but all attempts to modify the syntax I have been using to ProvidesExplPackagemyCommandsAndMacros
fail with error !Paragraph ended before ProvidesExplPackage was complete
.
MWE_1:
documentclassarticle
%-----------------------
usepackage[check-declarations,log-functions,enable-debug]expl3
% or: RequirePackage[check-declarations,log-functions,enable-debug]expl3
usepackagexparse
%-----------------------
ExplSyntaxOn
% Variable Declarations:
tl_new:N l_rn_auxOne_tl
int_new:N l_rn_auxOne_int
int_new:N g_rn_Result_int
cs_new:Npn rnUtils_Squared:n #1
group_begin:
int_set:Nn l_rn_auxOne_int #1
int_gset:Nn g_rn_Result_int int_eval:n l_rn_auxOne_int *l_rn_auxOne_int
group_end:
% rnUtils_Squared:n
NewDocumentCommandmyDocumentCommandO911Oabc
int_set:Nn l_rn_auxOne_int #1
rnUtils_Squared:n l_rn_auxOne_int
tl_set:Nn l_rn_auxOne_tl #2
int_use:N g_rn_Result_int,~tl_use:N l_rn_auxOne_tl
% myDocumentCommand
ExplSyntaxOff
%-----------------------
begindocument
myDocumentCommand[2][$alpha$]
myDocumentCommand
enddocument
MWE_2:
documentclassarticle
%-----------------------
usepackage[check-declarations,log-functions,enable-debug]expl3
% or: RequirePackage[check-declarations,log-functions,enable-debug]expl3
usepackagexparse
usepackagemyCommandsAndMacros
%-----------------------
begindocument
myDocumentCommand[2][$alpha$]
myDocumentCommand
enddocument
myCommandsAndMacros.sty
ProvidesPackagemyCommandsAndMacros
%ProvidesExplPackagemyCommandsAndMacros ==> ERROR
% ===========================================================
ExplSyntaxOn
% Variable Declarations:
tl_new:N l_rn_auxOne_tl
int_new:N l_rn_auxOne_int
int_new:N g_rn_Result_int
cs_new:Npn rnUtils_Squared:n #1
group_begin:
int_set:Nn l_rn_auxOne_int #1
int_gset:Nn g_rn_Result_int int_eval:n l_rn_auxOne_int *l_rn_auxOne_int
group_end:
% rnUtils_Squared:n
NewDocumentCommandmyDocumentCommandO911Oabc
int_set:Nn l_rn_auxOne_int #1
rnUtils_Squared:n l_rn_auxOne_int
tl_set:Nn l_rn_auxOne_tl #2
int_use:N g_rn_Result_int,~tl_use:N l_rn_auxOne_tl
% myDocumentCommand
ExplSyntaxOff
expl3
expl3
edited Dec 24 '18 at 8:01
Joseph Wright♦
202k21555882
202k21555882
asked Dec 24 '18 at 6:22
Reinhard Neuwirth
1,55111322
1,55111322
2
I don't know and I haven't read the question yet, butExplSyntaxOn
andOff
is likely not needed in an expl package.
– Manuel
Dec 24 '18 at 6:31
If you use the L3 version, isn't expl syntax automatically toggled on?
– Johannes_B
Dec 24 '18 at 6:32
2
You needRequirePackageexpl3 ProvidesExplPackage ...
. And you probably also want to addRequirePackagexparse
.
– Henri Menke
Dec 24 '18 at 6:43
2
ProvidesExplPackage
takes four arguments:ProvidesExplPackage<package><date><version><description>
not just one and an optional argument likeProvidesPackage<package>[<version and date info>]
. Cf. also texdev.net/2011/12/11/…
– moewe
Dec 24 '18 at 6:58
1
Off-topic: you have non-expandable material, so you needcs_new_protected:Npn
notcs_new:Npn
.
– Joseph Wright♦
Dec 24 '18 at 8:02
add a comment |
2
I don't know and I haven't read the question yet, butExplSyntaxOn
andOff
is likely not needed in an expl package.
– Manuel
Dec 24 '18 at 6:31
If you use the L3 version, isn't expl syntax automatically toggled on?
– Johannes_B
Dec 24 '18 at 6:32
2
You needRequirePackageexpl3 ProvidesExplPackage ...
. And you probably also want to addRequirePackagexparse
.
– Henri Menke
Dec 24 '18 at 6:43
2
ProvidesExplPackage
takes four arguments:ProvidesExplPackage<package><date><version><description>
not just one and an optional argument likeProvidesPackage<package>[<version and date info>]
. Cf. also texdev.net/2011/12/11/…
– moewe
Dec 24 '18 at 6:58
1
Off-topic: you have non-expandable material, so you needcs_new_protected:Npn
notcs_new:Npn
.
– Joseph Wright♦
Dec 24 '18 at 8:02
2
2
I don't know and I haven't read the question yet, but
ExplSyntaxOn
and Off
is likely not needed in an expl package.– Manuel
Dec 24 '18 at 6:31
I don't know and I haven't read the question yet, but
ExplSyntaxOn
and Off
is likely not needed in an expl package.– Manuel
Dec 24 '18 at 6:31
If you use the L3 version, isn't expl syntax automatically toggled on?
– Johannes_B
Dec 24 '18 at 6:32
If you use the L3 version, isn't expl syntax automatically toggled on?
– Johannes_B
Dec 24 '18 at 6:32
2
2
You need
RequirePackageexpl3 ProvidesExplPackage ...
. And you probably also want to add RequirePackagexparse
.– Henri Menke
Dec 24 '18 at 6:43
You need
RequirePackageexpl3 ProvidesExplPackage ...
. And you probably also want to add RequirePackagexparse
.– Henri Menke
Dec 24 '18 at 6:43
2
2
ProvidesExplPackage
takes four arguments: ProvidesExplPackage<package><date><version><description>
not just one and an optional argument like ProvidesPackage<package>[<version and date info>]
. Cf. also texdev.net/2011/12/11/…– moewe
Dec 24 '18 at 6:58
ProvidesExplPackage
takes four arguments: ProvidesExplPackage<package><date><version><description>
not just one and an optional argument like ProvidesPackage<package>[<version and date info>]
. Cf. also texdev.net/2011/12/11/…– moewe
Dec 24 '18 at 6:58
1
1
Off-topic: you have non-expandable material, so you need
cs_new_protected:Npn
not cs_new:Npn
.– Joseph Wright♦
Dec 24 '18 at 8:02
Off-topic: you have non-expandable material, so you need
cs_new_protected:Npn
not cs_new:Npn
.– Joseph Wright♦
Dec 24 '18 at 8:02
add a comment |
1 Answer
1
active
oldest
votes
Unlike ProvidesPackage
, which uses a single argument for several different pieces of data, ProvidesExplPackage
has a separate argument for each. For example
RequirePackageexpl3
ProvidesExplPackage siunitx 2018-07-21 3.0.0-alpha
A comprehensive (SI) units package
% Here, `expl3` syntax is active
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%2f467143%2fproper-latex3-syntax-for-usepackagename-of-sty-file-providespackagena%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Unlike ProvidesPackage
, which uses a single argument for several different pieces of data, ProvidesExplPackage
has a separate argument for each. For example
RequirePackageexpl3
ProvidesExplPackage siunitx 2018-07-21 3.0.0-alpha
A comprehensive (SI) units package
% Here, `expl3` syntax is active
add a comment |
Unlike ProvidesPackage
, which uses a single argument for several different pieces of data, ProvidesExplPackage
has a separate argument for each. For example
RequirePackageexpl3
ProvidesExplPackage siunitx 2018-07-21 3.0.0-alpha
A comprehensive (SI) units package
% Here, `expl3` syntax is active
add a comment |
Unlike ProvidesPackage
, which uses a single argument for several different pieces of data, ProvidesExplPackage
has a separate argument for each. For example
RequirePackageexpl3
ProvidesExplPackage siunitx 2018-07-21 3.0.0-alpha
A comprehensive (SI) units package
% Here, `expl3` syntax is active
Unlike ProvidesPackage
, which uses a single argument for several different pieces of data, ProvidesExplPackage
has a separate argument for each. For example
RequirePackageexpl3
ProvidesExplPackage siunitx 2018-07-21 3.0.0-alpha
A comprehensive (SI) units package
% Here, `expl3` syntax is active
answered Dec 24 '18 at 8:04
Joseph Wright♦
202k21555882
202k21555882
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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%2f467143%2fproper-latex3-syntax-for-usepackagename-of-sty-file-providespackagena%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
2
I don't know and I haven't read the question yet, but
ExplSyntaxOn
andOff
is likely not needed in an expl package.– Manuel
Dec 24 '18 at 6:31
If you use the L3 version, isn't expl syntax automatically toggled on?
– Johannes_B
Dec 24 '18 at 6:32
2
You need
RequirePackageexpl3 ProvidesExplPackage ...
. And you probably also want to addRequirePackagexparse
.– Henri Menke
Dec 24 '18 at 6:43
2
ProvidesExplPackage
takes four arguments:ProvidesExplPackage<package><date><version><description>
not just one and an optional argument likeProvidesPackage<package>[<version and date info>]
. Cf. also texdev.net/2011/12/11/…– moewe
Dec 24 '18 at 6:58
1
Off-topic: you have non-expandable material, so you need
cs_new_protected:Npn
notcs_new:Npn
.– Joseph Wright♦
Dec 24 '18 at 8:02