Proper LaTeX3 syntax for usepackage{} - ProvidesPackage{}
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 ProvidesPackage{myCommandsAndMacros}
and in MWE_2
loaded with the instruction usepackage{myCommandsAndMacros}
- 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 ProvidesExplPackage{myCommandsAndMacros}
fail with error !Paragraph ended before ProvidesExplPackage was complete
.
MWE_1:
documentclass{article}
%-----------------------
usepackage[check-declarations,log-functions,enable-debug]{expl3}
% or: RequirePackage[check-declarations,log-functions,enable-debug]{expl3}
usepackage{xparse}
%-----------------------
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
NewDocumentCommandmyDocumentCommand{O{911}O{abc}}
{
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
%-----------------------
begin{document}
myDocumentCommand[2][$alpha$]
myDocumentCommand
end{document}
MWE_2:
documentclass{article}
%-----------------------
usepackage[check-declarations,log-functions,enable-debug]{expl3}
% or: RequirePackage[check-declarations,log-functions,enable-debug]{expl3}
usepackage{xparse}
usepackage{myCommandsAndMacros}
%-----------------------
begin{document}
myDocumentCommand[2][$alpha$]
myDocumentCommand
end{document}
myCommandsAndMacros.sty
ProvidesPackage{myCommandsAndMacros}
%ProvidesExplPackage{myCommandsAndMacros} ==> 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
NewDocumentCommandmyDocumentCommand{O{911}O{abc}}
{
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 ProvidesPackage{myCommandsAndMacros}
and in MWE_2
loaded with the instruction usepackage{myCommandsAndMacros}
- 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 ProvidesExplPackage{myCommandsAndMacros}
fail with error !Paragraph ended before ProvidesExplPackage was complete
.
MWE_1:
documentclass{article}
%-----------------------
usepackage[check-declarations,log-functions,enable-debug]{expl3}
% or: RequirePackage[check-declarations,log-functions,enable-debug]{expl3}
usepackage{xparse}
%-----------------------
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
NewDocumentCommandmyDocumentCommand{O{911}O{abc}}
{
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
%-----------------------
begin{document}
myDocumentCommand[2][$alpha$]
myDocumentCommand
end{document}
MWE_2:
documentclass{article}
%-----------------------
usepackage[check-declarations,log-functions,enable-debug]{expl3}
% or: RequirePackage[check-declarations,log-functions,enable-debug]{expl3}
usepackage{xparse}
usepackage{myCommandsAndMacros}
%-----------------------
begin{document}
myDocumentCommand[2][$alpha$]
myDocumentCommand
end{document}
myCommandsAndMacros.sty
ProvidesPackage{myCommandsAndMacros}
%ProvidesExplPackage{myCommandsAndMacros} ==> 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
NewDocumentCommandmyDocumentCommand{O{911}O{abc}}
{
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 needRequirePackage{expl3} ProvidesExplPackage ...
. And you probably also want to addRequirePackage{xparse}
.
– 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 ProvidesPackage{myCommandsAndMacros}
and in MWE_2
loaded with the instruction usepackage{myCommandsAndMacros}
- 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 ProvidesExplPackage{myCommandsAndMacros}
fail with error !Paragraph ended before ProvidesExplPackage was complete
.
MWE_1:
documentclass{article}
%-----------------------
usepackage[check-declarations,log-functions,enable-debug]{expl3}
% or: RequirePackage[check-declarations,log-functions,enable-debug]{expl3}
usepackage{xparse}
%-----------------------
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
NewDocumentCommandmyDocumentCommand{O{911}O{abc}}
{
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
%-----------------------
begin{document}
myDocumentCommand[2][$alpha$]
myDocumentCommand
end{document}
MWE_2:
documentclass{article}
%-----------------------
usepackage[check-declarations,log-functions,enable-debug]{expl3}
% or: RequirePackage[check-declarations,log-functions,enable-debug]{expl3}
usepackage{xparse}
usepackage{myCommandsAndMacros}
%-----------------------
begin{document}
myDocumentCommand[2][$alpha$]
myDocumentCommand
end{document}
myCommandsAndMacros.sty
ProvidesPackage{myCommandsAndMacros}
%ProvidesExplPackage{myCommandsAndMacros} ==> 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
NewDocumentCommandmyDocumentCommand{O{911}O{abc}}
{
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 ProvidesPackage{myCommandsAndMacros}
and in MWE_2
loaded with the instruction usepackage{myCommandsAndMacros}
- 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 ProvidesExplPackage{myCommandsAndMacros}
fail with error !Paragraph ended before ProvidesExplPackage was complete
.
MWE_1:
documentclass{article}
%-----------------------
usepackage[check-declarations,log-functions,enable-debug]{expl3}
% or: RequirePackage[check-declarations,log-functions,enable-debug]{expl3}
usepackage{xparse}
%-----------------------
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
NewDocumentCommandmyDocumentCommand{O{911}O{abc}}
{
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
%-----------------------
begin{document}
myDocumentCommand[2][$alpha$]
myDocumentCommand
end{document}
MWE_2:
documentclass{article}
%-----------------------
usepackage[check-declarations,log-functions,enable-debug]{expl3}
% or: RequirePackage[check-declarations,log-functions,enable-debug]{expl3}
usepackage{xparse}
usepackage{myCommandsAndMacros}
%-----------------------
begin{document}
myDocumentCommand[2][$alpha$]
myDocumentCommand
end{document}
myCommandsAndMacros.sty
ProvidesPackage{myCommandsAndMacros}
%ProvidesExplPackage{myCommandsAndMacros} ==> 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
NewDocumentCommandmyDocumentCommand{O{911}O{abc}}
{
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♦
203k21558885
203k21558885
asked Dec 24 '18 at 6:22
Reinhard NeuwirthReinhard 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 needRequirePackage{expl3} ProvidesExplPackage ...
. And you probably also want to addRequirePackage{xparse}
.
– 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 needRequirePackage{expl3} ProvidesExplPackage ...
. And you probably also want to addRequirePackage{xparse}
.
– 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
RequirePackage{expl3} ProvidesExplPackage ...
. And you probably also want to add RequirePackage{xparse}
.– Henri Menke
Dec 24 '18 at 6:43
You need
RequirePackage{expl3} ProvidesExplPackage ...
. And you probably also want to add RequirePackage{xparse}
.– 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
RequirePackage{expl3}
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
RequirePackage{expl3}
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
RequirePackage{expl3}
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
RequirePackage{expl3}
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
RequirePackage{expl3}
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♦Joseph Wright
203k21558885
203k21558885
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%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
RequirePackage{expl3} ProvidesExplPackage ...
. And you probably also want to addRequirePackage{xparse}
.– 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