Hi Nasser, --------------------------- > \documentclass[12pt]{book} > \usepackage{amsmath} > \begin{document} > > where here $p=-2$ and $q=2$ and $n=\frac{1}{2}$. Starting by dividing by > $y^{\frac{1}{2}}$ gives% > \[ > y^{\prime}y^{-\frac{1}{2}}-2y^{\frac{1}{2}}=2 > \] > \end{document} > ------------------------------- >
There was a bug in the build file, so the pattern matched "dividing" and everything that followed. It should be fixed now. Best, Michal
local filter = require "make4ht-filter" local domfilter = require "make4ht-domfilter" local function process_options(options) -- convert [number={foo}] to \tag{foo} local number = options:match("number%s*=%s*{?(%w+)") if number then return "\\tag{" .. number .. "}" end return "" end local function escape_equal(str) -- there can be multiple equal characters in the string. we should put the & character -- just before the one which is not inside any group -- escape nested equal signs str = str:gsub("({[^{^}]+)=([^{^}]+})", "%1:EQUAL:%2") -- replace remaining = str = str:gsub("([^\n]+)", function(line) line = line:gsub("=", "&=", 1) return line .. "\n" end) -- str = str:gsub("=", "&=") -- return escaped = str = str:gsub(":EQUAL:", "=") return str end local function make_align(dgroup, new_env) -- change breqn environment contents to align* -- change = to &= -- local dgroup = escape_equal(dgroup) -- <- we don't do this anymore, it leads only to problems local new_env = new_env or "\\begin{align*}\n%s\n\\end{align*}" -- return the fixed text in align* environment -- return "\\begin{".. new_env .."}" .. dgroup .. "\\end{" .. new_env .. "}" return string.format(new_env, dgroup) end -- process remaining dmath environments local function process_dmath(s, env_name, new_env) return s:gsub("\\begin%s*{" .. env_name .. "}(.-)\\end%s*{" .. env_name .. "}", function(dmath) -- options can be still here local dmath = dmath:gsub("^%s*(%b[])", process_options) return make_align(dmath, new_env) end) end local function process_dgroup(s, env_name) return s:gsub("\\begin%s*{" .. env_name .. "}(.-)\\end%s*{" .. env_name .. "}", function(dgroup) -- remove environemnts dgroup = process_dmath(dgroup, "dmath%*", "\n%s\\\\\n") dgroup = process_dmath(dgroup, "dmath", "\n%s\\\\\n") local dgroup = escape_equal(dgroup) -- <- we don't do this anymore, it leads only to problems return make_align(dgroup) end) end local function escape_tags(tagname, s) local pattern = "(<" .. tagname .. "[^>]+mathjax[^>]+>)(.-)(</" .. tagname .. ">)" return s:gsub(pattern, function(tag, text, endtag) local text = text:gsub("<", "<"):gsub(">", ">") return tag .. text .. endtag end) end local function escape_mathjax(s) local s = escape_tags("span", s) return escape_tags("div", s) end local process = filter { -- find all dgroup* environments and convert them to align* function(s) local s = process_dgroup(s,"dgroup%*") s = process_dgroup(s, "dgroup") -- process remaining dmath environments in the document s = process_dmath(s, "dmath%*", "\\[\n%s\n\\]") s = process_dmath(s, "dmath", "\\begin{equation}\n%s\n \\end{equation}") return s end, escape_mathjax } -- install filter to match HTML files Make:match("html?$", process)