Proper LaTeX3 syntax for usepackage{} - ProvidesPackage{}












1














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









share|improve this question




















  • 1




    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
    4 hours ago










  • If you use the L3 version, isn't expl syntax automatically toggled on?
    – Johannes_B
    4 hours ago






  • 1




    You need RequirePackage{expl3} ProvidesExplPackage .... And you probably also want to add RequirePackage{xparse}.
    – Henri Menke
    4 hours ago






  • 1




    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
    4 hours ago












  • Off-topic: you have non-expandable material, so you need cs_new_protected:Npn not cs_new:Npn.
    – Joseph Wright
    3 hours ago
















1














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









share|improve this question




















  • 1




    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
    4 hours ago










  • If you use the L3 version, isn't expl syntax automatically toggled on?
    – Johannes_B
    4 hours ago






  • 1




    You need RequirePackage{expl3} ProvidesExplPackage .... And you probably also want to add RequirePackage{xparse}.
    – Henri Menke
    4 hours ago






  • 1




    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
    4 hours ago












  • Off-topic: you have non-expandable material, so you need cs_new_protected:Npn not cs_new:Npn.
    – Joseph Wright
    3 hours ago














1












1








1







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









share|improve this question















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 3 hours ago









Joseph Wright

202k21554880




202k21554880










asked 5 hours ago









Reinhard Neuwirth

1,53911322




1,53911322








  • 1




    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
    4 hours ago










  • If you use the L3 version, isn't expl syntax automatically toggled on?
    – Johannes_B
    4 hours ago






  • 1




    You need RequirePackage{expl3} ProvidesExplPackage .... And you probably also want to add RequirePackage{xparse}.
    – Henri Menke
    4 hours ago






  • 1




    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
    4 hours ago












  • Off-topic: you have non-expandable material, so you need cs_new_protected:Npn not cs_new:Npn.
    – Joseph Wright
    3 hours ago














  • 1




    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
    4 hours ago










  • If you use the L3 version, isn't expl syntax automatically toggled on?
    – Johannes_B
    4 hours ago






  • 1




    You need RequirePackage{expl3} ProvidesExplPackage .... And you probably also want to add RequirePackage{xparse}.
    – Henri Menke
    4 hours ago






  • 1




    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
    4 hours ago












  • Off-topic: you have non-expandable material, so you need cs_new_protected:Npn not cs_new:Npn.
    – Joseph Wright
    3 hours ago








1




1




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
4 hours ago




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
4 hours ago












If you use the L3 version, isn't expl syntax automatically toggled on?
– Johannes_B
4 hours ago




If you use the L3 version, isn't expl syntax automatically toggled on?
– Johannes_B
4 hours ago




1




1




You need RequirePackage{expl3} ProvidesExplPackage .... And you probably also want to add RequirePackage{xparse}.
– Henri Menke
4 hours ago




You need RequirePackage{expl3} ProvidesExplPackage .... And you probably also want to add RequirePackage{xparse}.
– Henri Menke
4 hours ago




1




1




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
4 hours ago






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
4 hours ago














Off-topic: you have non-expandable material, so you need cs_new_protected:Npn not cs_new:Npn.
– Joseph Wright
3 hours ago




Off-topic: you have non-expandable material, so you need cs_new_protected:Npn not cs_new:Npn.
– Joseph Wright
3 hours ago










1 Answer
1






active

oldest

votes


















4














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





share|improve this answer





















    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
    });


    }
    });














    draft saved

    draft discarded


















    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









    4














    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





    share|improve this answer


























      4














      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





      share|improve this answer
























        4












        4








        4






        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





        share|improve this answer












        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






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 3 hours ago









        Joseph Wright

        202k21554880




        202k21554880






























            draft saved

            draft discarded




















































            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.




            draft saved


            draft discarded














            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





















































            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







            Popular posts from this blog

            404 Error Contact Form 7 ajax form submitting

            How to know if a Active Directory user can login interactively

            Refactoring coordinates for Minecraft Pi buildings written in Python