www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 53919860065377b6d27550319b476186d313280e
parent 4666badbe283fda8e2cab56ef083ade62520e5a1
Author: Davide P. Cervone <dpvc@union.edu>
Date:   Mon, 18 Aug 2014 13:46:43 -0400

Allow \newenvironment to provide an optional argument.  Issue #881

Diffstat:
Munpacked/extensions/TeX/newcommand.js | 13+++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/unpacked/extensions/TeX/newcommand.js b/unpacked/extensions/TeX/newcommand.js @@ -48,7 +48,7 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () { TEX.Parse.Augment({ /* - * Implement \newcommand{\name}[n]{...} + * Implement \newcommand{\name}[n][default]{...} */ NewCommand: function (name) { var cs = this.trimSpaces(this.GetArgument(name)), @@ -76,6 +76,7 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () { NewEnvironment: function (name) { var env = this.trimSpaces(this.GetArgument(name)), n = this.GetBrackets(name), + opt = this.GetBrackets(name), bdef = this.GetArgument(name), edef = this.GetArgument(name); if (n) { @@ -85,7 +86,7 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () { "Illegal number of parameters specified in %1",name]); } } - this.setEnv(env,['BeginEnv',[null,'EndEnv'],bdef,edef,n]); + this.setEnv(env,['BeginEnv',[null,'EndEnv'],bdef,edef,n,opt]); }, /* @@ -203,10 +204,14 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () { /* * Process a user-defined environment */ - BeginEnv: function (begin,bdef,edef,n) { + BeginEnv: function (begin,bdef,edef,n,def) { if (n) { var args = []; - for (var i = 0; i < n; i++) {args.push(this.GetArgument("\\begin{"+name+"}"))} + if (def != null) { + var optional = this.GetBrackets("\\begin{"+name+"}"); + args.push(optional == null ? def : optional); + } + for (var i = args.length; i < n; i++) {args.push(this.GetArgument("\\begin{"+name+"}"))} bdef = this.SubstituteArgs(args,bdef); edef = this.SubstituteArgs([],edef); // no args, but get errors for #n in edef }