diff options
author | Karl Berry <karl@freefriends.org> | 2014-06-30 22:36:26 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-06-30 22:36:26 +0000 |
commit | 96269d837dc550d7b3276e44afcfc7a4b42b5259 (patch) | |
tree | ca32177b0e84c7f5070bb04e53f2e19d67eb8806 | |
parent | e7e2042fdd29c3b51aead77e94b84713768c238a (diff) |
unicode-math (29jun14)
git-svn-id: svn://tug.org/texlive/trunk@34490 c570f23f-e606-0410-a88d-b1316a301751
172 files changed, 4719 insertions, 5971 deletions
diff --git a/Master/texmf-dist/doc/latex/unicode-math/README b/Master/texmf-dist/doc/latex/unicode-math/README index d1562647433..b0b1df18a7d 100644 --- a/Master/texmf-dist/doc/latex/unicode-math/README +++ b/Master/texmf-dist/doc/latex/unicode-math/README @@ -153,9 +153,16 @@ standard behaviour. CHANGE HISTORY -------------- +- v0.7e (2014/06/30) + + * No longer assume fixltx2e has been loaded. + * Some ascii math symbols have been renamed with a \math... prefix, such as \mathquestion. + * Assume latest luaotfload is being used; no need for a separate unicode-math.lua script. + * Assorted typos and minor bugs. + - v0.7e (2013/05/04) - * Changes for luaotfload updates for TeX Live 2013. + * Track luaotfload updates. - v0.7d (2013/03/16) diff --git a/Master/texmf-dist/doc/latex/unicode-math/unicode-math-testsuite.pdf b/Master/texmf-dist/doc/latex/unicode-math/unicode-math-testsuite.pdf Binary files differdeleted file mode 100644 index 244b466d45d..00000000000 --- a/Master/texmf-dist/doc/latex/unicode-math/unicode-math-testsuite.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf b/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf Binary files differindex 2640c722778..1f1c06346e8 100644 --- a/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf +++ b/Master/texmf-dist/doc/latex/unicode-math/unicode-math.pdf diff --git a/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf b/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf Binary files differindex d2fa6988288..6a97c7b9ca2 100644 --- a/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf +++ b/Master/texmf-dist/doc/latex/unicode-math/unimath-symbols.pdf diff --git a/Master/texmf-dist/source/latex/unicode-math/Makefile b/Master/texmf-dist/source/latex/unicode-math/Makefile deleted file mode 100644 index 74bec7e2f19..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/Makefile +++ /dev/null @@ -1,514 +0,0 @@ - -#### MAKEFILE CONFIG #### - -SHELL = /bin/sh -.SILENT: -.SUFFIXES: - -#### BEGIN #### - -help: - echo 'UNICODE-MATH makefile targets:' - echo ' ' - echo ' help - (this message)' - echo ' ctan - generate archive for CTAN' - echo ' doc - compile documentation inside build/' - echo ' clean - remove build directory and compiled files' - echo ' all - clean & doc & ctan' - echo ' ' - echo ' install - install the package into your home texmf tree' - echo ' install-sys - install the package into the system-wide texmf tree' - echo ' (may require administration privileges)' - echo ' install TEXMF=<texmf> - install the package into the path <texmf>' - echo ' ' - echo ' check - run the test suite' - echo ' initest - initialise any new tests' - echo ' ' - echo ' xfile F=<abc> - compile file <abc> with XeLaTeX' - echo ' lfile F=<abc> - compile file <abc> with LuaLaTeX' - echo ' ' - echo ' ' - echo 'Append `hometree=none` to any of the above to disable searching - echo 'the home texmf directory.' - echo ' ' - echo 'To add a new test, add a file called X****.ltx to' - echo 'directory testfiles/, run `make initest` and ensure' - echo 'that the output X****.safe.pdf is correct.' - echo ' ' - echo '`make test` will then compare future compilations of the' - echo 'test file against this original and warn against any changes.' - echo '`make build/X****.diff.pdf` will check a single test.' - echo ' ' - echo 'I recommend `make -j4 check` or thereabouts to parallelise' - echo 'the testing.' - - - -#### SETUP #### - -# file and folder names: - -PKG = unicode-math -TBL = $(PKG)-table.tex -SUITE = $(PKG)-testsuite -XMPL = unimath-example.ltx -SYM = unimath-symbols - -COPY = cp -a -MKTEXLSR = mktexlsr - -testdir=testfiles -builddir=build -tds=$(builddir)/$(PKG).tds - -UPDATE = `which dtx-update` || true # TODO: generalise -SPEAKFAIL := say 'Test failed!' || true # Mac OS X only? - -hometree = `kpsewhich -var-value=TEXMFHOME` - -# these files end up in the CTAN directory: - -PKGSOURCE = $(PKG).dtx $(TBL) Makefile -DOC = $(PKG).pdf $(SUITE).pdf README $(XMPL) $(SYM).pdf -CTANFILES = $(PKGSOURCE) $(XMPL) $(SYM).ltx $(DOC) $(testdir) -BUILDCTAN = $(addprefix $(builddir)/,$(CTANFILES)) -BUILDDOC = $(addprefix $(builddir)/,$(DOC)) - -# - -LTXSOURCE = $(PKG).sty $(PKG)-xetex.sty $(PKG)-luatex.sty $(PKG).lua $(TBL) - -# and this is how the TDS zip file is produced: - -INSFILES = \ - $(tds)/tex/latex/$(PKG)/unicode-math.sty \ - $(tds)/tex/latex/$(PKG)/unicode-math-xetex.sty \ - $(tds)/tex/latex/$(PKG)/unicode-math-luatex.sty \ - $(tds)/tex/latex/$(PKG)/unicode-math.lua \ - $(tds)/tex/latex/$(PKG)/unicode-math-table.tex - -OTHERFILES = \ - $(tds)/source/latex/$(PKG)/$(PKG).dtx \ - $(tds)/source/latex/$(PKG)/$(SUITE).ltx \ - $(tds)/source/latex/$(PKG)/$(SYM).ltx \ - $(tds)/source/latex/$(PKG)/Makefile \ - $(tds)/source/latex/$(PKG)/$(testdir) \ - $(tds)/doc/latex/$(PKG)/unicode-math.pdf \ - $(tds)/doc/latex/$(PKG)/unicode-math-testsuite.pdf \ - $(tds)/doc/latex/$(PKG)/README \ - $(tds)/doc/latex/$(PKG)/$(XMPL) \ - $(tds)/doc/latex/$(PKG)/$(SYM).pdf \ - -TDSFILES = $(INSFILES) $(OTHERFILES) - - -#### BASICS #### - -doc: $(BUILDDOC) - -README: - -$(XMPL): - -clean: - rm -rf $(builddir)/* - rm -f $(PKG).zip $(PKG).pdf $(SUITE).pdf - -all: clean doc ctan - -#### BUILD FILES - -$(builddir)/$(PKG).dtx: $(PKG).dtx - mkdir -p $(builddir) - $(UPDATE) - $(COPY) $< $@ - -$(builddir)/$(PKG).sty: $(builddir)/$(PKG).dtx - echo "Updating $@" - cd $(builddir) && \ - tex $(PKG).dtx > /dev/null ; - -$(builddir)/$(PKG).lua: $(builddir)/$(PKG).dtx - echo "Updating $@" - cd $(builddir) && \ - tex $(PKG).dtx > /dev/null ; - -$(builddir)/$(PKG).pdf: $(builddir)/$(PKG).dtx $(BUILDSOURCE) - cd $(builddir) && \ - $(run_xelatex) $(PKG).dtx && \ - makeindex -s gind.ist $(PKG) && \ - $(run_xelatex) $(PKG).dtx; - -$(builddir)/$(SYM).pdf: $(builddir)/$(SYM).ltx - cd $(builddir) && \ - $(run_xelatex) $(SYM).ltx && \ - $(run_xelatex) $(SYM).ltx; - -$(builddir)/%.ltx: $(testdir)/%.ltx - $(COPY) $< $@ - -$(builddir)/%.tex: $(testdir)/%.tex - $(COPY) $< $@ - -$(builddir)/$(testdir): $(testdir) - $(COPY) $< $@ - -$(builddir)/%: % - $(COPY) $< $@ - -$(builddir)/README: $(builddir)/README.markdown - mv -f $< $@ - - -##### CTAN INSTALLATION ##### - -TDS = $(builddir)/$(PKG).tds.zip - -tds: $(TDS) - -$(TDS): $(tds)/$(PKG).tds.zip - $(COPY) $< $@ - -$(tds)/$(PKG).tds.zip: $(TDSFILES) - cd $(tds); \ - zip -r $(PKG).tds.zip ./* -x *.DS_Store -x *.safe.pdf *.ignore.pdf - -ctan: $(BUILDCTAN) tds - cd $(builddir); \ - zip -r \ - ../$(PKG).zip $(CTANFILES) $(PKG).tds.zip \ - -x *.DS_Store -x *.safe.pdf *.ignore.pdf - -$(tds)/doc/latex/$(PKG)/% \ -$(tds)/tex/latex/$(PKG)/% \ -$(tds)/source/latex/$(PKG)/% : $(builddir)/% - mkdir -p $(shell dirname $@) - $(COPY) $< $@ - -$(tds)/source/latex/$(PKG)/$(testdir): - $(COPY) $(testdir) $(tds)/source/latex/$(PKG)/ - -##### LOCAL TEXMF INSTALLATION ##### - -TEXMFHOME=$(shell kpsewhich --var-value TEXMFHOME) -TEXMFLOCAL=$(shell kpsewhich --var-value TEXMFLOCAL) - -install: $(INSFILES) - if test -n "$(TEXMFHOME)" ; then \ - echo "Installing in '$(TEXMFHOME)'."; \ - $(COPY) $(tds)/* $(TEXMFHOME) && $(MKTEXLSR); \ - else \ - echo "Cannot locate your home texmf tree. Specify manually with\n\n make install TEXMFHOME=/path/to/texmf\n" ; \ - false ; \ - fi ; - -install-sys: $(INSFILES) - if test -n "$(TEXMFLOCAL)" ; then \ - echo "Installing in '$(TEXMFLOCAL)'."; \ - $(COPY) $(tds)/* $(TEXMFLOCAL) && $(MKTEXLSR); \ - else \ - echo "Cannot locate your system-wide local texmf tree. Specify manually with\n\n make install TEXMFLOCAL=/path/to/texmf\n" ; \ - false ; \ - fi ; - - -run_xelatex = export TEXMFHOME=$(hometree) && xelatex -run_lualatex = export TEXMFHOME=$(hometree) && lualatex - -##### USEFUL FOR TEST FILES ##### - -xfile: $(F) $(BUILDSOURCE) - if test -z "$(F)" ; then \ - echo "Typesetting test.tex:"; \ - $(COPY) test.tex $(builddir)/test.tex; \ - cd $(builddir); $(run_xelatex) test.tex; \ - else \ - echo Typesetting $(F):; \ - $(COPY) $(F) $(builddir)/$(F); \ - cd $(builddir); $(run_xelatex) $(F); \ - fi - -lfile: $(F) $(BUILDSOURCE) - if test -z "$(F)" ; then \ - echo "Typesetting test.tex:"; \ - $(COPY) test.tex $(builddir)/test.tex; \ - cd $(builddir); $(run_lualatex) test.tex; \ - else \ - echo Typesetting $(F):; \ - $(COPY) $(F) $(builddir)/$(F); \ - cd $(builddir); $(run_lualatex) $(F); \ - fi - - -############# -# TESTSUITE # -############# - -#### Needed to compile and make stuff #### - -builddir=build -testdir=testfiles -lprefix=L -xprefix=X -both=F -NAME=unicode-math - -COPY = cp -a -MOVE = mv -f -COMPARE_OPTS = -density 300x300 -metric ae -fuzz 35% - -# Redefine this to print output if you need: -REDIRECT = > /dev/null - -LTXSOURCE = $(NAME).sty $(NAME)-xetex.sty $(NAME)-luatex.sty $(NAME).lua - -TESTLIST = umtest-suite-X.tex umtest-suite-L.tex umtest-suite-F.tex - -SUITESOURCE = $(addprefix $(testdir)/,umtest-preamble.tex $(TESTLIST)) - -TESTOUT = $(wildcard $(testdir)/*.safe.pdf) -BUILDTESTSRC = $(subst $(testdir)/,$(builddir)/,$(subst .safe.pdf,.ltx,$(TESTOUT))) - -BUILDTESTTARGET1 = $(TESTOUT) -BUILDTESTTARGET2 = $(subst $(testdir)/,$(builddir)/,$(BUILDTESTTARGET1)) -BUILDTESTTARGET3 = $(subst .Xsafe.pdf,-X.diff.pdf,$(BUILDTESTTARGET2)) -BUILDTESTTARGET4 = $(subst .Lsafe.pdf,-L.diff.pdf,$(BUILDTESTTARGET3)) -BUILDTESTTARGET5 = $(subst .safe.pdf,.diff.pdf,$(BUILDTESTTARGET4)) -BUILDTESTTARGET = $(BUILDTESTTARGET5) - -BUILDSOURCE = $(addprefix $(builddir)/,$(LTXSOURCE)) -BUILDSUITE = $(subst $(testdir)/,$(builddir)/,$(SUITESOURCE)) - -BUILDFILES = $(BUILDSOURCE) $(BUILDSUITE) $(BUILDTESTSRC) $(BUILDTESTTARGET) - -# Test suite PDF - -$(builddir)/$(SUITE).pdf: $(builddir)/$(SUITE).ltx $(BUILDSUITE) - cd $(builddir) && \ - $(run_xelatex) $(SUITE).ltx - - -#### All tests #### - -check: $(TESTLIST) - -$(TESTLIST): $(BUILDFILES) - cd $(testdir) && \ - ls X*.safe.pdf | sed -e 's/\(.*\).safe.pdf/\\inserttest{\1}/g' > umtest-suite-X.tex && \ - ls L*.safe.pdf | sed -e 's/\(.*\).safe.pdf/\\inserttest{\1}/g' > umtest-suite-L.tex && \ - ls F*-L.safe.pdf | sed -e 's/\(.*\).safe.pdf/\\inserttest{\1}/g' > umtest-suite-F.tex; - -$(builddir)/%: $(testdir)/% - @mkdir -p $(builddir); \ - $(COPY) $< $@ - -$(builddir)/%: % - @mkdir -p $(builddir); \ - $(COPY) -f $< $@ - - -#### Generating new tests #### - -lonelystub = $(shell cd $(testdir); ls | egrep '[XL].(.*\.ltx)$$|[XL].(.*\.safe\.pdf)$$' | cut -d . -f 1 | uniq -u ) -lonelyfile = $(addsuffix .safe.pdf,$(lonelystub)) -lonelypath = $(addprefix $(testdir)/,$(lonelyfile)) -lonelytest = $(addprefix $(builddir)/,$(addsuffix .pdf,$(lonelystub))) - -Xlonelystub = $(shell cd $(testdir); ls | egrep -o '(F.*\.ltx)$$|(F.*-X\.safe\.pdf)$$' | sed -e s/-X.safe.pdf// -e s/.ltx// | uniq -u | uniq ) -Xlonelyfile = $(addsuffix -X.safe.pdf,$(Xlonelystub)) -Xlonelypath = $(addprefix $(testdir)/,$(Xlonelyfile)) -Xlonelytest = $(addprefix $(builddir)/,$(addsuffix -X.pdf,$(Xlonelystub))) - -Llonelystub = $(shell cd $(testdir); ls | egrep -o '(F.*\.ltx)$$|(F.*-L\.safe\.pdf)$$' | sed -e s/-L.safe.pdf// -e s/.ltx// | uniq -u | uniq ) -Llonelyfile = $(addsuffix -L.safe.pdf,$(Llonelystub)) -Llonelypath = $(addprefix $(testdir)/,$(Llonelyfile)) -Llonelytest = $(addprefix $(builddir)/,$(addsuffix -L.pdf,$(Llonelystub))) - -initest: $(lonelypath) $(Xlonelypath) $(Llonelypath) - -$(lonelypath): $(lonelytest) - $(COPY) `echo $@ | sed -e s/$(testdir)/$(builddir)/ -e s/.safe.pdf/.pdf/` $@ - -$(Xlonelypath): $(Xlonelytest) - $(COPY) `echo $@ | sed -e s/$(testdir)/$(builddir)/ -e s/-X.safe.pdf/-X.pdf/` $@ - -$(Llonelypath): $(Llonelytest) - $(COPY) `echo $@ | sed -e s/$(testdir)/$(builddir)/ -e s/-L.safe.pdf/-L.pdf/` $@ - - -#### TESTS FOR BOTH ENGINES #### - -$(builddir)/F%-L.diff.pdf: $(builddir)/F%-L.pdf - @echo 'F$*: Comparing PDF from LuaLaTeX against reference output.' - compare_result="$$(compare "$(builddir)/F$*-L.pdf" "$(testdir)/F$*-L.safe.pdf" $(COMPARE_OPTS) "$(builddir)/F$*-L.diff.pdf" 2>&1)" ; \ - if [ 0 -eq "$$?" -a 1 -ge "$$compare_result" ] ; \ - then \ - echo 'F$*: Test passed.' ; \ - else \ - echo 'F$*: Test failed.' ; \ - $(SPEAKFAIL) ; \ - false ; \ - fi - -$(builddir)/F%-X.diff.pdf: $(builddir)/F%-X.pdf - @echo 'F$*: Comparing PDF from XeLaTeX against reference output.' - compare_result="$$(compare "$(builddir)/F$*-X.pdf" "$(testdir)/F$*-X.safe.pdf" $(COMPARE_OPTS) "$(builddir)/F$*-X.diff.pdf" 2>&1)" ; \ - if [ 0 -eq "$$?" -a 1 -ge "$$compare_result" ] ; \ - then \ - echo 'F$*: Test passed.' ; \ - else \ - echo 'F$*: Test failed.' ; \ - $(SPEAKFAIL) ; \ - false ; \ - fi - -$(builddir)/F%-L.pdf: $(BUILDSOURCE) $(builddir)/F%-L.ltx - @echo 'F$*: Generating PDF output with LuaLaTeX.' - @cd $(builddir); $(run_lualatex) -interaction=nonstopmode F$*-L.ltx $(REDIRECT) - -$(builddir)/F%-X.pdf: $(BUILDSOURCE) $(builddir)/F%-X.ltx - @echo 'F$*: Generating PDF output with XeLaTeX.' - @cd $(builddir); $(run_xelatex) -interaction=nonstopmode F$*-X.ltx $(REDIRECT) - -$(builddir)/F%-L.ltx: $(builddir)/F%.ltx - $(COPY) $< $@ - -$(builddir)/F%-X.ltx: $(builddir)/F%.ltx - $(COPY) $< $@ - - -#### TEST FOR EACH ENGINE INDIVIDUALLY #### - -$(builddir)/L%.diff.pdf: $(builddir)/L%.pdf - @echo 'L$*: Comparing PDF against reference output.' - compare_result="$$(compare "$(builddir)/L$*.pdf" "$(testdir)/L$*.safe.pdf" $(COMPARE_OPTS) "$(builddir)/L$*.diff.pdf" 2>&1)" ; \ - if [ 0 -eq "$$?" -a 1 -ge "$$compare_result" ] ; \ - then \ - echo 'L$*: Test passed.' ; \ - else \ - echo 'L$*: Test failed.' ; \ - $(SPEAKFAIL) ; \ - false ; \ - fi - -$(builddir)/X%.diff.pdf: $(builddir)/X%.pdf - @echo 'X$*: Comparing PDF against reference output.' - compare_result="$$(compare "$(builddir)/X$*.pdf" "$(testdir)/X$*.safe.pdf" $(COMPARE_OPTS) "$(builddir)/X$*.diff.pdf" 2>&1)" ; \ - if [ 0 -eq "$$?" -a 1 -ge "$$compare_result" ] ; \ - then \ - echo 'X$*: Test passed.' ; \ - else \ - echo 'X$*: Test failed.' ; \ - $(SPEAKFAIL) ; \ - false ; \ - fi - -$(builddir)/X%.pdf: $(BUILDSOURCE) $(BUILDSUITE) $(builddir)/X%.ltx - @echo 'X$*: Generating PDF output with XeLaTeX.' - @cd $(builddir) && $(run_xelatex) -interaction=nonstopmode X$*.ltx $(REDIRECT) - -$(builddir)/L%.pdf: $(BUILDSOURCE) $(BUILDSUITE) $(builddir)/L%.ltx - @echo 'L$*: Generating PDF output with LuaLaTeX.' - @cd $(builddir) && $(run_lualatex) -interaction=nonstopmode L$*.ltx $(REDIRECT) - -#### HACK: allow `make <foobar>` run that test. - -L%: build/L%.ltx - make build/L$*.diff.pdf - -X%: build/X%.ltx - make build/X$*.diff.pdf - -F%: build/F%.ltx - make build/F$*-L.diff.pdf - make build/F$*-X.diff.pdf - - - - - - - -############################ -###### NIGHTLY BUILDS ###### -############################ - -UNAME_S := $(shell uname -s) - -# Mac OS X: -ifeq ($(UNAME_S),Darwin) - MD5 = md5 -endif - -# Linux: -ifeq ($(UNAME_S),Linux) - MD5 = md5sum -endif - -BRANCH = tdsbuild - -TMP = /tmp -LOG = $(TMP)/gitlog.tmp - - -checkbranch: - @if git branch | grep $(BRANCH) > /dev/null ; \ - then echo "TDS branch exists"; \ - else \ - echo "TDS branch does not exist; doing so will remove all untracked files from your working directory. Create the TDS branch with\n make createbranch"; \ - false; \ - fi; - -createbranch: $(TDS) - cp -f $(TDS) $(TMP)/ - git symbolic-ref HEAD refs/heads/$(BRANCH) - rm .git/index - git clean -fdx - unzip -o $(TMP)/$(TDS) -d . - rm $(TMP)/$(TDS) - git add --all - git commit -m "Initial TDS commit" - git checkout master - git push origin $(BRANCH) master - @echo "\nTDS branch creation was successful.\n" - @echo "Now create a new package at TLContrib: http://tlcontrib.metatex.org/" - @echo "Use the following metadata:" - @echo " Package ID: $(PKG)" - @echo " BRANCH: $(BRANCH)" - @echo "\nAfter this process, use \`make tdsbuild\` to" - @echo " (a) push your recent work on the master branch," - @echo " (b) automatically create a TDS snapshot," - @echo " (c) send the TDS snapshot to TLContrib." - - -ifeq ($(UNAME_S),Darwin) - tlclogin: USERNAME = $(shell security find-internet-password -s tlcontrib.metatex.org | grep "acct" | cut -f 4 -d \") - tlclogin: PASSWORD = $(shell security 2>&1 >/dev/null find-internet-password -gs tlcontrib.metatex.org | cut -f 2 -d ' ') -endif - -ifeq ($(UNAME_S),Linux) - tlclogin: USERNAME = "" - tlclogin: PASSWORD = "" -endif - -tlclogin: VERSION = $(shell date "+%Y-%m-%d@%H:%M") -tlclogin: ; - -tdsbuild: checkbranch tlclogin $(TDS) - cp -f $(TDS) $(TMP)/ - @echo "Constructing commit history for snapshot build" - date "+TDS snapshot %Y-%m-%d %H:%M" > $(LOG) - echo '\n\nApproximate commit history since last snapshot:\n' >> $(LOG) - git log --after="`git log -b $(BRANCH) -n 1 --pretty=format:"%aD"`" --pretty=format:"%+H%+s%+b" >> $(LOG) - @echo "Committing TDS snapshot to separate branch" - git checkout $(BRANCH) - unzip -o $(TMP)/$(TDS) -d . - rm $(TMP)/$(TDS) - git commit --all --file=$(LOG) - git clean -df - @echo "Pushing TDS and master branch" - git checkout master - git push origin $(BRANCH) master - @echo "Pinging TLContrib for automatic update" - curl http://tlcontrib.metatex.org/cgi-bin/package.cgi/action=notify/key=$(PKG)/check=$(shell echo $(USERNAME)/$(PASSWORD)/$(VERSION) | $(MD5) )?version=$(VERSION) > /dev/null 2>&1 - diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-active-sscripts.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-active-sscripts.ltx deleted file mode 100644 index 95a219a933d..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-active-sscripts.ltx +++ /dev/null @@ -1,13 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\setlength\parskip{12pt} -\begin{document} -$x₀₁₂$ $x₁₂₃$ $x₂₃₄$ $x₃₄₅$ $x₄₅₆$ $x₅₆₇$ $x₆₇₈$ $x₇₈₉$ $x₈₉₊$ - -$x₉₊₋$ $x₊₋₍$ $x₋₍₌$ $x₍₌₎$ $x₌₎ₐ$ $x₎ₐₑ$ $xₐₑₒ$ $xₑₒₓ$ $xₒₓ₀$ $xₓ₀₁$ - -$x⁰ⁱ⁺⁾ⁿ²$ $xⁱ⁺⁾ⁿ²$ $xⁿ²$ $x²ⁱ⁺⁾ⁿ$ - -$x₃₄²ⁱ⁺⁾ⁿ$ -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-alph-spaces.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-alph-spaces.ltx deleted file mode 100644 index 6fce64b0170..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-alph-spaces.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath} -\usepackage[math-style=ISO]{unicode-math} -\setmathfont{xits-math.otf} -\setmathfont[range=\mathit/{latin, greek, Greek}]{Asana-Math.otf} -\begin{document} -$abc$ $ABC$ -$\alpha\beta\gamma$ -$\Alpha\Beta\Gamma$ -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-arrow-accents.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-arrow-accents.ltx deleted file mode 100644 index cc06384349e..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-arrow-accents.ltx +++ /dev/null @@ -1,11 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\begin{document} -\setmathfont{XITS Math} -\[ \vec a \quad \vec{a} \quad \vec{abc} \quad -\overrightarrow{abc} \quad \underrightarrow{abc} \] - -\setmathfont{Cambria Math} -\[ \vec a \quad \vec{a} \quad \vec{abc} \quad -\overrightarrow{abc} \quad \underrightarrow{abc} \] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathstyle-french.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathstyle-french.ltx deleted file mode 100644 index 2eb0fe47e45..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathstyle-french.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[math-style=french]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINtext\] -\[\latintext\] -\[\LATINmath\] -\[\latinmath\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathstyle-iso.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathstyle-iso.ltx deleted file mode 100644 index ac4562f82a4..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathstyle-iso.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[math-style=ISO]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINtext\] -\[\latintext\] -\[\LATINmath\] -\[\latinmath\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathstyle-literal.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathstyle-literal.ltx deleted file mode 100644 index f1e18b59a53..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathstyle-literal.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[math-style=literal]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINtext\] -\[\latintext\] -\[\LATINmath\] -\[\latinmath\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathstyle-tex.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathstyle-tex.ltx deleted file mode 100644 index a77bb279136..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathstyle-tex.ltx +++ /dev/null @@ -1,10 +0,0 @@ - -\input{umtest-preamble} -\usepackage[math-style=TeX]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINtext\] -\[\latintext\] -\[\LATINmath\] -\[\latinmath\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathstyle-upright.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathstyle-upright.ltx deleted file mode 100644 index 97890262c8f..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathstyle-upright.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[math-style=upright]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINtext\] -\[\latintext\] -\[\LATINmath\] -\[\latinmath\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathversion.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathversion.ltx deleted file mode 100644 index 7fe40976ebe..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-mathversion.ltx +++ /dev/null @@ -1,13 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{xits-math.otf} -\setmathfont[version=bold,Colour=009900]{xits-math.otf} -\begin{document} -\[ -(x+y)^{{z+c}^{a+b}} -\] -\mathversion{bold} -\[ -(x+y)^{{z+c}^{a+b}} -\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-nolimits-spec.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-nolimits-spec.ltx deleted file mode 100644 index 23900115403..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-nolimits-spec.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{xits-math.otf} -\begin{document} -\[\iiint_V\] -\removenolimits\iiint -\[\iiint_V\] -\addnolimits\iiint -\[\iiint_V\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-over-under-2.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-over-under-2.ltx deleted file mode 100644 index f3cdfe89a3d..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-over-under-2.ltx +++ /dev/null @@ -1,17 +0,0 @@ - -% see http://github.com/wspr/unicode-math/issues/212 - -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont[Colour=FF0000]{xits-math.otf} -\setmathfont - [range={\mathop},Colour=0000FF] - {xits-math.otf} - -\begin{document} - -\[ \underbrace{\int x dx}_{xyz} -\qquad -\overbrace{\int x dx}^{xyz} \] - -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-over-under.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-over-under.ltx deleted file mode 100644 index 2d67a983321..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-over-under.ltx +++ /dev/null @@ -1,15 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{xits-math.otf} -\begin{document} -\[ -\overbrace{a+b+c+d}^{e/f/g/h} -\overbracket{a+b+c+d}^{e/f/g/h} -\overparen{a+b+c+d}^{e/f/g/h} -\] -\[ -\underbrace{a+b+c+d}_{e/f/g/h} -\underbracket{a+b+c+d}_{e/f/g/h} -\underparen{a+b+c+d}_{e/f/g/h} -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-pkg-url.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-pkg-url.ltx deleted file mode 100644 index 2d204d33794..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-pkg-url.ltx +++ /dev/null @@ -1,18 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmainfont{TeX Gyre Pagella} -\setsansfont{TeX Gyre Adventor} -\setmonofont{TeX Gyre Cursor} -\setmathfont{Cambria Math} -\usepackage{url} -\begin{document} -\centering\obeylines -\url{http://www.lmgtfy.com/} -\url{?q="~!@#$%^&*()<>`'} -\urlstyle{rm} -\url{http://www.lmgtfy.com/} -\url{?q="~!@#$%^&*()<>`'} -\urlstyle{sf} -\url{http://www.lmgtfy.com/} -\url{?q="~!@#$%^&*()<>`'} -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-primes-1.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-primes-1.ltx deleted file mode 100644 index a26791419ef..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-primes-1.ltx +++ /dev/null @@ -1,18 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath,unicode-math} -\setmathfont{Cambria Math} -\begin{document} - [${x\prime\prime\prime}$] - [${x\prime\prime\prime\prime\prime\prime}$] - [${x'}$] - [${x'''}$] - [${x''''''}$] - [${x′}$] - [${x′′′}$] - [${x′′'′\prime′}$] - - $x⁗‴″′$ - $x′″‴⁗$ - $x″′$ - $x‴$ -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-primes-2.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-primes-2.ltx deleted file mode 100644 index e246d34c021..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-primes-2.ltx +++ /dev/null @@ -1,23 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Asana Math} -\begin{document} -[$x_{x}'$] -[$x_{x}′$] -[$x_{x}\prime$] -[$x_{x}`$] -[$x_{x}\backprime$] - -[$x'_x$] -[$x′_x$] -[$x\prime_x$] -[$x`_x$] -[$x\backprime_x$] - -[$x_{x'}$] -[$x_{x′}$] -[$x_{x\prime}$] -[$x_{x`}$] -[$x_{x\backprime}$] - -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-primes-back.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-primes-back.ltx deleted file mode 100644 index 60298e39d60..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-primes-back.ltx +++ /dev/null @@ -1,18 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath,unicode-math} -\setmathfont{Asana Math} -\begin{document} - [${x\backprime\backprime\backprime}$] - [${x\backprime\backprime\backprime\backprime\backprime\backprime}$] - [${x`}$] - [${x```}$] - [${x``````}$] - [${x‵}$] - [${x‵‵‵}$] - [${x‵‵`‵\backprime‵}$] - - $x`‵‶‷$ - $x‷‶‵`$ - $x‶‵$ - $x‷$ -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-query-mathstyle.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-query-mathstyle.ltx deleted file mode 100644 index 6b61f8ae14c..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-query-mathstyle.ltx +++ /dev/null @@ -1,26 +0,0 @@ -\input{umtest-preamble} - -\usepackage{unicode-math} -\setmathfont[Colour=FF0000]{xits-math.otf} - -\begin{document} - -\ExplSyntaxOn -[$\l_um_mathstyle_tl$]\ -[$\mathrm{\l_um_mathstyle_tl}$]\ -[$\mathup{\l_um_mathstyle_tl}$]\ -[$\mathit{\l_um_mathstyle_tl}$] - -[$\mathbf{\l_um_mathstyle_tl}$]\ -[$\mathbfit{\l_um_mathstyle_tl}$]\ -[$\mathbfup{\l_um_mathstyle_tl}$] - -[$\mathsf{\l_um_mathstyle_tl}$]\ -[$\mathsfit{\l_um_mathstyle_tl}$]\ -[$\mathsfup{\l_um_mathstyle_tl}$] - -[$\mathbfsf{\l_um_mathstyle_tl}$]\ -[$\mathbfsfit{\l_um_mathstyle_tl}$]\ -[$\mathbfsfup{\l_um_mathstyle_tl}$] - -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-range-prime-check.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-range-prime-check.ltx deleted file mode 100644 index 3181d7b8f79..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-range-prime-check.ltx +++ /dev/null @@ -1,17 +0,0 @@ -% -% See http://github.com/wspr/unicode-math/issues/171 -% -% The fix is related to the fact that primes use the `mathactive' -% section of the unicode-math code, which is now controlled by -% the parsing range feature (as it always should have been). - -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont[Colour=FF0000]{xits-math.otf} -\setmathfont - [range=\mathop,Colour=0000FF] - {xits-math.otf} - -\begin{document} -\[ f(x) = \int f'(x) dx \] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-slash-delim-2.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-slash-delim-2.ltx deleted file mode 100644 index 179ae3ef968..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-slash-delim-2.ltx +++ /dev/null @@ -1,26 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\begin{document} -\newcommand\ARRAY[4]{% - \begin{array}{cc} - #1 & #2 \\ #3 & #4 - \end{array}} -\def\test{\[ - \left.\left[\ARRAY a b c d\right] - \middle\slash - \left[\ARRAY 1 1 1 {\mathsf 0}\right] - \right. \]} -\setmathfont - [slash-delimiter=frac]{Cambria Math} -\setmathfont - [range={\mathsfup}, - Color=0000FF] - {STIXGeneral} -\test -\setmathfont - [slash-delimiter=frac, - range="2044, - Color=FF0000] - {Cambria Math} -\test -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-sqrt-n.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-sqrt-n.ltx deleted file mode 100644 index 344df2ba222..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-sqrt-n.ltx +++ /dev/null @@ -1,6 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[ \sqrt[n]{1+\sqrt[n]{1+\sqrt[n]{1+\sqrt[n]{1+\sqrt[n]{1+x}}}}}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-sqrt.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-sqrt.ltx deleted file mode 100644 index 84d41dd7598..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-sqrt.ltx +++ /dev/null @@ -1,7 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[ \sqrt{\sin^{2}x+\cos^{2}x}=1 \] -\[ \sqrt{1+\sqrt{1+\sqrt{1+\sqrt{1+x}}}}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-sscript-features.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/F-sscript-features.ltx deleted file mode 100644 index 3db6e6547c6..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/F-sscript-features.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont[script-font = {Asana Math}, - script-features = {Style=MathScript,Colour=FF0000}, - sscript-font = {Cambria Math}, - sscript-features= {Style=MathScriptScript,Colour=0000FF}] - {XITS Math} -\begin{document} -\[123456789^{123456789^{123456789}}\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/L-sscale-dimen.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L-sscale-dimen.ltx deleted file mode 100644 index 1b872f322da..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/L-sscale-dimen.ltx +++ /dev/null @@ -1,12 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{XITS Math} -\begin{document} -$ $ \\ -\number \fontdimen 10 \textfont 0 \\ -\number \fontdimen 11 \textfont 0 \\ -\number \fontdimen 10 \scriptfont 0 \\ -\number \fontdimen 11 \scriptfont 0 \\ -\number \fontdimen 10 \scriptscriptfont 0 \\ -\number \fontdimen 11 \scriptscriptfont 0 -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/L600a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L600a.ltx deleted file mode 100644 index 2fe3853b0a6..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/L600a.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath} -\begin{document} -\[ -\sum_{\substack{a \\ bbb}} -\sum_{\substack{\dfrac12 \\ \vec A'}} -\sum_{\begin{subarray}{l} a \\ bbb \end{subarray}} -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/L600b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L600b.ltx deleted file mode 100644 index 2ba34f67e1f..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/L600b.ltx +++ /dev/null @@ -1,11 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[ -\sum_{\substack{a \\ bbb}} -\sum_{\substack{\dfrac12 \\ \vec A'}} -\sum_{\begin{subarray}{l} a \\ bbb \end{subarray}} -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/L600c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L600c.ltx deleted file mode 100644 index fcd692a0bbe..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/L600c.ltx +++ /dev/null @@ -1,11 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath} -\usepackage{unicode-math} -\setmathfont{Asana Math} -\begin{document} -\[ -\sum_{\substack{a \\ bbb}} -\sum_{\substack{\dfrac12 \\ \vec A'}} -\sum_{\begin{subarray}{l} a \\ bbb \end{subarray}} -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/L600f.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L600f.ltx deleted file mode 100644 index f98dfc61a3d..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/L600f.ltx +++ /dev/null @@ -1,11 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath} -\usepackage{unicode-math} -\setmathfont{XITS Math} -\begin{document} -\[ -\sum_{\substack{a \\ bbb}} -\sum_{\substack{\dfrac12 \\ \vec A'}} -\sum_{\begin{subarray}{l} a \\ bbb \end{subarray}} -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/L601a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L601a.ltx deleted file mode 100644 index d7dbf3c5f6d..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/L601a.ltx +++ /dev/null @@ -1,26 +0,0 @@ -\input{umtest-preamble} -\usepackage{mathtools} -\begin{document} -\[ -\frac{a^2 + b^2}{a^2 + b^2} -\frac{\cramped{a^2 + b^2}}{a^2 + b^2} -\frac{a^2 + b^2}{\cramped{a^2 + b^2}} -\] -\( -\frac{a^2 + b^2}{a^2 + b^2} -\frac{\cramped{a^2 + b^2}}{a^2 + b^2} -\frac{a^2 + b^2}{\cramped{a^2 + b^2}} -a^{ - \frac{a^2 + b^2}{a^2 + b^2} - \frac{\cramped{a^2 + b^2}}{a^2 + b^2} - \frac{a^2 + b^2}{\cramped{a^2 + b^2}} -} -a^{ - a^{ - \frac{a^2 + b^2}{a^2 + b^2} - \frac{\cramped{a^2 + b^2}}{a^2 + b^2} - \frac{a^2 + b^2}{\cramped{a^2 + b^2}} - } -} -\) -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/L601b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L601b.ltx deleted file mode 100644 index 2d4983a8c59..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/L601b.ltx +++ /dev/null @@ -1,28 +0,0 @@ -\input{umtest-preamble} -\usepackage{mathtools} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[ -\frac{a^2 + b^2}{a^2 + b^2} -\frac{\cramped{a^2 + b^2}}{a^2 + b^2} -\frac{a^2 + b^2}{\cramped{a^2 + b^2}} -\] -\( -\frac{a^2 + b^2}{a^2 + b^2} -\frac{\cramped{a^2 + b^2}}{a^2 + b^2} -\frac{a^2 + b^2}{\cramped{a^2 + b^2}} -a^{ - \frac{a^2 + b^2}{a^2 + b^2} - \frac{\cramped{a^2 + b^2}}{a^2 + b^2} - \frac{a^2 + b^2}{\cramped{a^2 + b^2}} -} -a^{ - a^{ - \frac{a^2 + b^2}{a^2 + b^2} - \frac{\cramped{a^2 + b^2}}{a^2 + b^2} - \frac{a^2 + b^2}{\cramped{a^2 + b^2}} - } -} -\) -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/L601f.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L601f.ltx deleted file mode 100644 index 4ecb9853cf1..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/L601f.ltx +++ /dev/null @@ -1,28 +0,0 @@ -\input{umtest-preamble} -\usepackage{mathtools} -\usepackage{unicode-math} -\setmathfont{XITS Math} -\begin{document} -\[ -\frac{a^2 + b^2}{a^2 + b^2} -\frac{\cramped{a^2 + b^2}}{a^2 + b^2} -\frac{a^2 + b^2}{\cramped{a^2 + b^2}} -\] -\( -\frac{a^2 + b^2}{a^2 + b^2} -\frac{\cramped{a^2 + b^2}}{a^2 + b^2} -\frac{a^2 + b^2}{\cramped{a^2 + b^2}} -a^{ - \frac{a^2 + b^2}{a^2 + b^2} - \frac{\cramped{a^2 + b^2}}{a^2 + b^2} - \frac{a^2 + b^2}{\cramped{a^2 + b^2}} -} -a^{ - a^{ - \frac{a^2 + b^2}{a^2 + b^2} - \frac{\cramped{a^2 + b^2}}{a^2 + b^2} - \frac{a^2 + b^2}{\cramped{a^2 + b^2}} - } -} -\) -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/L602b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L602b.ltx deleted file mode 100644 index ce99258e075..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/L602b.ltx +++ /dev/null @@ -1,36 +0,0 @@ -\input{umtest-preamble} - -\usepackage{unicode-math} - -\setmathfont{xits-math.otf} - -\ExplSyntaxOn - -\NewDocumentCommand \mathstylename { } { - \mathtt { - \prg_case_int:nnn { \luatexmathstyle } { - { \displaystyle } { \token_to_str:N \displaystyle } - { \luatexcrampeddisplaystyle } { \token_to_str:N \crampeddisplaystyle } - { \textstyle } { \token_to_str:N \textstyle } - { \luatexcrampedtextstyle } { \token_to_str:N \crampedtextstyle } - { \scriptstyle } { \token_to_str:N \scriptstyle } - { \luatexcrampedscriptstyle } { \token_to_str:N \crampedscriptstyle } - { \scriptscriptstyle } { \token_to_str:N \scriptscriptstyle } - { \luatexcrampedscriptscriptstyle } { \token_to_str:N \crampedscriptscriptstyle } - } { - outside math - } - } -} - -\ExplSyntaxOff - -\begin{document} - -$\mathstylename \over \mathstylename$ - -$\luatexUstack{\mathstylename \over \mathstylename}$ - -$\frac{\mathstylename}{\mathstylename}$ - -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/L603b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L603b.ltx deleted file mode 100644 index 9b53e908fcf..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/L603b.ltx +++ /dev/null @@ -1,45 +0,0 @@ -\input{umtest-preamble} - -\usepackage{amsmath} -\usepackage{unicode-math} - -\setmathfont{xits-math.otf} - -\ExplSyntaxOn - -\NewDocumentCommand \mathstylename { } { - \mathtt { - \prg_case_int:nnn { \luatexmathstyle } { - { \displaystyle } { \token_to_str:N \displaystyle } - { \luatexcrampeddisplaystyle } { \token_to_str:N \crampeddisplaystyle } - { \textstyle } { \token_to_str:N \textstyle } - { \luatexcrampedtextstyle } { \token_to_str:N \crampedtextstyle } - { \scriptstyle } { \token_to_str:N \scriptstyle } - { \luatexcrampedscriptstyle } { \token_to_str:N \crampedscriptstyle } - { \scriptscriptstyle } { \token_to_str:N \scriptscriptstyle } - { \luatexcrampedscriptscriptstyle } { \token_to_str:N \crampedscriptscriptstyle } - } { - outside math - } - } -} - -\ExplSyntaxOff - -\begin{document} - -$\mathstylename \over \mathstylename$ - -$\luatexUstack{\mathstylename \over \mathstylename}$ - -$\frac{\mathstylename}{\mathstylename}$ - -$\dfrac{\mathstylename}{\mathstylename}$ - -$\tfrac{\mathstylename}{\mathstylename}$ - -$\binom{\mathstylename}{\mathstylename}$ - -$\genfrac{/}{)}{}{}{\mathstylename}{\mathstylename}$ - -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/L604a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L604a.ltx deleted file mode 100644 index c43706cc298..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/L604a.ltx +++ /dev/null @@ -1,13 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath} -\usepackage{graphicx} -\newcommand*{\test}[1]{% - \parbox[b][50pt]{50pt}{\scalebox{3}{$#1$}}% -} -\begin{document} -\test{\sqrt[a]{b}} -\test{\sqrt[\uproot{10}a]{b}} - -\test{\sqrt[\leftroot{10}a]{b}} -\test{\sqrt[\leftroot{10}\uproot{10}a]{b}} -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/L604b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L604b.ltx deleted file mode 100644 index 235d51c6354..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/L604b.ltx +++ /dev/null @@ -1,15 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\usepackage{amsmath} -\usepackage{graphicx} -\setmathfont{Cambria Math} -\newcommand*{\test}[1]{% - \parbox[b][50pt]{50pt}{\scalebox{3}{$#1$}}% -} -\begin{document} -\test{\sqrt[a]{b}} -\test{\sqrt[\uproot{10}a]{b}} - -\test{\sqrt[\leftroot{10}a]{b}} -\test{\sqrt[\leftroot{10}\uproot{10}a]{b}} -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/L650a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L650a.ltx deleted file mode 100644 index abaae93629a..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/L650a.ltx +++ /dev/null @@ -1,12 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\usepackage{mathtools} -\setmathfont{Cambria Math} -\begin{document} -\[ -\coloneq -\coloneqq -\eqcolon -\eqqcolon -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/L650b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/L650b.ltx deleted file mode 100644 index 4bda71a40f0..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/L650b.ltx +++ /dev/null @@ -1,12 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\usepackage{colonequals} -\setmathfont{Cambria Math} -\begin{document} -\[ -\coloneq -\colonequals -\eqcolon -\equalscolon -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X002a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X002a.ltx deleted file mode 100644 index a63656c7b0a..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X002a.ltx +++ /dev/null @@ -1,10 +0,0 @@ - -\input{umtest-preamble} -\usepackage[math-style=TeX]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\GREEKtext\] -\[\greektext\] -\[\GREEKmath\] -\[\greekmath\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X002b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X002b.ltx deleted file mode 100644 index de6f5474073..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X002b.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[math-style=ISO]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\GREEKtext\] -\[\greektext\] -\[\GREEKmath\] -\[\greekmath\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X002c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X002c.ltx deleted file mode 100644 index 0239bace484..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X002c.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[math-style=literal]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\GREEKtext\] -\[\greektext\] -\[\GREEKmath\] -\[\greekmath\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X002d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X002d.ltx deleted file mode 100644 index 4ec5baf1857..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X002d.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[math-style=french]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\GREEKtext\] -\[\greektext\] -\[\GREEKmath\] -\[\greekmath\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X002e.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X002e.ltx deleted file mode 100644 index dfa269c4b29..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X002e.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[math-style=upright]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\GREEKtext\] -\[\greektext\] -\[\GREEKmath\] -\[\greekmath\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003a.ltx deleted file mode 100644 index c41463fee4e..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003a.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[bold-style=TeX]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINmathbfup\] -\[\LATINmathbfit\] -\[\latinmathbfup\] -\[\latinmathbfit\] -\[\numbersmathbfup\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003b.ltx deleted file mode 100644 index a0c1a095c0c..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003b.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[bold-style=TeX]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\GREEKmathbfup\] -\[\GREEKmathbfit\] -\[\greekmathbfup\] -\[\greekmathbfit\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003c.ltx deleted file mode 100644 index 06d6140e8e0..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003c.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[bold-style=TeX]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbf\LATINmath\] -\[\mathbf\LATINtext\] -\[\mathbf\latinmath\] -\[\mathbf\latintext\] -\[\mathbf{0123456789}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003d.ltx deleted file mode 100644 index 3617f29eb56..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003d.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[bold-style=TeX]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbf\GREEKmath\] -\[\mathbf\GREEKtext\] -\[\mathbf\greekmath\] -\[\mathbf\greektext\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003e.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003e.ltx deleted file mode 100644 index 683344f4d8f..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003e.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[bold-style=ISO]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINmathbfup\] -\[\LATINmathbfit\] -\[\latinmathbfup\] -\[\latinmathbfit\] -\[\numbersmathbfup\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003f.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003f.ltx deleted file mode 100644 index c9b7566c16a..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003f.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[bold-style=ISO]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\GREEKmathbfup\] -\[\GREEKmathbfit\] -\[\greekmathbfup\] -\[\greekmathbfit\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003g.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003g.ltx deleted file mode 100644 index 93508517c86..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003g.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[bold-style=ISO]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbf\LATINmath\] -\[\mathbf\LATINtext\] -\[\mathbf\latinmath\] -\[\mathbf\latintext\] -\[\mathbf{0123456789}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003h.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003h.ltx deleted file mode 100644 index 85293b2b647..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003h.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[bold-style=ISO]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbf\GREEKmath\] -\[\mathbf\GREEKtext\] -\[\mathbf\greekmath\] -\[\mathbf\greektext\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003i.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003i.ltx deleted file mode 100644 index 531c9ae9482..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003i.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[bold-style=upright]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINmathbfup\] -\[\LATINmathbfit\] -\[\latinmathbfup\] -\[\latinmathbfit\] -\[\numbersmathbfup\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003j.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003j.ltx deleted file mode 100644 index 101a5bd6125..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003j.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[bold-style=upright]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\GREEKmathbfup\] -\[\GREEKmathbfit\] -\[\greekmathbfup\] -\[\greekmathbfit\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003k.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003k.ltx deleted file mode 100644 index a8820f96cd4..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003k.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[bold-style=upright]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbf\LATINmath\] -\[\mathbf\LATINtext\] -\[\mathbf\latinmath\] -\[\mathbf\latintext\] -\[\mathbf{0123456789}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003l.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003l.ltx deleted file mode 100644 index 816465b3262..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003l.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[bold-style=upright]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbf\GREEKmath\] -\[\mathbf\GREEKtext\] -\[\mathbf\greekmath\] -\[\mathbf\greektext\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003m.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003m.ltx deleted file mode 100644 index 0b53338cbc4..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003m.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[bold-style=literal]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINmathbfup\] -\[\LATINmathbfit\] -\[\latinmathbfup\] -\[\latinmathbfit\] -\[\numbersmathbfup\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003n.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003n.ltx deleted file mode 100644 index b846b3efea2..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003n.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[bold-style=literal]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\GREEKmathbfup\] -\[\GREEKmathbfit\] -\[\greekmathbfup\] -\[\greekmathbfit\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003o.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003o.ltx deleted file mode 100644 index f66c7a1942f..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003o.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[bold-style=literal]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbf\LATINmath\] -\[\mathbf\LATINtext\] -\[\mathbf\latinmath\] -\[\mathbf\latintext\] -\[\mathbf{0123456789}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003p.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X003p.ltx deleted file mode 100644 index 0758e53180d..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X003p.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[bold-style=literal]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbf\GREEKmath\] -\[\mathbf\GREEKtext\] -\[\mathbf\greekmath\] -\[\mathbf\greektext\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X004a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004a.ltx deleted file mode 100644 index e52a7177c3b..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X004a.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=upright]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINmathsfup\] -\[\LATINmathsfit\] -\[\latinmathsfup\] -\[\latinmathsfit\] -\[\numbersmathsfup\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X004b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004b.ltx deleted file mode 100644 index 4e058413011..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X004b.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=upright]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathsf{\LATINtext}\] -\[\mathsf{\LATINmath}\] -\[\mathsf{\latintext}\] -\[\mathsf{\latinmath}\] -\[\mathsf{0123456789}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X004c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004c.ltx deleted file mode 100644 index 9a24fb9b2f9..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X004c.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=italic]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINmathsfup\] -\[\LATINmathsfit\] -\[\latinmathsfup\] -\[\latinmathsfit\] -\[\numbersmathsfup\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X004d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004d.ltx deleted file mode 100644 index 5e59de81eee..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X004d.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=italic]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathsf{\LATINtext}\] -\[\mathsf{\LATINmath}\] -\[\mathsf{\latintext}\] -\[\mathsf{\latinmath}\] -\[\mathsf{0123456789}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X004e.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004e.ltx deleted file mode 100644 index 14fd11049b1..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X004e.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=literal]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINmathsfup\] -\[\LATINmathsfit\] -\[\latinmathsfup\] -\[\latinmathsfit\] -\[\numbersmathsfup\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X004f.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X004f.ltx deleted file mode 100644 index e5de3fc8686..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X004f.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=literal]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathsf{\LATINtext}\] -\[\mathsf{\LATINmath}\] -\[\mathsf{\latintext}\] -\[\mathsf{\latinmath}\] -\[\mathsf{0123456789}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005a.ltx deleted file mode 100644 index 3b5b0ce2988..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005a.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=upright]{unicode-math} -\setmathfont{Code2001} -\begin{document} -\[\LATINmathbfsfup\] -\[\LATINmathbfsfit\] -\[\latinmathbfsfup\] -\[\latinmathbfsfit\] -\[\numbersmathbfsfup\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005b.ltx deleted file mode 100644 index 0f57b4a516d..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005b.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=upright]{unicode-math} -\setmathfont{Code2001} -\begin{document} -\[\GREEKmathbfsfup\] -\[\GREEKmathbfsfit\] -\[\greekmathbfsfup\] -\[\greekmathbfsfit\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005c.ltx deleted file mode 100644 index 3ed6a2c7ce2..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005c.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=upright]{unicode-math} -\setmathfont{Code2001} -\begin{document} -\[\mathbfsf\LATINmath\] -\[\mathbfsf\LATINtext\] -\[\mathbfsf\latinmath\] -\[\mathbfsf\latintext\] -\[\mathbfsf{0123456789}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005d.ltx deleted file mode 100644 index 784b40f67f7..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005d.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=upright]{unicode-math} -\setmathfont{Code2001} -\begin{document} -\[\mathbfsf\GREEKmath\] -\[\mathbfsf\GREEKtext\] -\[\mathbfsf\greekmath\] -\[\mathbfsf\greektext\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005e.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005e.ltx deleted file mode 100644 index 01c3f606b45..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005e.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=italic]{unicode-math} -\setmathfont{Code2001} -\begin{document} -\[\LATINmathbfsfup\] -\[\LATINmathbfsfit\] -\[\latinmathbfsfup\] -\[\latinmathbfsfit\] -\[\numbersmathbfsfup\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005f.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005f.ltx deleted file mode 100644 index 292e7c35bc0..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005f.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=italic]{unicode-math} -\setmathfont{Code2001} -\begin{document} -\[\GREEKmathbfsfup\] -\[\GREEKmathbfsfit\] -\[\greekmathbfsfup\] -\[\greekmathbfsfit\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005g.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005g.ltx deleted file mode 100644 index 4fa9b07891e..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005g.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=italic]{unicode-math} -\setmathfont{Code2001} -\begin{document} -\[\mathbfsf\LATINmath\] -\[\mathbfsf\LATINtext\] -\[\mathbfsf\latinmath\] -\[\mathbfsf\latintext\] -\[\mathbfsf{0123456789}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005h.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005h.ltx deleted file mode 100644 index 08fef7aae97..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005h.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=italic]{unicode-math} -\setmathfont{Code2001} -\begin{document} -\[\mathbfsf\GREEKmath\] -\[\mathbfsf\GREEKtext\] -\[\mathbfsf\greekmath\] -\[\mathbfsf\greektext\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005i.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005i.ltx deleted file mode 100644 index 95d871566bb..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005i.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=literal]{unicode-math} -\setmathfont{Code2001} -\begin{document} -\[\LATINmathbfsfup\] -\[\LATINmathbfsfit\] -\[\latinmathbfsfup\] -\[\latinmathbfsfit\] -\[\numbersmathbfsfup\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005j.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005j.ltx deleted file mode 100644 index 2ac0f34ce13..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005j.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=literal]{unicode-math} -\setmathfont{Code2001} -\begin{document} -\[\GREEKmathbfsfup\] -\[\GREEKmathbfsfit\] -\[\greekmathbfsfup\] -\[\greekmathbfsfit\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005k.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005k.ltx deleted file mode 100644 index a6912432c61..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005k.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=literal]{unicode-math} -\setmathfont{Code2001} -\begin{document} -\[\mathbfsf\LATINmath\] -\[\mathbfsf\LATINtext\] -\[\mathbfsf\latinmath\] -\[\mathbfsf\latintext\] -\[\mathbfsf{0123456789}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005l.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X005l.ltx deleted file mode 100644 index 0d80cab5a5e..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X005l.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage[sans-style=literal]{unicode-math} -\setmathfont{Code2001} -\begin{document} -\[\mathbfsf\GREEKmath\] -\[\mathbfsf\GREEKtext\] -\[\mathbfsf\greekmath\] -\[\mathbfsf\greektext\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X010a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X010a.ltx deleted file mode 100644 index 2b1c9d94450..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X010a.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathscr{\LATINtext}\] -\[\mathscr{\latintext}\] -\[\mathscr{\LATINmath}\] -\[\mathscr{\latinmath}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X010b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X010b.ltx deleted file mode 100644 index 361ca0bf993..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X010b.ltx +++ /dev/null @@ -1,8 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINmathscr\] -\[\latinmathscr\] -\[\reservedmathscr\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X010c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X010c.ltx deleted file mode 100644 index 7d188361a91..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X010c.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathfrak{\LATINtext}\] -\[\mathfrak{\latintext}\] -\[\mathfrak{\LATINmath}\] -\[\mathfrak{\latinmath}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X010d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X010d.ltx deleted file mode 100644 index 51206a6caf5..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X010d.ltx +++ /dev/null @@ -1,8 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINmathfrak\] -\[\latinmathfrak\] -\[\reservedmathfrak\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X011a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X011a.ltx deleted file mode 100644 index 79ae950c0b6..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X011a.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathup{\LATINtext}\] -\[\mathup{\latintext}\] -\[\mathup{\LATINmath}\] -\[\mathup{\latinmath}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X011b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X011b.ltx deleted file mode 100644 index cfc5b7ba7ab..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X011b.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathup{\GREEKtext}\] -\[\mathup{\greektext}\] -\[\mathup{\GREEKmath}\] -\[\mathup{\greekmath}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X012a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X012a.ltx deleted file mode 100644 index 06c6bc26202..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X012a.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathit{\LATINtext}\] -\[\mathit{\latintext}\] -\[\mathit{\LATINmath}\] -\[\mathit{\latinmath}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X012b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X012b.ltx deleted file mode 100644 index 845a3211b6a..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X012b.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathit{\GREEKtext}\] -\[\mathit{\greektext}\] -\[\mathit{\GREEKmath}\] -\[\mathit{\greekmath}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X013a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X013a.ltx deleted file mode 100644 index 0192f10d062..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X013a.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbb{\LATINtext}\] -\[\mathbb{\latintext}\] -\[\mathbb{\LATINmath}\] -\[\mathbb{\latinmath}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X013b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X013b.ltx deleted file mode 100644 index 3c65d345ade..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X013b.ltx +++ /dev/null @@ -1,7 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbb{0123456789}\] -\[\numbersmathbb\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X013c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X013c.ltx deleted file mode 100644 index 415af4ec8bd..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X013c.ltx +++ /dev/null @@ -1,8 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINmathbb\] -\[\latinmathbb\] -\[\reservedmathbb\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X013d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X013d.ltx deleted file mode 100644 index a00cf42d01b..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X013d.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{STIXGeneral} -\begin{document} -\[ \mathbb{πΠγΓ} \qquad \mathbb{𝜋𝛱𝛾𝛤} \] -\[ \mathbb{\sum}_0^1 \] -\[ \mathbb{∑}_0^1 \] -\[ \Bbbsum_0^1 \] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X013e.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X013e.ltx deleted file mode 100644 index f6ceed8dc86..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X013e.ltx +++ /dev/null @@ -1,6 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbbit{Ddeij}\qquad\mathbbit{𝐷𝑑𝑒𝑖𝑗}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X014a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X014a.ltx deleted file mode 100644 index fc6f553987c..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X014a.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathsfup{\LATINtext}\] -\[\mathsfup{\latintext}\] -\[\mathsfup{\LATINmath}\] -\[\mathsfup{\latinmath}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X014b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X014b.ltx deleted file mode 100644 index 4149fc57e12..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X014b.ltx +++ /dev/null @@ -1,7 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathsfup{0123456789}\] -\[\numbersmathsfup\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X014c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X014c.ltx deleted file mode 100644 index ba6189e418b..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X014c.ltx +++ /dev/null @@ -1,7 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINmathsfup\] -\[\latinmathsfup\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X015a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X015a.ltx deleted file mode 100644 index f973d4f3a34..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X015a.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathsfit{\LATINtext}\] -\[\mathsfit{\latintext}\] -\[\mathsfit{\LATINmath}\] -\[\mathsfit{\latinmath}\] -\[\mathsfit{0123456789}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X015b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X015b.ltx deleted file mode 100644 index 5e3c2b63211..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X015b.ltx +++ /dev/null @@ -1,7 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINmathsfit\] -\[\latinmathsfit\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X016a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X016a.ltx deleted file mode 100644 index 29aa54e5c2d..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X016a.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Asana-Math.otf} -\begin{document} -\[\mathtt{\LATINtext}\] -\[\mathtt{\latintext}\] -\[\mathtt{\LATINmath}\] -\[\mathtt{\latinmath}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X016b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X016b.ltx deleted file mode 100644 index 9a06c7718b0..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X016b.ltx +++ /dev/null @@ -1,7 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Asana-Math.otf} -\begin{document} -\[\mathtt{0123456789}\] -\[\numbersmathtt\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X016c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X016c.ltx deleted file mode 100644 index 496b033b10c..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X016c.ltx +++ /dev/null @@ -1,7 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Asana-Math.otf} -\begin{document} -\[\LATINmathtt\] -\[\latinmathtt\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X017a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X017a.ltx deleted file mode 100644 index 6802a577503..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X017a.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbfscr{\LATINtext}\] -\[\mathbfscr{\latintext}\] -\[\mathbfscr{\LATINmath}\] -\[\mathbfscr{\latinmath}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X017b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X017b.ltx deleted file mode 100644 index 7f86f0b89b9..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X017b.ltx +++ /dev/null @@ -1,7 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINmathbfscr\] -\[\latinmathbfscr\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X017c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X017c.ltx deleted file mode 100644 index 979c07d7a59..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X017c.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbffrak{\LATINtext}\] -\[\mathbffrak{\latintext}\] -\[\mathbffrak{\LATINmath}\] -\[\mathbffrak{\latinmath}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X017d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X017d.ltx deleted file mode 100644 index ad8f3741270..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X017d.ltx +++ /dev/null @@ -1,7 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\LATINmathbffrak\] -\[\latinmathbffrak\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X018a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X018a.ltx deleted file mode 100644 index 54da5dfe0e8..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X018a.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbfup{\LATINtext}\] -\[\mathbfup{\latintext}\] -\[\mathbfup{\LATINmath}\] -\[\mathbfup{\latinmath}\] -\[\mathbfup{0123456789}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X018b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X018b.ltx deleted file mode 100644 index 177e9b3fd91..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X018b.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbfup{\GREEKtext}\] -\[\mathbfup{\greektext}\] -\[\mathbfup{\GREEKmath}\] -\[\mathbfup{\greekmath}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X019a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X019a.ltx deleted file mode 100644 index b41e0d188be..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X019a.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbfit{\LATINtext}\] -\[\mathbfit{\latintext}\] -\[\mathbfit{\LATINmath}\] -\[\mathbfit{\latinmath}\] -\[\mathbfit{0123456789}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X019b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X019b.ltx deleted file mode 100644 index 77ef28dd8aa..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X019b.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbfit{\GREEKtext}\] -\[\mathbfit{\greektext}\] -\[\mathbfit{\GREEKmath}\] -\[\mathbfit{\greekmath}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X020a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X020a.ltx deleted file mode 100644 index 6e5f4fc09bb..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X020a.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbfsfit{\LATINtext}\] -\[\mathbfsfit{\latintext}\] -\[\mathbfsfit{\LATINmath}\] -\[\mathbfsfit{\latinmath}\] -\[\mathbfsfit{0123456789}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X020b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X020b.ltx deleted file mode 100644 index 1af7bda0bb7..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X020b.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{STIXGeneral-Bold} -\begin{document} -\[\mathbfsfup{\GREEKtext}\] -\[\mathbfsfup{\greektext}\] -\[\mathbfsfup{\GREEKmath}\] -\[\mathbfsfup{\greekmath}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X021a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X021a.ltx deleted file mode 100644 index 6e5f4fc09bb..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X021a.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[\mathbfsfit{\LATINtext}\] -\[\mathbfsfit{\latintext}\] -\[\mathbfsfit{\LATINmath}\] -\[\mathbfsfit{\latinmath}\] -\[\mathbfsfit{0123456789}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X021b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X021b.ltx deleted file mode 100644 index 5df9b942084..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X021b.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{STIXGeneral-BoldItalic} -\begin{document} -\[\mathbfsfit{\GREEKtext}\] -\[\mathbfsfit{\greektext}\] -\[\mathbfsfit{\GREEKmath}\] -\[\mathbfsfit{\greekmath}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X030a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X030a.ltx deleted file mode 100644 index e2235a6e08c..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X030a.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{FreeSerif} -\begin{document} -\[Ϝϝ\] -\[𝟊𝟋\] -\[\mathup{Ϝϝ}\] -\[\mathbf{Ϝϝ}\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X031a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X031a.ltx deleted file mode 100644 index 6ec91773f00..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X031a.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[nabla=upright] {unicode-math} -\setmathfont{Free Serif} -\begin{document} -\[∇𝛻 \quad 𝛁𝜵 \quad 𝝯𝞩\] -\[∇𝛻 \quad \mathbf{∇𝛻} \quad \mathbfsf{∇𝛻}\] -\[\mathup{∇𝛻} \quad \mathit{∇𝛻}\] -\[\mathbfup{∇𝛻} \quad \mathbfit{∇𝛻}\] -\[\mathbfsfup{∇𝛻} \quad \mathbfsfit{∇𝛻}\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X031b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X031b.ltx deleted file mode 100644 index b195695b08e..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X031b.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[nabla=italic] {unicode-math} -\setmathfont{Free Serif} -\begin{document} -\[∇𝛻 \quad 𝛁𝜵 \quad 𝝯𝞩\] -\[∇𝛻 \quad \mathbf{∇𝛻} \quad \mathbfsf{∇𝛻}\] -\[\mathup{∇𝛻} \quad \mathit{∇𝛻}\] -\[\mathbfup{∇𝛻} \quad \mathbfit{∇𝛻}\] -\[\mathbfsfup{∇𝛻} \quad \mathbfsfit{∇𝛻}\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X031c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X031c.ltx deleted file mode 100644 index 9807a182d11..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X031c.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[nabla=literal] {unicode-math} -\setmathfont{Free Serif} -\begin{document} -\[∇𝛻 \quad 𝛁𝜵 \quad 𝝯𝞩\] -\[∇𝛻 \quad \mathbf{∇𝛻} \quad \mathbfsf{∇𝛻}\] -\[\mathup{∇𝛻} \quad \mathit{∇𝛻}\] -\[\mathbfup{∇𝛻} \quad \mathbfit{∇𝛻}\] -\[\mathbfsfup{∇𝛻} \quad \mathbfsfit{∇𝛻}\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X032a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X032a.ltx deleted file mode 100644 index b3b4baa80c8..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X032a.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[partial=upright]{unicode-math} -\setmathfont{Code2001} -\begin{document} -\[∂𝜕 \quad 𝛛𝝏 \quad 𝞉𝟃\] -\[∂𝜕 \quad \mathbf{∂𝜕} \quad \mathbfsf{∂𝜕}\] -\[\mathup{∂𝜕} \quad \mathit{∂𝜕}\] -\[\mathbfup{∂𝜕} \quad \mathbfit{∂𝜕}\] -\[\mathbfsfup{∂𝜕} \quad \mathbfsfit{∂𝜕}\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X032b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X032b.ltx deleted file mode 100644 index 4b85ab581a0..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X032b.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[partial=italic]{unicode-math} -\setmathfont{Code2001} -\begin{document} -\[∂𝜕 \quad 𝛛𝝏 \quad 𝞉𝟃\] -\[∂𝜕 \quad \mathbf{∂𝜕} \quad \mathbfsf{∂𝜕}\] -\[\mathup{∂𝜕} \quad \mathit{∂𝜕}\] -\[\mathbfup{∂𝜕} \quad \mathbfit{∂𝜕}\] -\[\mathbfsfup{∂𝜕} \quad \mathbfsfit{∂𝜕}\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X032c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X032c.ltx deleted file mode 100644 index 365edcb9f62..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X032c.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage[partial=literal]{unicode-math} -\setmathfont{Code2001} -\begin{document} -\[∂𝜕 \quad 𝛛𝝏 \quad 𝞉𝟃\] -\[∂𝜕 \quad \mathbf{∂𝜕} \quad \mathbfsf{∂𝜕}\] -\[\mathup{∂𝜕} \quad \mathit{∂𝜕}\] -\[\mathbfup{∂𝜕} \quad \mathbfit{∂𝜕}\] -\[\mathbfsfup{∂𝜕} \quad \mathbfsfit{∂𝜕}\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X033a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X033a.ltx deleted file mode 100644 index 7bc54cf0655..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X033a.ltx +++ /dev/null @@ -1,12 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\begin{document} -\setmathfont[math-style=TeX]{Free Serif} -\[ıȷ\quad 𝚤𝚥\] -\[\mathup{ıȷ}\quad \mathup{𝚤𝚥}\] -\[\mathit{ıȷ}\quad \mathit{𝚤𝚥}\] -\setmathfont[math-style=upright]{Free Serif} -\[ıȷ\quad 𝚤𝚥\] -\[\mathup{ıȷ}\quad \mathup{𝚤𝚥}\] -\[\mathit{ıȷ}\quad \mathit{𝚤𝚥}\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X100a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X100a.ltx deleted file mode 100644 index 02d67fa4ea5..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X100a.ltx +++ /dev/null @@ -1,7 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[ \left( \left( \left( \left( \left( \left( x^2 - \right)^2 \right)^2 \right)^2 \right)^2 \right)^2 \right) \] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X100b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X100b.ltx deleted file mode 100644 index 7c2fc729287..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X100b.ltx +++ /dev/null @@ -1,7 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[ \left[ \left[ \left[ \left[ \left[ \left[ x^2 - \right]^2 \right]^2 \right]^2 \right]^2 \right]^2 \right] \] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X100c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X100c.ltx deleted file mode 100644 index 4f0963a13d9..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X100c.ltx +++ /dev/null @@ -1,7 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[ \left\{ \left\{ \left\{ \left\{ \left\{ \left\{ x^2 - \right\}^2 \right\}^2 \right\}^2 \right\}^2 \right\}^2 \right\} \] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X100d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X100d.ltx deleted file mode 100644 index fc776937285..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X100d.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[ \left| \left| \left| \left| \left| \left| x^2 - \right|^2 \right|^2 \right|^2 \right|^2 \right|^2 \right| \] - -\[ \left\vert \left\vert \left\vert \left\vert \left\vert \left\vert x^2 - \right\vert^2 \right\vert^2 \right\vert^2 \right\vert^2 \right\vert^2 \right\vert \] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X100e.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X100e.ltx deleted file mode 100644 index 471d165b962..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X100e.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[ \left‖ \left‖ \left‖ \left‖ \left‖ \left‖ x^2 - \right‖^2 \right‖^2 \right‖^2 \right‖^2 \right‖^2 \right‖ \] - -\[ \left\Vert \left\Vert \left\Vert \left\Vert \left\Vert \left\Vert x^2 - \right\Vert^2 \right\Vert^2 \right\Vert^2 \right\Vert^2 \right\Vert^2 \right\Vert \] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X101a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X101a.ltx deleted file mode 100644 index 499f862d74e..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X101a.ltx +++ /dev/null @@ -1,8 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[ a>b \quad c<d \] -\[ \left< \left< \left< \left< x \right>^2 - \right>^2 \right>^2 \right>^2 \] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X102a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X102a.ltx deleted file mode 100644 index eda889561eb..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X102a.ltx +++ /dev/null @@ -1,13 +0,0 @@ -\input{umtest-preamble} -\usepackage[slash-delimiter=frac]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[ \left.\left[\begin{array}{cc} - a & b \\ c & d - \end{array}\right] - \middle/ - \left[\begin{array}{cc} - 1 & 1 \\ 1 & 0 - \end{array}\right]\right. -\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X150a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X150a.ltx deleted file mode 100644 index 0cb4b301d3d..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X150a.ltx +++ /dev/null @@ -1,7 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath,unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\centerline{$\int\quad\idotsint$} -\[\int\quad\idotsint\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X151a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X151a.ltx deleted file mode 100644 index fc8c46ddd91..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X151a.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[ \hat i \qquad \hat x \qquad \hat M \qquad \hat {x+y} \] -\[ \widehat i \qquad \widehat x \qquad \widehat M \qquad \widehat {x+y} \] -\[ \tilde i \qquad \tilde x \qquad \tilde M \qquad \tilde {x+y} \] -\[ \widetilde i \qquad \widetilde x \qquad \widetilde M \qquad \widetilde {x+y} \] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X202a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X202a.ltx deleted file mode 100644 index b6dc986f62b..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X202a.ltx +++ /dev/null @@ -1,7 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[a\colon b\qquad a: b - \qquad a^^^^2236 b\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X202b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X202b.ltx deleted file mode 100644 index c4f159a85f4..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X202b.ltx +++ /dev/null @@ -1,7 +0,0 @@ -\input{umtest-preamble} -\usepackage[colon=literal]{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[a\colon b\qquad a: b - \qquad a^^^^2236 b\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X203a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X203a.ltx deleted file mode 100644 index caa793930e7..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X203a.ltx +++ /dev/null @@ -1,7 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[a-b\] -\[a\minus b\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X206a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X206a.ltx deleted file mode 100644 index 08de9dee0aa..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X206a.ltx +++ /dev/null @@ -1,8 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[A+B+\dots+Z\] -\[(A+B+\dots)\] -\[(A+B+\cdots)\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X206b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X206b.ltx deleted file mode 100644 index 0f054b98c6b..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X206b.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[A+B+\dots+Z\] -\[(A+B+\dots)\] -\[(A+B+\cdots)\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X206c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X206c.ltx deleted file mode 100644 index 3ed745d8c2e..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X206c.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[ a\percent b \% c \] -\[ a\mathdollar b \$ c \] -\[ a\ampersand b \& c \] -\[ a\octothorpe b \# c \] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X207a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X207a.ltx deleted file mode 100644 index 0edbf0806bc..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X207a.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\unimathsetup{active-frac=normalsize} -\[ ¼ ½ ¾ ⅐ ⅑ ⅒ ⅓ ⅔ ⅕ ⅖ ⅗ ⅘ ⅙ ⅚ ⅛ ⅜ ⅝ ⅞ \] -\unimathsetup{active-frac=small} -\[ ¼ ½ ¾ ⅐ ⅑ ⅒ ⅓ ⅔ ⅕ ⅖ ⅗ ⅘ ⅙ ⅚ ⅛ ⅜ ⅝ ⅞ \] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X401a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X401a.ltx deleted file mode 100644 index 301b74de02f..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X401a.ltx +++ /dev/null @@ -1,12 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{XITS Math} -\begin{document} - - - -\setmathfont{Cambria Math} - -\[ x=1.23 \quad x=1,23\] - -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X500a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X500a.ltx deleted file mode 100644 index 91eb7bcd520..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X500a.ltx +++ /dev/null @@ -1,14 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont[Colour=000000]{Cambria Math} -\setmathfont[range={\mathop}, Colour=FF0000]{Cambria Math} -\setmathfont[range={"3D}, Colour=009900]{Cambria Math} -\setmathfont[range={\mathopen,\mathclose}, - Colour=0000FF]{Cambria Math} -\setlength\parskip{12pt} -\begin{document} -\[ - F(s)=\mathscr{L}\left\{f(t)\right\}= - \int_0^\infty \mathup{e}^{-st}f(t)\,\mathup{d}t -\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X501a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X501a.ltx deleted file mode 100644 index 63add88fcc5..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X501a.ltx +++ /dev/null @@ -1,13 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont[Colour=000000]{Cambria Math} -\setmathfont[range=\mathscr, Colour=FF0000]{Cambria Math} -\setmathfont[range=\mathfrak, Colour=0000FF]{Cambria Math} -\begin{document} -\[\latintext\] -\[\mathscr{\latintext}\] -\[\mathfrak{\latintext}\] -\[\LATINmath\] -\[\mathscr{\LATINmath}\] -\[\mathfrak{\LATINmath}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X501b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X501b.ltx deleted file mode 100644 index 6aaca122253..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X501b.ltx +++ /dev/null @@ -1,10 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont[Colour=000000]{Cambria Math} -\setmathfont[range=\mathscr, Colour=FF0000]{TeX Gyre Chorus} -\begin{document} -\[\latintext\] -\[\mathscr{\latintext}\] -\[\LATINmath\] -\[\mathscr{\LATINmath}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X501d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X501d.ltx deleted file mode 100644 index 5bb0a0fb66d..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X501d.ltx +++ /dev/null @@ -1,14 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont[Colour=330000]{Cambria Math} -\setmathfont[range=\mathit/{latin}, Colour=660000]{Cambria Math} -\setmathfont[range=\mathit/{Greek}, Colour=990000]{Cambria Math} -\setmathfont[range=\mathit/{greek}, Colour=BB0000]{Cambria Math} -\setmathfont[range=\mathup/{num}, Colour=EE0000]{Cambria Math} -\begin{document} -\[\mathit{\LATINtext}\] -\[\mathit{\latintext}\] -\[\mathit{\GREEKtext}\] -\[\mathit{\greektext}\] -\[0123456789\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X501e.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X501e.ltx deleted file mode 100644 index b9470cd3618..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X501e.ltx +++ /dev/null @@ -1,26 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont[ - range={ - \mathit/{latin}->\mathbfup , - \mathit/{Latin}->\mathsfup - } - ]{Cambria Math} -\setmathfont[ - range={ - \mathup/{Greek}->\mathbfup , - \mathit/{greek}->\mathbfit - }, - Colour=990000 - ]{Cambria Math} -\begin{document} -\vspace*{-1cm} -\[\LATINtext\] -\[\latintext\] -\[\mathit{\LATINtext}\] -\[\mathit{\latintext}\] -\[{\GREEKtext}\] -\[{\greektext}\] -\[\mathup{\GREEKtext}\] -\[\mathit{\greektext}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X502a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X502a.ltx deleted file mode 100644 index b1c897c069c..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X502a.ltx +++ /dev/null @@ -1,21 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{STIXGeneral} -\setmathfont - [range={\mathit,\mathsfit,\mathscr}] - {STIXGeneral-Italic} -\setmathfont - [range={\mathbfup,\mathbffrak, - \mathbfsfup}] - {STIXGeneral-Bold} -\setmathfont - [range={\mathbfit,\mathbfsfit,\mathbfscr}] - {STIXGeneral-BoldItalic} -\begin{document} -\[\mathit{A}\mathup{A} - \mathsfup{A}\mathsfit{A}\] -\[\mathscr{A}\mathfrak{A}\mathbb{A}\] -\[\mathbfup{A}\mathbfit{A} - \mathbfsfup{A}\mathbfsfit{A}\] -\[\mathbfscr{A}\mathbffrak{A}\] -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X502b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X502b.ltx deleted file mode 100644 index bcc6473e823..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X502b.ltx +++ /dev/null @@ -1,20 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{XITS Math} -\begin{document} -Default: -\[ -(a+b)^2 = \sqrt{c+d} -\] -\setmathfont[range={\mathup}]{Linux Libertine} -\setmathfont[range={\mathit}]{Linux Libertine Italic} -Example of a non-math OpenType font: -\[ -(a+b)^2 = \sqrt{c+d} -\] -With symbols: -\setmathfont[range={`\+,`\=,`\(,`\)}]{Linux Libertine} -\[ -(a+b)^2 = \sqrt{c+d} -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X503a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X503a.ltx deleted file mode 100644 index 1ec7ff2e738..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X503a.ltx +++ /dev/null @@ -1,22 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\begin{document} -\setmathfont{XITS Math} -\[ - \mathscr{\LATINtext} -\] -\[ - \mathcal{\LATINtext} -\] -\setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1]{XITS Math} -\[ - \mathscr{\LATINtext} -\] -\[ - \mathcal{\LATINtext} -\] -\footnotesize -\[ - \mathbfcal{\LATINtext} -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X600a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X600a.ltx deleted file mode 100644 index 2fe3853b0a6..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X600a.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath} -\begin{document} -\[ -\sum_{\substack{a \\ bbb}} -\sum_{\substack{\dfrac12 \\ \vec A'}} -\sum_{\begin{subarray}{l} a \\ bbb \end{subarray}} -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X600b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X600b.ltx deleted file mode 100644 index 2ba34f67e1f..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X600b.ltx +++ /dev/null @@ -1,11 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[ -\sum_{\substack{a \\ bbb}} -\sum_{\substack{\dfrac12 \\ \vec A'}} -\sum_{\begin{subarray}{l} a \\ bbb \end{subarray}} -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X600c.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X600c.ltx deleted file mode 100644 index fcd692a0bbe..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X600c.ltx +++ /dev/null @@ -1,11 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath} -\usepackage{unicode-math} -\setmathfont{Asana Math} -\begin{document} -\[ -\sum_{\substack{a \\ bbb}} -\sum_{\substack{\dfrac12 \\ \vec A'}} -\sum_{\begin{subarray}{l} a \\ bbb \end{subarray}} -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X600d.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X600d.ltx deleted file mode 100644 index 582b7b44683..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X600d.ltx +++ /dev/null @@ -1,11 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath} -\usepackage{unicode-math} -\setmathfont{Neo Euler} -\begin{document} -\[ -\sum_{\substack{a \\ bbb}} -\sum_{\substack{\dfrac12 \\ \vec A'}} -\sum_{\begin{subarray}{l} a \\ bbb \end{subarray}} -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X600f.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X600f.ltx deleted file mode 100644 index f98dfc61a3d..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X600f.ltx +++ /dev/null @@ -1,11 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath} -\usepackage{unicode-math} -\setmathfont{XITS Math} -\begin{document} -\[ -\sum_{\substack{a \\ bbb}} -\sum_{\substack{\dfrac12 \\ \vec A'}} -\sum_{\begin{subarray}{l} a \\ bbb \end{subarray}} -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X601a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X601a.ltx deleted file mode 100644 index d7dbf3c5f6d..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X601a.ltx +++ /dev/null @@ -1,26 +0,0 @@ -\input{umtest-preamble} -\usepackage{mathtools} -\begin{document} -\[ -\frac{a^2 + b^2}{a^2 + b^2} -\frac{\cramped{a^2 + b^2}}{a^2 + b^2} -\frac{a^2 + b^2}{\cramped{a^2 + b^2}} -\] -\( -\frac{a^2 + b^2}{a^2 + b^2} -\frac{\cramped{a^2 + b^2}}{a^2 + b^2} -\frac{a^2 + b^2}{\cramped{a^2 + b^2}} -a^{ - \frac{a^2 + b^2}{a^2 + b^2} - \frac{\cramped{a^2 + b^2}}{a^2 + b^2} - \frac{a^2 + b^2}{\cramped{a^2 + b^2}} -} -a^{ - a^{ - \frac{a^2 + b^2}{a^2 + b^2} - \frac{\cramped{a^2 + b^2}}{a^2 + b^2} - \frac{a^2 + b^2}{\cramped{a^2 + b^2}} - } -} -\) -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X601b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X601b.ltx deleted file mode 100644 index 2d4983a8c59..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X601b.ltx +++ /dev/null @@ -1,28 +0,0 @@ -\input{umtest-preamble} -\usepackage{mathtools} -\usepackage{unicode-math} -\setmathfont{Cambria Math} -\begin{document} -\[ -\frac{a^2 + b^2}{a^2 + b^2} -\frac{\cramped{a^2 + b^2}}{a^2 + b^2} -\frac{a^2 + b^2}{\cramped{a^2 + b^2}} -\] -\( -\frac{a^2 + b^2}{a^2 + b^2} -\frac{\cramped{a^2 + b^2}}{a^2 + b^2} -\frac{a^2 + b^2}{\cramped{a^2 + b^2}} -a^{ - \frac{a^2 + b^2}{a^2 + b^2} - \frac{\cramped{a^2 + b^2}}{a^2 + b^2} - \frac{a^2 + b^2}{\cramped{a^2 + b^2}} -} -a^{ - a^{ - \frac{a^2 + b^2}{a^2 + b^2} - \frac{\cramped{a^2 + b^2}}{a^2 + b^2} - \frac{a^2 + b^2}{\cramped{a^2 + b^2}} - } -} -\) -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X601f.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X601f.ltx deleted file mode 100644 index 4ecb9853cf1..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X601f.ltx +++ /dev/null @@ -1,28 +0,0 @@ -\input{umtest-preamble} -\usepackage{mathtools} -\usepackage{unicode-math} -\setmathfont{XITS Math} -\begin{document} -\[ -\frac{a^2 + b^2}{a^2 + b^2} -\frac{\cramped{a^2 + b^2}}{a^2 + b^2} -\frac{a^2 + b^2}{\cramped{a^2 + b^2}} -\] -\( -\frac{a^2 + b^2}{a^2 + b^2} -\frac{\cramped{a^2 + b^2}}{a^2 + b^2} -\frac{a^2 + b^2}{\cramped{a^2 + b^2}} -a^{ - \frac{a^2 + b^2}{a^2 + b^2} - \frac{\cramped{a^2 + b^2}}{a^2 + b^2} - \frac{a^2 + b^2}{\cramped{a^2 + b^2}} -} -a^{ - a^{ - \frac{a^2 + b^2}{a^2 + b^2} - \frac{\cramped{a^2 + b^2}}{a^2 + b^2} - \frac{a^2 + b^2}{\cramped{a^2 + b^2}} - } -} -\) -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X604a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X604a.ltx deleted file mode 100644 index c43706cc298..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X604a.ltx +++ /dev/null @@ -1,13 +0,0 @@ -\input{umtest-preamble} -\usepackage{amsmath} -\usepackage{graphicx} -\newcommand*{\test}[1]{% - \parbox[b][50pt]{50pt}{\scalebox{3}{$#1$}}% -} -\begin{document} -\test{\sqrt[a]{b}} -\test{\sqrt[\uproot{10}a]{b}} - -\test{\sqrt[\leftroot{10}a]{b}} -\test{\sqrt[\leftroot{10}\uproot{10}a]{b}} -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X604b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X604b.ltx deleted file mode 100644 index 235d51c6354..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X604b.ltx +++ /dev/null @@ -1,15 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\usepackage{amsmath} -\usepackage{graphicx} -\setmathfont{Cambria Math} -\newcommand*{\test}[1]{% - \parbox[b][50pt]{50pt}{\scalebox{3}{$#1$}}% -} -\begin{document} -\test{\sqrt[a]{b}} -\test{\sqrt[\uproot{10}a]{b}} - -\test{\sqrt[\leftroot{10}a]{b}} -\test{\sqrt[\leftroot{10}\uproot{10}a]{b}} -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X610f.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X610f.ltx deleted file mode 100644 index f8055f46468..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X610f.ltx +++ /dev/null @@ -1,9 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\setmathfont{XITS Math} -\usepackage[all,pdf]{xy} -\begin{document} -\[ -\xymatrix{a \ar[r] & b} -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X620b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X620b.ltx deleted file mode 100644 index c8c15066083..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X620b.ltx +++ /dev/null @@ -1,11 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\usepackage{delarray} -\setmathfont{Cambria Math} -\begin{document} -\[ -\begin{array}[t]({c}) 1\\2\\3 \end{array} -\begin{array}[c]({c}) 1\\2\\3 \end{array} -\begin{array}[b]({c}) 1\\2\\3 \end{array} -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X650a.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X650a.ltx deleted file mode 100644 index abaae93629a..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X650a.ltx +++ /dev/null @@ -1,12 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\usepackage{mathtools} -\setmathfont{Cambria Math} -\begin{document} -\[ -\coloneq -\coloneqq -\eqcolon -\eqqcolon -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/X650b.ltx b/Master/texmf-dist/source/latex/unicode-math/testfiles/X650b.ltx deleted file mode 100644 index 4bda71a40f0..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/X650b.ltx +++ /dev/null @@ -1,12 +0,0 @@ -\input{umtest-preamble} -\usepackage{unicode-math} -\usepackage{colonequals} -\setmathfont{Cambria Math} -\begin{document} -\[ -\coloneq -\colonequals -\eqcolon -\equalscolon -\] -\end{document} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-preamble.tex b/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-preamble.tex deleted file mode 100644 index aa6442fc314..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-preamble.tex +++ /dev/null @@ -1,70 +0,0 @@ - -\documentclass{article} -\usepackage{geometry} -\geometry{ - papersize={9cm,6cm},margin=0.5cm -} -\pagestyle{empty} - -\newcommand\LATINtext{ABCDEFGHIJKLMNOPQRSTUVWXYZ} -\newcommand\latintext{abcdefghijklmnopqrstuvwxyz} -\newcommand\LATINmath{𝐴𝐵𝐶𝐷𝐸𝐹𝐺𝐻𝐼𝐽𝐾𝐿𝑀𝑁𝑂𝑃𝑄𝑅𝑆𝑇𝑈𝑉𝑊𝑋𝑌𝑍} -\newcommand\latinmath{𝑎𝑏𝑐𝑑𝑒𝑓𝑔ℎ𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠𝑡𝑢𝑣𝑤𝑥𝑦𝑧} -\newcommand\GREEKtext{ΑΒΓΔΕΖΗΘϴΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ} -\newcommand\greektext{αβγδεϵζηθϑικϰλμνξοπϖρϱςστυφϕχψω} -\newcommand\GREEKmath{𝛢𝛣𝛤𝛥𝛦𝛧𝛨𝛩𝛳𝛪𝛫𝛬𝛭𝛮𝛯𝛰𝛱𝛲𝛴𝛵𝛶𝛷𝛸𝛹𝛺} -\newcommand\greekmath{𝛼𝛽𝛾𝛿𝜀𝜖𝜁𝜂𝜃𝜗𝜄𝜅𝜘𝜆𝜇𝜈𝜉𝜊𝜋𝜛𝜌𝜚𝜍𝜎𝜏𝜐𝜑𝜙𝜒𝜓𝜔} - -\newcommand\LATINmathbb{𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ} -\newcommand\latinmathbb{𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫} -\newcommand\numbersmathbb{𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡} -\newcommand\reservedmathbb{ } - -\newcommand\LATINmathscr{𝒜ℬ𝒞𝒟ℰℱ𝒢ℋℐ𝒥𝒦ℒℳ𝒩𝒪𝒫𝒬ℛ𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵} -\newcommand\latinmathscr{𝒶𝒷𝒸𝒹ℯ𝒻ℊ𝒽𝒾𝒿𝓀𝓁𝓂𝓃ℴ𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏} -\newcommand\reservedmathscr{ \quad } - -\newcommand\LATINmathfrak{𝔄𝔅ℭ𝔇𝔈𝔉𝔊ℌℑ𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔ℜ𝔖𝔗𝔘𝔙𝔚𝔛𝔜ℨ} -\newcommand\latinmathfrak{𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷} -\newcommand\reservedmathfrak{ } - -\newcommand\LATINmathsfup{𝖠𝖡𝖢𝖣𝖤𝖥𝖦𝖧𝖨𝖩𝖪𝖫𝖬𝖭𝖮𝖯𝖰𝖱𝖲𝖳𝖴𝖵𝖶𝖷𝖸𝖹} -\newcommand\latinmathsfup{𝖺𝖻𝖼𝖽𝖾𝖿𝗀𝗁𝗂𝗃𝗄𝗅𝗆𝗇𝗈𝗉𝗊𝗋𝗌𝗍𝗎𝗏𝗐𝗑𝗒𝗓} -\newcommand\numbersmathsfup{𝟢𝟣𝟤𝟥𝟦𝟧𝟨𝟩𝟪𝟫} - -\newcommand\LATINmathsfit{𝘈𝘉𝘊𝘋𝘌𝘍𝘎𝘏𝘐𝘑𝘒𝘓𝘔𝘕𝘖𝘗𝘘𝘙𝘚𝘛𝘜𝘝𝘞𝘟𝘠𝘡} -\newcommand\latinmathsfit{𝘢𝘣𝘤𝘥𝘦𝘧𝘨𝘩𝘪𝘫𝘬𝘭𝘮𝘯𝘰𝘱𝘲𝘳𝘴𝘵𝘶𝘷𝘸𝘹𝘺𝘻} - -\newcommand\LATINmathtt{𝙰𝙱𝙲𝙳𝙴𝙵𝙶𝙷𝙸𝙹𝙺𝙻𝙼𝙽𝙾𝙿𝚀𝚁𝚂𝚃𝚄𝚅𝚆𝚇𝚈𝚉} -\newcommand\latinmathtt{𝚊𝚋𝚌𝚍𝚎𝚏𝚐𝚑𝚒𝚓𝚔𝚕𝚖𝚗𝚘𝚙𝚚𝚛𝚜𝚝𝚞𝚟𝚠𝚡𝚢𝚣} -\newcommand\numbersmathtt{𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿} - - -\newcommand\LATINmathbfit{𝑨𝑩𝑪𝑫𝑬𝑭𝑮𝑯𝑰𝑱𝑲𝑳𝑴𝑵𝑶𝑷𝑸𝑹𝑺𝑻𝑼𝑽𝑾𝑿𝒀𝒁} -\newcommand\latinmathbfit{𝒂𝒃𝒄𝒅𝒆𝒇𝒈𝒉𝒊𝒋𝒌𝒍𝒎𝒏𝒐𝒑𝒒𝒓𝒔𝒕𝒖𝒗𝒘𝒙𝒚𝒛} -\newcommand\GREEKmathbfit{𝜜𝜝𝜞𝜟𝜠𝜡𝜢𝜣𝜭𝜤𝜥𝜦𝜧𝜨𝜩𝜪𝜫𝜬𝜮𝜯𝜰𝜱𝜲𝜳𝜴} -\newcommand\greekmathbfit{𝜶𝜷𝜸𝜹𝜺𝝐𝜻𝜼𝜽𝝑𝜾𝜿𝝒𝝀𝝁𝝂𝝃𝝄𝝅𝝕𝝆𝝔𝝇𝝈𝝉𝝊𝝋𝝓𝝌𝝍𝝎} - -\newcommand\LATINmathbfup{𝐀𝐁𝐂𝐃𝐄𝐅𝐆𝐇𝐈𝐉𝐊𝐋𝐌𝐍𝐎𝐏𝐐𝐑𝐒𝐓𝐔𝐕𝐖𝐗𝐘𝐙} -\newcommand\latinmathbfup{𝐚𝐛𝐜𝐝𝐞𝐟𝐠𝐡𝐢𝐣𝐤𝐥𝐦𝐧𝐨𝐩𝐪𝐫𝐬𝐭𝐮𝐯𝐰𝐱𝐲𝐳} -\newcommand\GREEKmathbfup{𝚨𝚩𝚪𝚫𝚬𝚭𝚮𝚯𝚹𝚰𝚱𝚲𝚳𝚴𝚵𝚶𝚷𝚸𝚺𝚻𝚼𝚽𝚾𝚿𝛀} -\newcommand\greekmathbfup{𝛂𝛃𝛄𝛅𝛆𝛜𝛇𝛈𝛉𝛝𝛊𝛋𝛞𝛌𝛍𝛎𝛏𝛐𝛑𝛡𝛒𝛠𝛓𝛔𝛕𝛖𝛗𝛟𝛘𝛙𝛚} -\newcommand\numbersmathbfup{𝟎𝟏𝟐𝟑𝟒𝟓𝟔𝟕𝟖𝟗} - -\newcommand\LATINmathbfscr{𝓐𝓑𝓒𝓓𝓔𝓕𝓖𝓗𝓘𝓙𝓚𝓛𝓜𝓝𝓞𝓟𝓠𝓡𝓢𝓣𝓤𝓥𝓦𝓧𝓨𝓩} -\newcommand\latinmathbfscr{𝓪𝓫𝓬𝓭𝓮𝓯𝓰𝓱𝓲𝓳𝓴𝓵𝓶𝓷𝓸𝓹𝓺𝓻𝓼𝓽𝓾𝓿𝔀𝔁𝔂𝔃} - -\newcommand\LATINmathbffrak{𝕬𝕭𝕮𝕯𝕰𝕱𝕲𝕳𝕴𝕵𝕶𝕷𝕸𝕹𝕺𝕻𝕼𝕽𝕾𝕿𝖀𝖁𝖂𝖃𝖄𝖅} -\newcommand\latinmathbffrak{𝖆𝖇𝖈𝖉𝖊𝖋𝖌𝖍𝖎𝖏𝖐𝖑𝖒𝖓𝖔𝖕𝖖𝖗𝖘𝖙𝖚𝖛𝖜𝖝𝖞𝖟} - -\newcommand\LATINmathbfsfup{𝗔𝗕𝗖𝗗𝗘𝗙𝗚𝗛𝗜𝗝𝗞𝗟𝗠𝗡𝗢𝗣𝗤𝗥𝗦𝗧𝗨𝗩𝗪𝗫𝗬𝗭} -\newcommand\latinmathbfsfup{𝗮𝗯𝗰𝗱𝗲𝗳𝗴𝗵𝗶𝗷𝗸𝗹𝗺𝗻𝗼𝗽𝗾𝗿𝘀𝘁𝘂𝘃𝘄𝘅𝘆𝘇} -\newcommand\GREEKmathbfsfup{𝝖𝝗𝝘𝝙𝝚𝝛𝝜𝝝𝝧𝝞𝝟𝝠𝝡𝝢𝝣𝝤𝝥𝝦𝝨𝝩𝝪𝝫𝝬𝝭𝝮} -\newcommand\greekmathbfsfup{𝝰𝝱𝝲𝝳𝝴𝞊𝝵𝝶𝝷𝞋𝝸𝝹𝞌𝝺𝝻𝝼𝝽𝝾𝝿𝞏𝞀𝞎𝞁𝞂𝞃𝞄𝞅𝞋𝞆𝞇𝞈} -\newcommand\numbersmathbfsfup{𝟬𝟭𝟮𝟯𝟰𝟱𝟲𝟳𝟴𝟵} - -\newcommand\LATINmathbfsfit{𝘼𝘽𝘾𝘿𝙀𝙁𝙂𝙃𝙄𝙅𝙆𝙇𝙈𝙉𝙊𝙋𝙌𝙍𝙎𝙏𝙐𝙑𝙒𝙓𝙔𝙕} -\newcommand\latinmathbfsfit{𝙖𝙗𝙘𝙙𝙚𝙛𝙜𝙝𝙞𝙟𝙠𝙡𝙢𝙣𝙤𝙥𝙦𝙧𝙨𝙩𝙪𝙫𝙬𝙭𝙮𝙯} -\newcommand\GREEKmathbfsfit{𝞐𝞑𝞒𝞓𝞔𝞕𝞖𝞗𝞡𝞘𝞙𝞚𝞛𝞜𝞝𝞞𝞟𝞠𝞢𝞣𝞤𝞥𝞦𝞧𝞨} -\newcommand\greekmathbfsfit{𝞪𝞫𝞬𝞭𝞮𝟄𝞯𝞰𝞱𝟅𝞲𝞳𝟆𝞴𝞵𝞶𝞷𝞸𝞹𝟉𝞺𝟈𝞻𝞼𝞽𝞾𝞿𝟅𝟀𝟁𝟂} - diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite-F.tex b/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite-F.tex deleted file mode 100644 index 4f97a00b0e2..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite-F.tex +++ /dev/null @@ -1,22 +0,0 @@ -\inserttest{F-active-sscripts-L} -\inserttest{F-alph-spaces-L} -\inserttest{F-arrow-accents-L} -\inserttest{F-mathstyle-french-L} -\inserttest{F-mathstyle-iso-L} -\inserttest{F-mathstyle-literal-L} -\inserttest{F-mathstyle-tex-L} -\inserttest{F-mathstyle-upright-L} -\inserttest{F-mathversion-L} -\inserttest{F-nolimits-spec-L} -\inserttest{F-over-under-2-L} -\inserttest{F-over-under-L} -\inserttest{F-pkg-url-L} -\inserttest{F-primes-1-L} -\inserttest{F-primes-2-L} -\inserttest{F-primes-back-L} -\inserttest{F-query-mathstyle-L} -\inserttest{F-range-prime-check-L} -\inserttest{F-slash-delim-2-L} -\inserttest{F-sqrt-L} -\inserttest{F-sqrt-n-L} -\inserttest{F-sscript-features-L} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite-L.tex b/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite-L.tex deleted file mode 100644 index 9783d45465d..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite-L.tex +++ /dev/null @@ -1,14 +0,0 @@ -\inserttest{L-sscale-dimen} -\inserttest{L600a} -\inserttest{L600b} -\inserttest{L600c} -\inserttest{L600f} -\inserttest{L601a} -\inserttest{L601b} -\inserttest{L601f} -\inserttest{L602b} -\inserttest{L603b} -\inserttest{L604a} -\inserttest{L604b} -\inserttest{L650a} -\inserttest{L650b} diff --git a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite-X.tex b/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite-X.tex deleted file mode 100644 index 6ab838ffe64..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/testfiles/umtest-suite-X.tex +++ /dev/null @@ -1,119 +0,0 @@ -\inserttest{X002a} -\inserttest{X002b} -\inserttest{X002c} -\inserttest{X002d} -\inserttest{X002e} -\inserttest{X003a} -\inserttest{X003b} -\inserttest{X003c} -\inserttest{X003d} -\inserttest{X003e} -\inserttest{X003f} -\inserttest{X003g} -\inserttest{X003h} -\inserttest{X003i} -\inserttest{X003j} -\inserttest{X003k} -\inserttest{X003l} -\inserttest{X003m} -\inserttest{X003n} -\inserttest{X003o} -\inserttest{X003p} -\inserttest{X004a} -\inserttest{X004b} -\inserttest{X004c} -\inserttest{X004d} -\inserttest{X004e} -\inserttest{X004f} -\inserttest{X005a} -\inserttest{X005b} -\inserttest{X005c} -\inserttest{X005d} -\inserttest{X005e} -\inserttest{X005f} -\inserttest{X005g} -\inserttest{X005h} -\inserttest{X005i} -\inserttest{X005j} -\inserttest{X005k} -\inserttest{X005l} -\inserttest{X010a} -\inserttest{X010b} -\inserttest{X010c} -\inserttest{X010d} -\inserttest{X011a} -\inserttest{X011b} -\inserttest{X012a} -\inserttest{X012b} -\inserttest{X013a} -\inserttest{X013b} -\inserttest{X013c} -\inserttest{X013d} -\inserttest{X013e} -\inserttest{X014a} -\inserttest{X014b} -\inserttest{X014c} -\inserttest{X015a} -\inserttest{X015b} -\inserttest{X016a} -\inserttest{X016b} -\inserttest{X016c} -\inserttest{X017a} -\inserttest{X017b} -\inserttest{X017c} -\inserttest{X017d} -\inserttest{X018a} -\inserttest{X018b} -\inserttest{X019a} -\inserttest{X019b} -\inserttest{X020a} -\inserttest{X020b} -\inserttest{X021a} -\inserttest{X021b} -\inserttest{X030a} -\inserttest{X031a} -\inserttest{X031b} -\inserttest{X031c} -\inserttest{X032a} -\inserttest{X032b} -\inserttest{X032c} -\inserttest{X033a} -\inserttest{X100a} -\inserttest{X100b} -\inserttest{X100c} -\inserttest{X100d} -\inserttest{X100e} -\inserttest{X101a} -\inserttest{X102a} -\inserttest{X150a} -\inserttest{X151a} -\inserttest{X202a} -\inserttest{X202b} -\inserttest{X203a} -\inserttest{X206a} -\inserttest{X206b} -\inserttest{X206c} -\inserttest{X207a} -\inserttest{X401a} -\inserttest{X500a} -\inserttest{X501a} -\inserttest{X501b} -\inserttest{X501d} -\inserttest{X501e} -\inserttest{X502a} -\inserttest{X502b} -\inserttest{X503a} -\inserttest{X600a} -\inserttest{X600b} -\inserttest{X600c} -\inserttest{X600d} -\inserttest{X600f} -\inserttest{X601a} -\inserttest{X601b} -\inserttest{X601f} -\inserttest{X604a} -\inserttest{X604b} -\inserttest{X610f} -\inserttest{X620b} -\inserttest{X650a} -\inserttest{X650b} diff --git a/Master/texmf-dist/source/latex/unicode-math/unicode-math-testsuite.ltx b/Master/texmf-dist/source/latex/unicode-math/unicode-math-testsuite.ltx deleted file mode 100644 index 0744cfbc4ec..00000000000 --- a/Master/texmf-dist/source/latex/unicode-math/unicode-math-testsuite.ltx +++ /dev/null @@ -1,53 +0,0 @@ -\documentclass{article} -\usepackage{xltxtra,fancyvrb,geometry,calc} -\usepackage[multidot]{grffile} -\geometry{margin=2cm,a4paper} -\setmainfont{TeX Gyre Pagella} -\setmonofont{Consolas} - -\def\prefix{} -\newcommand\inserttest[1]{% - \subsection{Test #1} - \begin{minipage}{0.5\textwidth} - \VerbatimInput{#1\prefix.ltx} - \end{minipage} - \hfill - \begin{minipage}{8cm+4pt} - \fboxsep=1pt - \fboxrule=1pt - \fbox{\includegraphics[width=8cm]{../testfiles/#1\prefix.safe.pdf}} - \end{minipage} -} - -\pagestyle{empty} -\begin{document} -\title{The \textsf{unicode-math} test suite} -\author{Will Robertson} -\date{Compiled: \today} -\maketitle -\thispagestyle{empty} - -\section{Preamble} - -\begin{minipage}{0.5\textwidth} -The following pieces of output are generated from the code shown. -As well as being good minimal examples, these tests are useful to ensure that new bugs don't affect old behaviour. -When the test suite is run, the new output is compared pixel by pixel with that shown here and warnings produced if the outputs are not identical. -\end{minipage} - -\section{Test files for both engines} - -Only the Lua\LaTeX\ output is shown; there will be (usually only) negligible differences between the outout between the two engines. - -\input{umtest-suite-F.tex} -\def\prefix{} - -\section{Lua\LaTeX\ test files} - -\input{umtest-suite-L.tex} - -\section{\XeLaTeX\ test files} - -\input{umtest-suite-X.tex} - -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx b/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx index e536cfe1435..c255e1b3050 100644 --- a/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx +++ b/Master/texmf-dist/source/latex/unicode-math/unicode-math.dtx @@ -18,18 +18,6 @@ the conditions of the LaTeX Project Public License, version 1.3c or higher This work is "maintained" by Will Robertson. \endpreamble -\def\MetaPrefix{--} -\declarepreamble\luapreamble -Copyright 2006-2013 Will Robertson <will.robertson@latex-project.org> -Copyright 2010-2013 Philipp Stephani <st_philipp@yahoo.de> -Copyright 2012-2013 Khaled Hosny <khaledhosny@eglug.org> - -This package is free software and may be redistributed and/or modified under -the conditions of the LaTeX Project Public License, version 1.3c or higher -(your choice): <http://www.latex-project.org/lppl/>. - -This work is "maintained" by Will Robertson. -\endpreamble \nopostamble \askforoverwritefalse \let\MetaPrefix\DoubleperCent @@ -45,11 +33,6 @@ This work is "maintained" by Will Robertson. \generate{\file{unicode-math-luatex.sty}{ \from{unicode-math.dtx}{package,LU} }} -\def\MetaPrefix{--} -\usepreamble\luapreamble -\generate{\file{unicode-math.lua}{\from{unicode-math.dtx}{lua}}} -\let\MetaPrefix\DoubleperCent -\nopreamble \def\tempa{plain} \ifx\tempa\fmtname\endgroup\expandafter\bye\fi \generate{\file{dtx-style.sty}{\from{\jobname.dtx}{dtx-style}}} @@ -60,7 +43,7 @@ This work is "maintained" by Will Robertson. %<preamble&XE>\ProvidesPackage{unicode-math-xetex} %<preamble&LU>\ProvidesPackage{unicode-math-luatex} %<*preamble> - [2013/05/04 v0.7e Unicode maths in XeLaTeX and LuaLaTeX] + [2014/06/30 v0.7f Unicode maths in XeLaTeX and LuaLaTeX] %</preamble> %<*internal> \documentclass[a4paper]{ltxdoc} @@ -493,7 +476,7 @@ This work is "maintained" by Will Robertson. % in \tabref{mathalphabets}. Some of these have been covered in the previous sections. % % The math font switching commands do not nest; therefore if you want -% sans serif bold, you must write |\mathsfbf{...}| rather than |\mathbf{\mathsf{...}}|. +% sans serif bold, you must write |\mathbfsf{...}| rather than |\mathbf{\mathsf{...}}|. % This may change in the future. % % \begin{table} @@ -558,12 +541,12 @@ This work is "maintained" by Will Robertson. % the caligraphic letters are accessed with the same glyph slots as the % script letters but with the first stylistic set feature (|ss01|) applied. % \begin{verbatim} -% \setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1]{XITS Math} +% \setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1]{xits-math.otf} % \end{verbatim} % An example is shown below. % \begin{quote} -% \setmathfont[range=\mathscr]{XITS Math} -% \setmathfont[range=\mathcal,StylisticSet=1]{XITS Math} +% \setmathfont[range=\mathscr]{xits-math.otf} +% \setmathfont[range=\mathcal,StylisticSet=1]{xits-math.otf} % The Script style (\cs{mathscr}) in XITS Math is: $\mathscr{ABCXYZ}$\par % The Caligraphic style (\cs{mathcal}) in XITS Math is: $\mathcal{ABCXYZ}$ % \end{quote} @@ -1040,6 +1023,8 @@ This work is "maintained" by Will Robertson. % \section{Header code} % % We (later on) bifurcate the package based on the engine being used. +% These separate package files are indicated with the Docstrip flags \textsf{LU} and \textsf{XE}, respectively. +% Shared code executed before loading the engine-specific code is indicated with the flag \textsf{preamble}. % \begin{macrocode} %<*load> \luatex_if_engine:T { \RequirePackage{unicode-math-luatex} \endinput } @@ -1051,6 +1036,7 @@ This work is "maintained" by Will Robertson. %<*preamble&!XE&!LU> % \end{macrocode} % +% Bail early if using pdf\TeX. % \begin{macrocode} \usepackage{ifxetex,ifluatex} \ifxetex @@ -1085,6 +1071,27 @@ This work is "maintained" by Will Robertson. \RequirePackage{fix-cm} % avoid some warnings \RequirePackage{filehook}[2011/01/03] % \end{macrocode} +% Need this part from \pkg{fixltx2e}: +% \begin{macrocode} +\def\@DeclareMathSizes #1#2#3#4#5{% + \@defaultunits\dimen@ #2pt\relax\@nnil + \if $#3$% + \expandafter\let\csname S@\strip@pt\dimen@\endcsname\math@fontsfalse + \else + \@defaultunits\dimen@ii #3pt\relax\@nnil + \@defaultunits\@tempdima #4pt\relax\@nnil + \@defaultunits\@tempdimb #5pt\relax\@nnil + \toks@{#1}% + \expandafter\xdef\csname S@\strip@pt\dimen@\endcsname{% + \gdef\noexpand\tf@size{\strip@pt\dimen@ii}% + \gdef\noexpand\sf@size{\strip@pt\@tempdima}% + \gdef\noexpand\ssf@size{\strip@pt\@tempdimb}% + \the\toks@ + }% + \fi +} +% \end{macrocode} +% % Start using \LaTeX3 --- finally! % \begin{macrocode} \ExplSyntaxOn @@ -1098,7 +1105,8 @@ This work is "maintained" by Will Robertson. \cs_generate_variant:Nn \prop_get:NnN {cxN} \cs_generate_variant:Nn \prop_if_in:NnTF {cx} % \end{macrocode} -% Extra expansion command: +% +% An extra expansion command: % \begin{macrocode} \cs_set:Npn \exp_args:NNcc #1#2#3#4 { \exp_after:wN #1 \exp_after:wN #2 @@ -1107,6 +1115,11 @@ This work is "maintained" by Will Robertson. } % \end{macrocode} % +% For \pkg{fontspec}: +% \begin{macrocode} +\cs_generate_variant:Nn \fontspec_set_family:Nnn {Nx} +\cs_generate_variant:Nn \fontspec_set_fontface:NNnn {NNx} +% \end{macrocode} % % \paragraph{Conditionals} % @@ -1154,6 +1167,7 @@ This work is "maintained" by Will Robertson. \int_new:N \g_um_fam_int % \end{macrocode} % +% For displaying in warning messages, etc.: % \begin{macrocode} \tl_const:Nn \c_um_math_alphabet_name_latin_tl {Latin,~lowercase} \tl_const:Nn \c_um_math_alphabet_name_Latin_tl {Latin,~uppercase} @@ -1165,6 +1179,8 @@ This work is "maintained" by Will Robertson. % % \subsection{Extras} % +% What might end up being provided by the kernel. +% % \begin{macro}{\um_glyph_if_exist:nTF} %: TODO: Generalise for arbitrary fonts! \cs{l_um_font} is not always the one used for a specific glyph!! % \begin{macrocode} @@ -1183,12 +1199,70 @@ This work is "maintained" by Will Robertson. % \end{macrocode} % \end{macro} % -% \subsection{Function variants} +% \begin{macro}{\um_set_mathcode:nnnn} +% \begin{macro}{\um_set_mathcode:nnn} +% \begin{macro}{\um_set_mathchar:NNnn} +% \begin{macro}{\um_set_mathchar:cNnn} +% \begin{macro}{\um_set_delcode:nnn} +% \begin{macro}{\um_radical:nn} +% \begin{macro}{\um_delimiter:Nnn} +% \begin{macro}{\um_accent:nnn} +% \begin{macro}{\um_accent_keyword:} +% These are all wrappers for the primitive commands that take numerical +% input only. +% \begin{macrocode} +\cs_set:Npn \um_set_mathcode:nnnn #1#2#3#4 { + \Umathcode \int_eval:n {#1} = + \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#4} \scan_stop: +} +\cs_set:Npn \um_set_mathcode:nnn #1#2#3 { + \Umathcode \int_eval:n {#1} = + \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#1} \scan_stop: +} +\cs_set:Npn \um_set_mathchar:NNnn #1#2#3#4 { + \Umathchardef #1 = + \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#4} \scan_stop: +} +\cs_new:Nn \um_set_delcode:nnn { + \Udelcode#2 = \csname sym#1\endcsname #3 \scan_stop: +} +\cs_new:Nn \um_radical:nn { + \Uradical \csname sym#1\endcsname #2 \scan_stop: +} +\cs_new:Nn \um_delimiter:Nnn { + \Udelimiter \mathchar@type#1 \csname sym#2\endcsname #3 \scan_stop: +} +\cs_new:Nn \um_accent:nnn { + \Umathaccent #1~ \mathchar@type\mathaccent \use:c { sym #2 } #3 \scan_stop: +} +% \end{macrocode} +% +% \begin{macrocode} +\cs_generate_variant:Nn \um_set_mathchar:NNnn {c} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% % +% \begin{macro}{\char_gmake_mathactive:N} +% \begin{macro}{\char_gmake_mathactive:n} % \begin{macrocode} -\cs_generate_variant:Nn \fontspec_set_family:Nnn {Nx} -\cs_generate_variant:Nn \fontspec_set_fontface:NNnn {NNx} +\cs_new:Nn \char_gmake_mathactive:N { + \global\mathcode `#1 = "8000 \scan_stop: +} +\cs_new:Nn \char_gmake_mathactive:n { + \global\mathcode #1 = "8000 \scan_stop: +} % \end{macrocode} +% \end{macro} +% \end{macro} % % \subsection{Package options} % @@ -1430,77 +1504,18 @@ This work is "maintained" by Will Robertson. % \end{macrocode} % % -% \section{\Hologo{LuaLaTeX} module} -% -% We create a \pkg{luatexbase} module that contains Lua functions for use with \hologo{LuaLaTeX}. +% End of preamble code. % \begin{macrocode} %</preamble&!XE&!LU> -%<*lua> -local err, warn, info, log = luatexbase.provides_module({ - name = "unicode-math", - date = "2013/05/04", - version = 0.3, - description = "Unicode math typesetting for LuaLaTeX", - author = "Khaled Hosny, Will Robertson, Philipp Stephani", - licence = "LPPL v1.3+" -}) -% \end{macrocode} -% \LuaTeX\ does not provide interface to accessing -% \texttt{(Script)ScriptPercentScaleDown} math constants, so we -% emulate \XeTeX\ behaviour by setting \cs{fontdimen10} and -% \cs{fontdimen11}. -% -% |luaotfload| now provides these, they shoud be removed in the -% next version. -% \begin{macrocode} -if luaotfload and luaotfload.module and luaotfload.module.version < 2 then - local function set_sscale_dimens(fontdata) - local mc = fontdata.MathConstants - if mc then - fontdata.parameters[10] = mc.ScriptPercentScaleDown or 70 - fontdata.parameters[11] = mc.ScriptScriptPercentScaleDown or 50 - end - end - luatexbase.add_to_callback("luaotfload.patch_font", set_sscale_dimens, "unicode_math.set_sscale_dimens") -% \end{macrocode} -% -% Cambria Math has too small \texttt{DisplayOperatorMinHeight} constant, so we -% patch it to amore accebtable value. -% -% \begin{macrocode} - local function patch_cambria_domh(fontdata) - local mc = fontdata.MathConstants - if mc and fontdata.psname == "CambriaMath" then - -- keeping backward compatibility with luaotfload v1 - local units_per_em - local metadata = fontdata.shared and fontdata.shared.rawdata.metadata - if metadata and metadata.units_per_em then - units_per_em = metadata.units_per_em - elseif fontdata.parameters.units then - units_per_em = fontdata.parameters.units - elseif fontdata.units then - units_per_em = fontdata.units - else - units_per_em = 1000 - end - local sz = fontdata.parameters.size or fontdata.size - local mh = 2800 / units_per_em * sz - if mc.DisplayOperatorMinHeight < mh then - mc.DisplayOperatorMinHeight = mh - end - end - end - luatexbase.add_to_callback("luaotfload.patch_font", patch_cambria_domh, "cambria.domh") -end -%</lua> % \end{macrocode} % % (Error messages and warning definitions go here from the |msg| chunk % defined in \secref[vref]{codemsg}.) % % \section{Bifurcation} +% % And here the split begins. Most of the code is still shared, but -% code for \LuaTeX\ uses the `LU' prefix and code for \XeTeX\ uses `XE'. +% code for \LuaTeX\ uses the `\textsf{LU}' flag and code for \XeTeX\ uses `\textsf{XE}'. % % \begin{macrocode} %<*package&(XE|LU)> @@ -1512,30 +1527,12 @@ end % \XeTeX\ before version 0.9999 did not support |\U| prefix for extended math % primitives, and while \LuaTeX\ had it from the start, prior 0.75.0 the % \LaTeX\ format did not provide them without the |\luatex| prefix. -% -% \begin{macrocode} -%<XE>\ifdim\number\XeTeXversion\XeTeXrevision in<0.9999in -%<LU>\ifnum\luatexversion<75% - \cs_new:Nn \um_cs_compat:n -%<XE> { \cs_set_eq:cc {U#1} {XeTeX#1} } -%<LU> { \cs_set_eq:cc {U#1} {luatexU#1} } - \um_cs_compat:n {mathcode} - \um_cs_compat:n {delcode} - \um_cs_compat:n {mathcodenum} - \um_cs_compat:n {mathcharnum} - \um_cs_compat:n {mathchardef} - \um_cs_compat:n {radical} - \um_cs_compat:n {mathaccent} - \um_cs_compat:n {delimiter} -\fi -% \end{macrocode} +% We assume that users of \pkg{unicode-math} are using up-to-date engines however. % % \begin{macrocode} %<*LU> -\RequirePackage { lualatex-math } [ 2011/08/07 ] -\RequirePackage { luatexbase } -\RequirePackage { luaotfload } [ 2010/11/26 ] -\RequireLuaModule { unicode-math } [ 2012/04/23 ] +\RequirePackage{luaotfload} [2014/05/18] +\RequirePackage{lualatex-math}[2011/08/07] %</LU> % \end{macrocode} % @@ -1547,64 +1544,65 @@ end % % Rather than `readable', in the end, this makes the code more extensible. % \begin{macrocode} -\cs_new:Nn \usv_set:nnn { +\cs_new:Nn \usv_set:nnn + { \tl_set:cn { \um_to_usv:nn {#1}{#2} } {#3} -} + } \cs_new:Nn \um_to_usv:nn { g_um_#1_#2_usv } % \end{macrocode} % \paragraph{Alphabets} % \begin{macrocode} -\usv_set:nnn {up}{num}{48} -\usv_set:nnn {up}{Latin}{65} -\usv_set:nnn {up}{latin}{97} -\usv_set:nnn {up}{Greek}{"391} -\usv_set:nnn {up}{greek}{"3B1} -\usv_set:nnn {it}{Latin}{"1D434} -\usv_set:nnn {it}{latin}{"1D44E} -\usv_set:nnn {it}{Greek}{"1D6E2} -\usv_set:nnn {it}{greek}{"1D6FC} -\usv_set:nnn {bb}{num}{"1D7D8} -\usv_set:nnn {bb}{Latin}{"1D538} -\usv_set:nnn {bb}{latin}{"1D552} -\usv_set:nnn {scr}{Latin}{"1D49C} -\usv_set:nnn {cal}{Latin}{"1D49C} -\usv_set:nnn {scr}{latin}{"1D4B6} +\usv_set:nnn {up} {num} {48} +\usv_set:nnn {up} {Latin}{65} +\usv_set:nnn {up} {latin}{97} +\usv_set:nnn {up} {Greek}{"391} +\usv_set:nnn {up} {greek}{"3B1} +\usv_set:nnn {it} {Latin}{"1D434} +\usv_set:nnn {it} {latin}{"1D44E} +\usv_set:nnn {it} {Greek}{"1D6E2} +\usv_set:nnn {it} {greek}{"1D6FC} +\usv_set:nnn {bb} {num} {"1D7D8} +\usv_set:nnn {bb} {Latin}{"1D538} +\usv_set:nnn {bb} {latin}{"1D552} +\usv_set:nnn {scr} {Latin}{"1D49C} +\usv_set:nnn {cal} {Latin}{"1D49C} +\usv_set:nnn {scr} {latin}{"1D4B6} \usv_set:nnn {frak}{Latin}{"1D504} \usv_set:nnn {frak}{latin}{"1D51E} -\usv_set:nnn {sf}{num}{"1D7E2} -\usv_set:nnn {sfup}{num}{"1D7E2} -\usv_set:nnn {sfit}{num}{"1D7E2} +\usv_set:nnn {sf} {num} {"1D7E2} +\usv_set:nnn {sfup}{num} {"1D7E2} +\usv_set:nnn {sfit}{num} {"1D7E2} \usv_set:nnn {sfup}{Latin}{"1D5A0} -\usv_set:nnn {sf}{Latin}{"1D5A0} +\usv_set:nnn {sf} {Latin}{"1D5A0} \usv_set:nnn {sfup}{latin}{"1D5BA} -\usv_set:nnn {sf}{latin}{"1D5BA} +\usv_set:nnn {sf} {latin}{"1D5BA} \usv_set:nnn {sfit}{Latin}{"1D608} \usv_set:nnn {sfit}{latin}{"1D622} -\usv_set:nnn {tt}{num}{"1D7F6} -\usv_set:nnn {tt}{Latin}{"1D670} -\usv_set:nnn {tt}{latin}{"1D68A} +\usv_set:nnn {tt} {num} {"1D7F6} +\usv_set:nnn {tt} {Latin}{"1D670} +\usv_set:nnn {tt} {latin}{"1D68A} % \end{macrocode} % Bold: % \begin{macrocode} -\usv_set:nnn {bf}{num}{"1D7CE} -\usv_set:nnn {bfup}{num}{"1D7CE} -\usv_set:nnn {bfit}{num}{"1D7CE} -\usv_set:nnn {bfup}{Latin}{"1D400} -\usv_set:nnn {bfup}{latin}{"1D41A} -\usv_set:nnn {bfup}{Greek}{"1D6A8} -\usv_set:nnn {bfup}{greek}{"1D6C2} -\usv_set:nnn {bfit}{Latin}{"1D468} -\usv_set:nnn {bfit}{latin}{"1D482} -\usv_set:nnn {bfit}{Greek}{"1D71C} -\usv_set:nnn {bfit}{greek}{"1D736} +\usv_set:nnn {bf} {num} {"1D7CE} +\usv_set:nnn {bfup} {num} {"1D7CE} +\usv_set:nnn {bfit} {num} {"1D7CE} +\usv_set:nnn {bfup} {Latin}{"1D400} +\usv_set:nnn {bfup} {latin}{"1D41A} +\usv_set:nnn {bfup} {Greek}{"1D6A8} +\usv_set:nnn {bfup} {greek}{"1D6C2} +\usv_set:nnn {bfit} {Latin}{"1D468} +\usv_set:nnn {bfit} {latin}{"1D482} +\usv_set:nnn {bfit} {Greek}{"1D71C} +\usv_set:nnn {bfit} {greek}{"1D736} \usv_set:nnn {bffrak}{Latin}{"1D56C} \usv_set:nnn {bffrak}{latin}{"1D586} -\usv_set:nnn {bfscr}{Latin}{"1D4D0} -\usv_set:nnn {bfcal}{Latin}{"1D4D0} -\usv_set:nnn {bfscr}{latin}{"1D4EA} -\usv_set:nnn {bfsf}{num}{"1D7EC} -\usv_set:nnn {bfsfup}{num}{"1D7EC} -\usv_set:nnn {bfsfit}{num}{"1D7EC} +\usv_set:nnn {bfscr} {Latin}{"1D4D0} +\usv_set:nnn {bfcal} {Latin}{"1D4D0} +\usv_set:nnn {bfscr} {latin}{"1D4EA} +\usv_set:nnn {bfsf} {num} {"1D7EC} +\usv_set:nnn {bfsfup}{num} {"1D7EC} +\usv_set:nnn {bfsfit}{num} {"1D7EC} \usv_set:nnn {bfsfup}{Latin}{"1D5D4} \usv_set:nnn {bfsfup}{latin}{"1D5EE} \usv_set:nnn {bfsfup}{Greek}{"1D756} @@ -1616,68 +1614,68 @@ end % \end{macrocode} % % \begin{macrocode} -\usv_set:nnn {bfsf}{Latin}{ \bool_if:NTF \g_um_upLatin_bool \g_um_bfsfup_Latin_usv \g_um_bfsfit_Latin_usv } -\usv_set:nnn {bfsf}{latin}{ \bool_if:NTF \g_um_uplatin_bool \g_um_bfsfup_latin_usv \g_um_bfsfit_latin_usv } -\usv_set:nnn {bfsf}{Greek}{ \bool_if:NTF \g_um_upGreek_bool \g_um_bfsfup_Greek_usv \g_um_bfsfit_Greek_usv } -\usv_set:nnn {bfsf}{greek}{ \bool_if:NTF \g_um_upgreek_bool \g_um_bfsfup_greek_usv \g_um_bfsfit_greek_usv } -\usv_set:nnn {bf}{Latin}{ \bool_if:NTF \g_um_bfupLatin_bool \g_um_bfup_Latin_usv \g_um_bfit_Latin_usv } -\usv_set:nnn {bf}{latin}{ \bool_if:NTF \g_um_bfuplatin_bool \g_um_bfup_latin_usv \g_um_bfit_latin_usv } -\usv_set:nnn {bf}{Greek}{ \bool_if:NTF \g_um_bfupGreek_bool \g_um_bfup_Greek_usv \g_um_bfit_Greek_usv } -\usv_set:nnn {bf}{greek}{ \bool_if:NTF \g_um_bfupgreek_bool \g_um_bfup_greek_usv \g_um_bfit_greek_usv } +\usv_set:nnn {bfsf}{Latin}{ \bool_if:NTF \g_um_upLatin_bool \g_um_bfsfup_Latin_usv \g_um_bfsfit_Latin_usv } +\usv_set:nnn {bfsf}{latin}{ \bool_if:NTF \g_um_uplatin_bool \g_um_bfsfup_latin_usv \g_um_bfsfit_latin_usv } +\usv_set:nnn {bfsf}{Greek}{ \bool_if:NTF \g_um_upGreek_bool \g_um_bfsfup_Greek_usv \g_um_bfsfit_Greek_usv } +\usv_set:nnn {bfsf}{greek}{ \bool_if:NTF \g_um_upgreek_bool \g_um_bfsfup_greek_usv \g_um_bfsfit_greek_usv } +\usv_set:nnn {bf} {Latin}{ \bool_if:NTF \g_um_bfupLatin_bool \g_um_bfup_Latin_usv \g_um_bfit_Latin_usv } +\usv_set:nnn {bf} {latin}{ \bool_if:NTF \g_um_bfuplatin_bool \g_um_bfup_latin_usv \g_um_bfit_latin_usv } +\usv_set:nnn {bf} {Greek}{ \bool_if:NTF \g_um_bfupGreek_bool \g_um_bfup_Greek_usv \g_um_bfit_Greek_usv } +\usv_set:nnn {bf} {greek}{ \bool_if:NTF \g_um_bfupgreek_bool \g_um_bfup_greek_usv \g_um_bfit_greek_usv } % \end{macrocode} % Greek variants: % \begin{macrocode} -\usv_set:nnn {up}{varTheta}{"3F4} -\usv_set:nnn {up}{Digamma}{"3DC} +\usv_set:nnn {up}{varTheta} {"3F4} +\usv_set:nnn {up}{Digamma} {"3DC} \usv_set:nnn {up}{varepsilon}{"3F5} -\usv_set:nnn {up}{vartheta}{"3D1} -\usv_set:nnn {up}{varkappa}{"3F0} -\usv_set:nnn {up}{varphi}{"3D5} -\usv_set:nnn {up}{varrho}{"3F1} -\usv_set:nnn {up}{varpi}{"3D6} -\usv_set:nnn {up}{digamma}{"3DD} +\usv_set:nnn {up}{vartheta} {"3D1} +\usv_set:nnn {up}{varkappa} {"3F0} +\usv_set:nnn {up}{varphi} {"3D5} +\usv_set:nnn {up}{varrho} {"3F1} +\usv_set:nnn {up}{varpi} {"3D6} +\usv_set:nnn {up}{digamma} {"3DD} % \end{macrocode} % Bold: % \begin{macrocode} -\usv_set:nnn {bfup}{varTheta}{"1D6B9} -\usv_set:nnn {bfup}{Digamma}{"1D7CA} +\usv_set:nnn {bfup}{varTheta} {"1D6B9} +\usv_set:nnn {bfup}{Digamma} {"1D7CA} \usv_set:nnn {bfup}{varepsilon}{"1D6DC} -\usv_set:nnn {bfup}{vartheta}{"1D6DD} -\usv_set:nnn {bfup}{varkappa}{"1D6DE} -\usv_set:nnn {bfup}{varphi}{"1D6DF} -\usv_set:nnn {bfup}{varrho}{"1D6E0} -\usv_set:nnn {bfup}{varpi}{"1D6E1} -\usv_set:nnn {bfup}{digamma}{"1D7CB} +\usv_set:nnn {bfup}{vartheta} {"1D6DD} +\usv_set:nnn {bfup}{varkappa} {"1D6DE} +\usv_set:nnn {bfup}{varphi} {"1D6DF} +\usv_set:nnn {bfup}{varrho} {"1D6E0} +\usv_set:nnn {bfup}{varpi} {"1D6E1} +\usv_set:nnn {bfup}{digamma} {"1D7CB} % \end{macrocode} % Italic Greek variants: % \begin{macrocode} -\usv_set:nnn {it}{varTheta}{"1D6F3} +\usv_set:nnn {it}{varTheta} {"1D6F3} \usv_set:nnn {it}{varepsilon}{"1D716} -\usv_set:nnn {it}{vartheta}{"1D717} -\usv_set:nnn {it}{varkappa}{"1D718} -\usv_set:nnn {it}{varphi}{"1D719} -\usv_set:nnn {it}{varrho}{"1D71A} -\usv_set:nnn {it}{varpi}{"1D71B} +\usv_set:nnn {it}{vartheta} {"1D717} +\usv_set:nnn {it}{varkappa} {"1D718} +\usv_set:nnn {it}{varphi} {"1D719} +\usv_set:nnn {it}{varrho} {"1D71A} +\usv_set:nnn {it}{varpi} {"1D71B} % \end{macrocode} % Bold italic: % \begin{macrocode} -\usv_set:nnn {bfit}{varTheta}{"1D72D} +\usv_set:nnn {bfit}{varTheta} {"1D72D} \usv_set:nnn {bfit}{varepsilon}{"1D750} -\usv_set:nnn {bfit}{vartheta}{"1D751} -\usv_set:nnn {bfit}{varkappa}{"1D752} -\usv_set:nnn {bfit}{varphi}{"1D753} -\usv_set:nnn {bfit}{varrho}{"1D754} -\usv_set:nnn {bfit}{varpi}{"1D755} +\usv_set:nnn {bfit}{vartheta} {"1D751} +\usv_set:nnn {bfit}{varkappa} {"1D752} +\usv_set:nnn {bfit}{varphi} {"1D753} +\usv_set:nnn {bfit}{varrho} {"1D754} +\usv_set:nnn {bfit}{varpi} {"1D755} % \end{macrocode} % Bold sans: % \begin{macrocode} -\usv_set:nnn {bfsfup}{varTheta}{"1D767} +\usv_set:nnn {bfsfup}{varTheta} {"1D767} \usv_set:nnn {bfsfup}{varepsilon}{"1D78A} -\usv_set:nnn {bfsfup}{vartheta}{"1D78B} -\usv_set:nnn {bfsfup}{varkappa}{"1D78C} -\usv_set:nnn {bfsfup}{varphi}{"1D78D} -\usv_set:nnn {bfsfup}{varrho}{"1D78E} -\usv_set:nnn {bfsfup}{varpi}{"1D78F} +\usv_set:nnn {bfsfup}{vartheta} {"1D78B} +\usv_set:nnn {bfsfup}{varkappa} {"1D78C} +\usv_set:nnn {bfsfup}{varphi} {"1D78D} +\usv_set:nnn {bfsfup}{varrho} {"1D78E} +\usv_set:nnn {bfsfup}{varpi} {"1D78F} % \end{macrocode} % Bold sans italic: % \begin{macrocode} @@ -1851,6 +1849,10 @@ end \usv_set:nnn {frak}{Z}{"2128} % \end{macrocode} % +% \begin{macrocode} +%</package&(XE|LU)> +% \end{macrocode} +% % \subsection{STIX fonts} % % Version 1.0.0 of the STIX fonts contains a number of @@ -1861,7 +1863,6 @@ end % But we still want to be able to use them if possible. % % \begin{macrocode} -%</package&(XE|LU)> %<*stix> % \end{macrocode} % @@ -2089,6 +2090,9 @@ end % % \begin{macrocode} %</stix> +% \end{macrocode} +% +% \begin{macrocode} %<*package&(XE|LU)> % \end{macrocode} % @@ -2096,7 +2100,8 @@ end % % The requirement of only setting up the maths fonts in the preamble is now removed. The following list might be overly ambitious. % \begin{macrocode} -\tl_map_inline:nn { +\tl_map_inline:nn + { \new@mathgroup\cdp@list\cdp@elt\DeclareMathSizes \@DeclareMathSizes\newmathalphabet\newmathalphabet@@\newmathalphabet@@@ \DeclareMathVersion\define@mathalphabet\define@mathgroup\addtoversion @@ -2110,9 +2115,10 @@ end \@DeclareMathDelimiter\@xDeclareMathDelimiter\set@mathdelimiter \set@@mathdelimiter\DeclareMathRadical\mathchar@type \DeclareSymbolFontAlphabet\DeclareSymbolFontAlphabet@ -}{ + } + { \tl_remove_once:Nn \@preamblecmds {\do#1} -} + } % \end{macrocode} % % \section{Fundamentals} @@ -2140,40 +2146,13 @@ end % There are a bunch of tests to perform to process the various characters. % The following assignments should all be fairly straightforward. % \begin{macrocode} -\cs_set:Nn \um_set_mathsymbol:nNNn { +\cs_set:Nn \um_set_mathsymbol:nNNn + { \tl_case:Nnn #3 { - \mathop { \um_set_big_operator:nnn {#1} {#2} {#4} } - \mathopen - { - \tl_if_in:NnTF \l_um_radicals_tl {#2} - { - \cs_gset_protected_nopar:cpx {\cs_to_str:N #2 sign} - { \um_radical:nn {#1} {#4} } - \tl_set:cn {l_um_radical_\cs_to_str:N #2_tl} {\use:c{sym #1}~ #4} - } - { - \um_set_delcode:nnn {#1} {#4} {#4} - \um_set_mathcode:nnn {#4} \mathopen {#1} - \cs_gset_protected_nopar:Npx #2 - { \um_delimiter:Nnn \mathopen {#1} {#4} } - } - } - \mathclose - { - \um_set_delcode:nnn {#1} {#4} {#4} - \um_set_mathcode:nnn {#4} \mathclose {#1} - \cs_gset_protected_nopar:Npx #2 - { \um_delimiter:Nnn \mathclose {#1} {#4} } - } - \mathfence - { - \um_set_mathcode:nnn {#4} {#3} {#1} - \um_set_delcode:nnn {#1} {#4} {#4} - \cs_gset_protected_nopar:cpx {l \cs_to_str:N #2} - { \um_delimiter:Nnn \mathopen {#1} {#4} } - \cs_gset_protected_nopar:cpx {r \cs_to_str:N #2} - { \um_delimiter:Nnn \mathclose {#1} {#4} } - } + \mathop { \um_set_big_operator:nnn {#1} {#2} {#4} } + \mathopen { \um_set_math_open:nnn {#1} {#2} {#4} } + \mathclose { \um_set_math_close:nnn {#1} {#2} {#4} } + \mathfence { \um_set_math_fence:nnnn {#1} {#2} {#3} {#4} } \mathaccent { \cs_gset_protected_nopar:Npx #2 { \um_accent:nnn {fixed} {#1} {#4} } } \mathbotaccent @@ -2191,7 +2170,7 @@ end }{ \um_set_mathcode:nnn {#4} {#3} {#1} } -} + } % \end{macrocode} % \end{macro} % @@ -2231,86 +2210,79 @@ end % (~\cs{int} $\to$~) $\int$ $\to$ \cs{int_sym} $\to$ \cs{intop} % \end{quote} % \begin{macrocode} -\cs_new:Nn \um_set_big_operator:nnn { +\cs_new:Nn \um_set_big_operator:nnn + { \group_begin: \char_set_catcode_active:n {#3} \char_gmake_mathactive:n {#3} \um_active_char_set:wc #3 \q_nil { \cs_to_str:N #2 _sym } \group_end: \um_set_mathchar:cNnn {\cs_to_str:N #2 op} \mathop {#1} {#3} - \cs_gset:cpx { \cs_to_str:N #2 _sym } { + \cs_gset:cpx { \cs_to_str:N #2 _sym } + { \exp_not:c { \cs_to_str:N #2 op } \exp_not:n { \tl_if_in:NnT \l_um_nolimits_tl {#2} \nolimits } - } -} + } + } % \end{macrocode} % \end{macro} % -% -% \begin{macro}{\um_set_mathcode:nnnn} -% \begin{macro}{\um_set_mathcode:nnn} -% \begin{macro}{\um_set_mathchar:NNnn} -% \begin{macro}{\um_set_mathchar:cNnn} -% \begin{macro}{\um_set_delcode:nnn} -% \begin{macro}{\um_radical:nn} -% \begin{macro}{\um_delimiter:Nnn} -% \begin{macro}{\um_accent:nnn} -% \begin{macro}{\um_accent_keyword:} -% These are all wrappers for the primitive commands that take numerical -% input only. +% \begin{macro}{\um_set_math_open:nnn} +% \darg{Symbol font name} +% \darg{Macro to assign} +% \darg{Glyph slot} % \begin{macrocode} -\cs_set:Npn \um_set_mathcode:nnnn #1#2#3#4 { - \Umathcode \int_eval:n {#1} = - \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#4} \scan_stop: -} -\cs_set:Npn \um_set_mathcode:nnn #1#2#3 { - \Umathcode \int_eval:n {#1} = - \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#1} \scan_stop: -} -\cs_set:Npn \um_set_mathchar:NNnn #1#2#3#4 { - \Umathchardef #1 = - \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#4} \scan_stop: -} -\cs_new:Nn \um_set_delcode:nnn { - \Udelcode#2 = \csname sym#1\endcsname #3 -} -\cs_new:Nn \um_radical:nn { - \Uradical \csname sym#1\endcsname #2 \scan_stop: -} -\cs_new:Nn \um_delimiter:Nnn { - \Udelimiter \mathchar@type#1 \csname sym#2\endcsname #3 \scan_stop: -} -\cs_new:Nn \um_accent:nnn { - \Umathaccent #1~ \mathchar@type\mathaccent \use:c { sym #2 } #3 \scan_stop: -} +\cs_new:Nn \um_set_math_open:nnn + { + \tl_if_in:NnTF \l_um_radicals_tl {#2} + { + \cs_gset_protected_nopar:cpx {\cs_to_str:N #2 sign} + { \um_radical:nn {#1} {#3} } + \tl_set:cn {l_um_radical_\cs_to_str:N #2_tl} {\use:c{sym #1}~ #3} + } + { + \um_set_delcode:nnn {#1} {#3} {#3} + \um_set_mathcode:nnn {#3} \mathopen {#1} + \cs_gset_protected_nopar:Npx #2 + { \um_delimiter:Nnn \mathopen {#1} {#3} } + } + } % \end{macrocode} +% \end{macro} % +% \begin{macro}{\um_set_math_close:nnn} +% \darg{Symbol font name} +% \darg{Macro to assign} +% \darg{Glyph slot} % \begin{macrocode} -\cs_generate_variant:Nn \um_set_mathchar:NNnn {c} +\cs_new:Nn \um_set_math_close:nnn + { + \um_set_delcode:nnn {#1} {#3} {#3} + \um_set_mathcode:nnn {#3} \mathclose {#1} + \cs_gset_protected_nopar:Npx #2 + { \um_delimiter:Nnn \mathclose {#1} {#3} } + } % \end{macrocode} % \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} % -% -% \begin{macro}{\char_gmake_mathactive:N} -% \begin{macro}{\char_gmake_mathactive:n} +% \begin{macro}{\um_set_math_fence:nnnn} +% \darg{Symbol font name} +% \darg{Macro to assign} +% \darg{Type, \eg, \cmd\mathalpha} +% \darg{Glyph slot} % \begin{macrocode} -\cs_new:Nn \char_gmake_mathactive:N { - \global\mathcode `#1 = "8000 \scan_stop: -} -\cs_new:Nn \char_gmake_mathactive:n { - \global\mathcode #1 = "8000 \scan_stop: -} +\cs_new:Nn \um_set_math_fence:nnnn + { + \um_set_mathcode:nnn {#4} {#3} {#1} + \um_set_delcode:nnn {#1} {#4} {#4} + \cs_gset_protected_nopar:cpx {l \cs_to_str:N #2} + { \um_delimiter:Nnn \mathopen {#1} {#4} } + \cs_gset_protected_nopar:cpx {r \cs_to_str:N #2} + { \um_delimiter:Nnn \mathclose {#1} {#4} } + } % \end{macrocode} % \end{macro} -% \end{macro} +% % % % \subsection{The main \cs{setmathfont} macro} @@ -2323,48 +2295,6 @@ end % \doarg{font features} % \darg{font name} % \begin{macrocode} -\cs_new:Nn \um_init: { - \bool_set_true:N \l_um_ot_math_bool -% \end{macrocode} -% \begin{itemize} -% \item Erase any conception \LaTeX\ has of previously defined math symbol fonts; -% this allows \cmd\DeclareSymbolFont\ at any point in the document. -% \begin{macrocode} - \cs_set_eq:NN \glb@currsize \scan_stop: -% \end{macrocode} -% \item To start with, assume we're defining the font for every math symbol character. -% \begin{macrocode} - \bool_set_true:N \l_um_init_bool - \seq_clear:N \l_um_char_range_seq - \clist_clear:N \l_um_char_num_range_clist - \seq_clear:N \l_um_mathalph_seq - \seq_clear:N \l_um_missing_alph_seq -% \end{macrocode} -% \item By default use the `normal' math version -% \begin{macrocode} - \tl_set:Nn \l_um_mversion_tl {normal} -% \end{macrocode} -% \item Other range initialisations -% \begin{macrocode} - \tl_set:Nn \um_symfont_tl {operators} - \cs_set_eq:NN \_um_sym:nnn \um_process_symbol_noparse:nnn - \cs_set_eq:NN \um_set_mathalphabet_char:Nnn \um_mathmap_noparse:Nnn - \cs_set_eq:NN \um_remap_symbol:nnn \um_remap_symbol_noparse:nnn - \cs_set_eq:NN \um_maybe_init_alphabet:n \um_init_alphabet:n - \cs_set_eq:NN \um_map_char_single:nn \um_map_char_noparse:nn - \cs_set_eq:NN \um_assign_delcode:nn \um_assign_delcode_noparse:nn - \cs_set_eq:NN \um_make_mathactive:nNN \um_make_mathactive_noparse:nNN -% \end{macrocode} -% \item Define default font features for the script and scriptscript font. -% \begin{macrocode} - \tl_set:Nn \l_um_script_features_tl {Style=MathScript} - \tl_set:Nn \l_um_sscript_features_tl {Style=MathScriptScript} - \tl_set_eq:NN \l_um_script_font_tl \l_um_fontname_tl - \tl_set_eq:NN \l_um_sscript_font_tl \l_um_fontname_tl -% \end{macrocode} -% \end{itemize} -% \begin{macrocode} -} \DeclareDocumentCommand \setmathfont { O{} m } { \tl_set:Nn \l_um_fontname_tl {#2} \um_init: @@ -2402,7 +2332,7 @@ end \tl_set:Nn \l_um_tmpa_tl {normal} \tl_if_eq:NNT \l_um_mversion_tl \l_um_tmpa_tl { - \SetSymbolFont{\um_symfont_tl}{bold} + \SetSymbolFont{\um_symfont_tl}{bold} {\encodingdefault}{\l_um_family_tl}{\bfdefault}{\updefault} } % \end{macrocode} @@ -2410,12 +2340,13 @@ end % values for this font, % and set defaults for math fams two and three for legacy compatibility: % \begin{macrocode} - \bool_if:nT {\l_um_ot_math_bool && !\g_um_mainfont_already_set_bool} { + \bool_if:nT { \l_um_ot_math_bool && !\g_um_mainfont_already_set_bool } + { \bool_set_true:N \g_um_mainfont_already_set_bool \um_declare_math_sizes: \um_setup_legacy_fam_two: \um_setup_legacy_fam_three: - } + } % \end{macrocode} % And now we input every single maths char. % \begin{macrocode} @@ -2444,9 +2375,65 @@ end % \end{macrocode} % \end{macro} % +% Backward compatibility alias. +% \begin{macrocode} +\cs_set_eq:NN \resetmathfont \setmathfont +% \end{macrocode} +% +% \begin{macro}{\um_init:} +% \begin{macrocode} +\cs_new:Nn \um_init: + { +% \end{macrocode} +% \begin{itemize} +% \item Initially assume we're using a proper OpenType font with unicode maths. +% \begin{macrocode} + \bool_set_true:N \l_um_ot_math_bool +% \end{macrocode} +% \item Erase any conception \LaTeX\ has of previously defined math symbol fonts; +% this allows \cmd\DeclareSymbolFont\ at any point in the document. +% \begin{macrocode} + \cs_set_eq:NN \glb@currsize \scan_stop: +% \end{macrocode} +% \item To start with, assume we're defining the font for every math symbol character. +% \begin{macrocode} + \bool_set_true:N \l_um_init_bool + \seq_clear:N \l_um_char_range_seq + \clist_clear:N \l_um_char_num_range_clist + \seq_clear:N \l_um_mathalph_seq + \seq_clear:N \l_um_missing_alph_seq +% \end{macrocode} +% \item By default use the `normal' math version. +% \begin{macrocode} + \tl_set:Nn \l_um_mversion_tl {normal} +% \end{macrocode} +% \item Other range initialisations. +% \begin{macrocode} + \tl_set:Nn \um_symfont_tl {operators} + \cs_set_eq:NN \_um_sym:nnn \um_process_symbol_noparse:nnn + \cs_set_eq:NN \um_set_mathalphabet_char:Nnn \um_mathmap_noparse:Nnn + \cs_set_eq:NN \um_remap_symbol:nnn \um_remap_symbol_noparse:nnn + \cs_set_eq:NN \um_maybe_init_alphabet:n \um_init_alphabet:n + \cs_set_eq:NN \um_map_char_single:nn \um_map_char_noparse:nn + \cs_set_eq:NN \um_assign_delcode:nn \um_assign_delcode_noparse:nn + \cs_set_eq:NN \um_make_mathactive:nNN \um_make_mathactive_noparse:nNN +% \end{macrocode} +% \item Define default font features for the script and scriptscript font. +% \begin{macrocode} + \tl_set:Nn \l_um_script_features_tl {Style=MathScript} + \tl_set:Nn \l_um_sscript_features_tl {Style=MathScriptScript} + \tl_set_eq:NN \l_um_script_font_tl \l_um_fontname_tl + \tl_set_eq:NN \l_um_sscript_font_tl \l_um_fontname_tl +% \end{macrocode} +% \end{itemize} +% \begin{macrocode} + } +% \end{macrocode} +% \end{macro} +% % % \begin{macro}{\um_declare_math_sizes:} -% Set the math sizes according to the recommend font parameters: +% Set the math sizes according to the recommended font parameters: % \begin{macrocode} \cs_new:Nn \um_declare_math_sizes: { @@ -2463,6 +2450,7 @@ end % % % \begin{macro}{\um_setup_legacy_fam_two:} +% \TeX\ won't load the same font twice at the same scale, so we need to magnify this one by an imperceptable amount. % \begin{macrocode} \cs_new:Nn \um_setup_legacy_fam_two: { @@ -2470,7 +2458,8 @@ end { \l_um_font_keyval_tl, Scale=1.00001, - FontAdjustment={ + FontAdjustment = + { \fontdimen8\font= \um_get_fontparam:nn {43} {FractionNumeratorDisplayStyleShiftUp}\relax \fontdimen9\font= \um_get_fontparam:nn {42} {FractionNumeratorShiftUp}\relax \fontdimen10\font=\um_get_fontparam:nn {32} {StackTopShiftUp}\relax @@ -2486,7 +2475,7 @@ end \fontdimen20\font=0pt\relax % delim1 = FractionDelimiterDisplaySize \fontdimen21\font=0pt\relax % delim2 = FractionDelimiterSize \fontdimen22\font=\um_get_fontparam:nn {15} {AxisHeight}\relax - } + } } {\l_um_fontname_tl} \SetSymbolFont{symbols}{\l_um_mversion_tl} {\encodingdefault}{\l_um_family_tl}{\mddefault}{\updefault} @@ -2502,6 +2491,7 @@ end % \end{macro} % % \begin{macro}{\um_setup_legacy_fam_three:} +% Similarly, this font is shrunk by an imperceptable amount for \TeX\ to load it again. % \begin{macrocode} \cs_new:Nn \um_setup_legacy_fam_three: { @@ -2538,31 +2528,33 @@ end %<LU> { \directlua{fontspec.mathfontdimen("l_um_font","#2")} } % \end{macrocode} % -% Backward compatibility alias. -% \begin{macrocode} -\cs_set_eq:NN \resetmathfont \setmathfont -% \end{macrocode} % % % \begin{macro}{\um_fontspec_select_font:} % Select the font with \cs{fontspec} and define \cs{l_um_font} from it. % \begin{macrocode} -\cs_new:Nn \um_fontspec_select_font: { +\cs_new:Nn \um_fontspec_select_font: + { \tl_set:Nx \l_um_font_keyval_tl { %<LU> Renderer = Basic, BoldItalicFont = {}, ItalicFont = {}, Script = Math, - SizeFeatures = { - {Size = \tf@size-} , - {Size = \sf@size-\tf@size , + SizeFeatures = + { + { + Size = \tf@size- + } , + { + Size = \sf@size-\tf@size , Font = \l_um_script_font_tl , \l_um_script_features_tl } , - {Size = -\sf@size , + { + Size = -\sf@size , Font = \l_um_sscript_font_tl , \l_um_sscript_features_tl } - }, + } , \l_um_unknown_keys_clist } \fontspec_set_fontface:NNxn \l_um_font \l_um_family_tl @@ -2574,7 +2566,7 @@ end \fontfamily{\l_um_family_tl}\selectfont \fontspec_if_script:nF {math} {\bool_gset_false:N \l_um_ot_math_bool} \group_end: -} + } % \end{macrocode} % \end{macro} % @@ -2588,16 +2580,19 @@ end % a subset of the Unicode glyphs are to be defined. % See \secref{rangeproc} for the code that enables this. % \begin{macrocode} -\cs_set:Npn \um_process_symbol_noparse:nnn #1#2#3 { +\cs_set:Nn \um_process_symbol_noparse:nnn + { \um_set_mathsymbol:nNNn {\um_symfont_tl} #2#3{#1} -} + } % \end{macrocode} % \begin{macrocode} -\cs_set:Npn \um_process_symbol_parse:nnn #1#2#3 { - \um_if_char_spec:nNNT{#1}{#2}{#3}{ +\cs_set:Nn \um_process_symbol_parse:nnn + { + \um_if_char_spec:nNNT{#1}{#2}{#3} + { \um_process_symbol_noparse:nnn {#1}{#2}{#3} - } -} + } + } % \end{macrocode} % \end{macro} % \end{macro} @@ -2609,28 +2604,34 @@ end % This function is used to define the mathcodes for those chars which should % be mapped to a different glyph than themselves. % \begin{macrocode} -\cs_new:Npn \um_remap_symbols: { +\cs_new:Npn \um_remap_symbols: + { \um_remap_symbol:nnn{`\-}{\mathbin}{"02212}% hyphen to minus \um_remap_symbol:nnn{`\*}{\mathbin}{"02217}% text asterisk to "centred asterisk" - \bool_if:NF \g_um_literal_colon_bool { + \bool_if:NF \g_um_literal_colon_bool + { \um_remap_symbol:nnn{`\:}{\mathrel}{"02236}% colon to ratio (i.e., punct to rel) - } -} + } + } % \end{macrocode} % \end{macro} % Where |\um_remap_symbol:nnn| is defined to be one of these two, depending % on the range setup: % \begin{macrocode} -\cs_new:Nn \um_remap_symbol_parse:nnn { - \um_if_char_spec:nNNT {#3} {\@nil} {#2} { +\cs_new:Nn \um_remap_symbol_parse:nnn + { + \um_if_char_spec:nNNT {#3} {\@nil} {#2} + { \um_remap_symbol_noparse:nnn {#1} {#2} {#3} - } -} -\cs_new:Nn \um_remap_symbol_noparse:nnn { - \clist_map_inline:nn {#1} { + } + } +\cs_new:Nn \um_remap_symbol_noparse:nnn + { + \clist_map_inline:nn {#1} + { \um_set_mathcode:nnnn {##1} {#2} {\um_symfont_tl} {#3} - } -} + } + } % \end{macrocode} % \end{macro} % \end{macro} @@ -2643,7 +2644,8 @@ end % % \begin{macro}{\um_setup_mathactives:} % \begin{macrocode} -\cs_new:Npn \um_setup_mathactives: { +\cs_new:Npn \um_setup_mathactives: + { \um_make_mathactive:nNN {"2032} \um_prime_single_mchar \mathord \um_make_mathactive:nNN {"2033} \um_prime_double_mchar \mathord \um_make_mathactive:nNN {"2034} \um_prime_triple_mchar \mathord @@ -2653,7 +2655,7 @@ end \um_make_mathactive:nNN {"2037} \um_backprime_triple_mchar \mathord \um_make_mathactive:nNN {`\'} \mathstraightquote \mathord \um_make_mathactive:nNN {`\`} \mathbacktick \mathord -} + } % \end{macrocode} % \end{macro} % @@ -2680,14 +2682,17 @@ end % % \begin{macro}{\um_assign_delcode:nn} % \begin{macrocode} -\cs_new:Nn \um_assign_delcode_noparse:nn { +\cs_new:Nn \um_assign_delcode_noparse:nn + { \um_set_delcode:nnn \um_symfont_tl {#1} {#2} -} -\cs_new:Nn \um_assign_delcode_parse:nn { - \um_if_char_spec:nNNT {#2}{\@nil}{\@nil} { + } +\cs_new:Nn \um_assign_delcode_parse:nn + { + \um_if_char_spec:nNNT {#2} {\@nil} {\@nil} + { \um_assign_delcode_noparse:nn {#1} {#2} - } -} + } + } % \end{macrocode} % \end{macro} % @@ -2701,13 +2706,14 @@ end % % % +% \begin{macro}{\um_setup_delcodes:} % Some symbols that aren't mathopen/mathclose still need to have delimiter codes assigned. % The list of vertical arrows may be incomplete. % On the other hand, many fonts won't support them all being stretchy. % And some of them are probably not meant to stretch, either. But adding them here doesn't hurt. -% \begin{macro}{\um_setup_delcodes:} % \begin{macrocode} -\cs_new:Npn \um_setup_delcodes: { +\cs_new:Npn \um_setup_delcodes: + { \um_assign_delcode:nn {`\.} {\c_zero} % ensure \left. and \right. work \um_assign_delcode:nn {`\/} {\g_um_slash_delimiter_usv} \um_assign_delcode:nn {"2044} {\g_um_slash_delimiter_usv} % fracslash @@ -2742,7 +2748,7 @@ end \um_assign_delcode:n {"21E9} % down white arrow \um_assign_delcode:n {"21EA} % up white arrow from bar \um_assign_delcode:n {"21F3} % updown white arrow -} + } % \end{macrocode} % \end{macro} % @@ -2770,13 +2776,14 @@ end % integrals such as $\iiiint$, but that might be a matter of preference. % \begin{macrocode} \tl_new:N \l_um_nolimits_tl -\tl_set:Nn \l_um_nolimits_tl { +\tl_set:Nn \l_um_nolimits_tl + { \int\iint\iiint\iiiint\oint\oiint\oiiint \intclockwise\varointclockwise\ointctrclockwise\sumint \intbar\intBar\fint\cirfnint\awint\rppolint \scpolint\npolint\pointint\sqint\intlarhk\intx \intcap\intcup\upint\lowint -} + } % \end{macrocode} % \end{macro} % @@ -2784,9 +2791,10 @@ end % This macro appends material to the macro containing the list of operators % that don't take limits. % \begin{macrocode} -\DeclareDocumentCommand \addnolimits {m} { +\DeclareDocumentCommand \addnolimits {m} + { \tl_put_right:Nn \l_um_nolimits_tl {#1} -} + } % \end{macrocode} % \end{macro} % @@ -2794,9 +2802,10 @@ end % Can this macro be given a better name? % It removes an item from the nolimits list. % \begin{macrocode} -\DeclareDocumentCommand \removenolimits {m} { +\DeclareDocumentCommand \removenolimits {m} + { \tl_remove_all:Nn \l_um_nolimits_tl {#1} -} + } % \end{macrocode} % \end{macro} % @@ -2971,9 +2980,10 @@ end % The \LuaTeX\ font parameter name is produced by removing all underscores and prefixing the result with |luatexUmath|. % The \XeTeX\ font dimension numbers must be integer constants. % \begin{macrocode} -\cs_new_protected_nopar:Npn \um_font_param:nnn #1 #2 #3 { +\cs_new_protected_nopar:Nn \um_font_param:nnn + { \um_font_param:nnnnn { #1 } { #2 } { #2 } { #3 } { #3 } -} + } % \end{macrocode} % \end{macro} % @@ -2984,9 +2994,10 @@ end % The \LuaTeX\ font parameter name is produced by removing all underscores and prefixing the result with |luatexUmath|. % The \XeTeX\ font dimension number must be an integer constant. % \begin{macrocode} -\cs_new_protected_nopar:Npn \um_font_param:nn #1 #2 { +\cs_new_protected_nopar:Nn \um_font_param:nn + { \um_font_param:nnnnn { #1 } { #2 } { #2 } { #2 } { #2 } -} + } % \end{macrocode} % \end{macro} % @@ -3008,24 +3019,28 @@ end %<*XE> \cs_new_protected_nopar:Nn \um_font_param_aux:NNnnnn { - \cs_new_nopar:Npn #1 ##1 { + \cs_new_nopar:Npn #1 ##1 + { \um_font_dimen:Nnnnn ##1 { #3 } { #4 } { #5 } { #6 } - } - \cs_new_protected_nopar:Npn #2 ##1 ##2 { + } + \cs_new_protected_nopar:Npn #2 ##1 ##2 + { #1 ##1 \dim_eval:n { ##2 } - } + } } \cs_generate_variant:Nn \um_font_param_aux:NNnnnn { cc } %</XE> %<*LU> \cs_new_protected_nopar:Nn \um_font_param_aux:NNN { - \cs_new_nopar:Npn #1 ##1 { + \cs_new_nopar:Npn #1 ##1 + { #3 ##1 - } - \cs_new_protected_nopar:Npn #2 ##1 ##2 { + } + \cs_new_protected_nopar:Npn #2 ##1 ##2 + { #3 ##1 \dim_eval:n { ##2 } - } + } } \cs_generate_variant:Nn \um_font_param_aux:NNN { ccc } %</LU> @@ -3137,12 +3152,12 @@ end % \subsection{Script and scriptscript font options} % \begin{macrocode} \keys_define:nn {unicode-math} -{ + { script-features .tl_set:N = \l_um_script_features_tl , sscript-features .tl_set:N = \l_um_sscript_features_tl , script-font .tl_set:N = \l_um_script_font_tl , sscript-font .tl_set:N = \l_um_sscript_font_tl , -} + } % \end{macrocode} % % \subsection{Range processing} @@ -3153,7 +3168,8 @@ end \seq_new:N \l_um_char_range_seq \seq_new:N \l_um_mclass_range_seq \seq_new:N \l_um_cmd_range_seq -\keys_define:nn {unicode-math} { +\keys_define:nn {unicode-math} + { range .code:n = { \bool_set_false:N \l_um_init_bool % \end{macrocode} @@ -3202,7 +3218,12 @@ end } } } -} + } +% \end{macrocode} +% +% \begin{macro}{\g_um_mathclasses_seq} +% Every math class. +% \begin{macrocode} \seq_new:N \g_um_mathclasses_seq \seq_set_from_clist:Nn \g_um_mathclasses_seq { @@ -3211,7 +3232,7 @@ end \mathfence,\mathover,\mathunder,\mathbotaccent } % \end{macrocode} -% +% \end{macro} % % \begin{macro}{\um_if_mathalph_decl:nTF} % Possible forms of input:\\ @@ -3422,10 +3443,11 @@ end % \begin{macro}{\um_new_mathstyle:N} % This function defines a new command like \cs{mathfrak}. % \begin{macrocode} -\cs_new:Nn \um_new_mathstyle:N { +\cs_new:Nn \um_new_mathstyle:N + { \um_prepare_mathstyle:f {\exp_after:wN \use_none:nnnnn \token_to_str:N #1} \seq_put_right:Nn \g_um_mathstyles_seq {#1} -} + } % \end{macrocode} % \end{macro} % @@ -3444,8 +3466,10 @@ end % \end{macro} % % \begin{macrocode} -\AtEndOfPackage{ -\clist_map_inline:nn { +\AtEndOfPackage + { +\clist_map_inline:nn + { {\mathup } {latin,Latin,greek,Greek,num,misc} {\mathup } , {\mathit } {latin,Latin,greek,Greek,misc} {\mathit } , {\mathbb } {latin,Latin,num,misc} {\mathbb } , @@ -3463,19 +3487,20 @@ end {\mathbffrak} {latin,Latin} {\mathbffrak} , {\mathbfsfup} {latin,Latin,greek,Greek,num,misc} {\mathbfsfup} , {\mathbfsfit} {latin,Latin,greek,Greek,misc} {\mathbfsfit} -}{ + } + { \seq_put_right:Nn \g_um_default_mathalph_seq {#1} \exp_after:wN \um_new_mathstyle:N \use_i:nnn #1 -} + } % \end{macrocode} % These are `false' mathstyles that inherit other definitions: % \begin{macrocode} -\um_new_mathstyle:N \mathsf -\um_new_mathstyle:N \mathbf -\um_new_mathstyle:N \mathbfsf + \um_new_mathstyle:N \mathsf + \um_new_mathstyle:N \mathbf + \um_new_mathstyle:N \mathbfsf % \end{macrocode} % \begin{macrocode} -} + } % \end{macrocode} % % @@ -3495,13 +3520,17 @@ end % The flag \cs{l_um_mathstyle_tl} is for other applications to query the % current math style. % \begin{macrocode} -\cs_new:Nn \um_prepare_mathstyle:n { +\cs_new:Nn \um_prepare_mathstyle:n + { \um_init_alphabet:x {#1} - \cs_set:cpn {_um_math#1_aux:n} ##1 { + \cs_set:cpn {_um_math#1_aux:n} ##1 + { \use:c {um_switchto_math#1:} ##1 \egroup - } - \cs_set_protected:cpx {math#1} { - \exp_not:n{ + } + \cs_set_protected:cpx {math#1} + { + \exp_not:n + { \bgroup \mode_if_math:F { @@ -3509,10 +3538,10 @@ end \non@alpherr\expandafter{\csname math#1\endcsname\space} } \tl_set:Nn \l_um_mathstyle_tl {#1} - } + } \exp_not:c {_um_math#1_aux:n} - } -} + } + } \tl_new:N \l_um_mathstyle_tl \cs_generate_variant:Nn \um_prepare_mathstyle:n {f} % \end{macrocode} @@ -3524,18 +3553,20 @@ end % First used with the math alphabet macro is first defined, but then used % later when redefining a particular maths alphabet. % \begin{macrocode} -\cs_set:Npn \um_init_alphabet:n #1 { +\cs_set:Nn \um_init_alphabet:n + { \um_log:nx {alph-initialise} {#1} \cs_set_eq:cN {um_switchto_math#1:} \prg_do_nothing: -} + } \cs_generate_variant:Nn \um_init_alphabet:n {x} % \end{macrocode} % Variants (cannot use |\cs_generate_variant:Nn| because the base function is % defined dynamically.) % \begin{macrocode} -\cs_new:Npn \um_maybe_init_alphabet:V { +\cs_new:Npn \um_maybe_init_alphabet:V + { \exp_args:NV \um_maybe_init_alphabet:n -} + } % \end{macrocode} % \end{macro} % @@ -3551,7 +3582,8 @@ end % This function is called within \cs{setmathfont} to configure the % mapping between characters inside math styles. % \begin{macrocode} -\cs_new:Npn \um_setup_alphabets: { +\cs_new:Npn \um_setup_alphabets: + { % \end{macrocode} % If |range=| has been used to configure styles, those choices will be in % |\l_um_mathalph_seq|. If not, set up the styles implicitly: @@ -3592,7 +3624,7 @@ end \l_um_tmpa_tl \l_um_tmpb_tl \l_um_remap_style_tl } \seq_if_empty:NF \l_um_missing_alph_seq { \um_log:n { missing-alphabets } } -} + } % \end{macrocode} % \end{macro} % @@ -3601,54 +3633,70 @@ end % \darg{Math alphabets, comma separated of \{latin,Latin,greek,Greek,num\}} % \darg{Name of the output math style (usually same as input \texttt{bb})} % \begin{macrocode} -\cs_new:Nn \um_setup_math_alphabet:Nnn { - \tl_set:Nx \l_um_style_tl { +\cs_new:Nn \um_setup_math_alphabet:Nnn + { + \tl_set:Nx \l_um_style_tl + { \exp_after:wN \use_none:nnnnn \token_to_str:N #1 - } + } % \end{macrocode} % First check that at least one of the alphabets for the font shape is defined\dots % \begin{macrocode} - \clist_map_inline:nn {#2} { + \clist_map_inline:nn {#2} + { \tl_set:Nx \l_um_tmpa_tl { \tl_trim_spaces:n {##1} } - \cs_if_exist:cT {um_config_ \l_um_style_tl _\l_um_tmpa_tl :n} { - \str_if_eq_x:nnTF {\l_um_tmpa_tl}{misc} { + \cs_if_exist:cT {um_config_ \l_um_style_tl _\l_um_tmpa_tl :n} + { + \str_if_eq_x:nnTF {\l_um_tmpa_tl}{misc} + { \um_maybe_init_alphabet:V \l_um_style_tl \clist_map_break: - }{ - \um_glyph_if_exist:cT { \um_to_usv:nn {#3}{\l_um_tmpa_tl} }{ + } + { + \um_glyph_if_exist:cT { \um_to_usv:nn {#3}{\l_um_tmpa_tl} } + { \um_maybe_init_alphabet:V \l_um_style_tl \clist_map_break: - } - } - } - } + } + } + } + } % \end{macrocode} % \dots and then loop through them defining the individual ranges: % \begin{macrocode} - \clist_map_inline:nn {#2} { + \clist_map_inline:nn {#2} + { \tl_set:Nx \l_um_tmpa_tl { \tl_trim_spaces:n {##1} } - \cs_if_exist:cT {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} { - \str_if_eq_x:nnTF {\l_um_tmpa_tl}{misc} { + \cs_if_exist:cT {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} + { + \str_if_eq_x:nnTF {\l_um_tmpa_tl}{misc} + { \um_log:nx {setup-alph} {math \l_um_style_tl~(\l_um_tmpa_tl)} \use:c {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} {#3} - }{ - \um_glyph_if_exist:cTF { \um_to_usv:nn {#3}{\l_um_tmpa_tl} } { + } + { + \um_glyph_if_exist:cTF { \um_to_usv:nn {#3}{\l_um_tmpa_tl} } + { \um_log:nx {setup-alph} {math \l_um_style_tl~(\l_um_tmpa_tl)} \use:c {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} {#3} - }{ - \bool_if:NTF \l_um_implicit_alph_bool { - \seq_put_right:Nx \l_um_missing_alph_seq { + } + { + \bool_if:NTF \l_um_implicit_alph_bool + { + \seq_put_right:Nx \l_um_missing_alph_seq + { \@backslashchar math \l_um_style_tl \space (\tl_use:c{c_um_math_alphabet_name_ \l_um_tmpa_tl _tl}) - } - }{ + } + } + { \use:c {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} {up} - } - } - } - } - } -} + } + } + } + } + } + } \cs_generate_variant:Nn \um_setup_math_alphabet:Nnn {VVV} % \end{macrocode} % \end{macro} @@ -3677,17 +3725,20 @@ end % \begin{macro}{\um_map_char_noparse:nn} % \begin{macro}{\um_map_char_parse:nn} % \begin{macrocode} -\cs_new:Nn \um_map_char_noparse:nn { +\cs_new:Nn \um_map_char_noparse:nn + { \um_set_mathcode:nnnn {#1}{\mathalpha}{\um_symfont_tl}{#2} -} + } % \end{macrocode} % % \begin{macrocode} -\cs_new:Nn \um_map_char_parse:nn { - \um_if_char_spec:nNNT {#1} {\@nil} {\mathalpha} { +\cs_new:Nn \um_map_char_parse:nn + { + \um_if_char_spec:nNNT {#1} {\@nil} {\mathalpha} + { \um_map_char_noparse:nn {#1}{#2} - } -} + } + } % \end{macrocode} % \end{macro} % \end{macro} @@ -3697,18 +3748,21 @@ end % \darg{from alphabet(s)} % \darg{to alphabet} % \begin{macrocode} -\cs_new:Nn \um_map_char_single:nnn { +\cs_new:Nn \um_map_char_single:nnn + { \um_map_char_single:cc { \um_to_usv:nn {#1}{#3} } { \um_to_usv:nn {#2}{#3} } -} -\cs_set:Npn \um_map_single:nnn #1#2#3 { + } +\cs_set:Nn \um_map_single:nnn + { \cs_if_exist:cT { \um_to_usv:nn {#3} {#1} } { - \clist_map_inline:nn {#2} { + \clist_map_inline:nn {#2} + { \um_map_char_single:nnn {##1} {#3} {#1} - } + } } -} + } % \end{macrocode} % \end{macro} % @@ -3720,43 +3774,51 @@ end % \darg{Alphabet name (Latin)} % First the function with numbers: % \begin{macrocode} -\cs_set:Npn \um_map_chars_range:nnn #1#2#3 { +\cs_set:Nn \um_map_chars_range:nnn + { \int_step_inline:nnnn {0}{1}{#1-1} { \um_map_char_single:nn {#2+##1}{#3+##1} } -} + } \cs_generate_variant:Nn \um_map_chars_range:nnn {ncc} % \end{macrocode} % And the wrapper with names: % \begin{macrocode} -\cs_new:Nn \um_map_chars_range:nnnn { +\cs_new:Nn \um_map_chars_range:nnnn + { \um_map_chars_range:ncc {#1} { \um_to_usv:nn {#2}{#4} } { \um_to_usv:nn {#3}{#4} } -} + } % \end{macrocode} % \end{macro} % % \subsubsection{Functions for alphabets} % % \begin{macrocode} -\cs_new:Nn \um_map_chars_Latin:nn { - \clist_map_inline:nn {#1} { +\cs_new:Nn \um_map_chars_Latin:nn + { + \clist_map_inline:nn {#1} + { \um_map_chars_range:nnnn {26} {##1} {#2} {Latin} - } -} + } + } % \end{macrocode} % % \begin{macrocode} -\cs_new:Nn \um_map_chars_latin:nn { - \clist_map_inline:nn {#1} { +\cs_new:Nn \um_map_chars_latin:nn + { + \clist_map_inline:nn {#1} + { \um_map_chars_range:nnnn {26} {##1} {#2} {latin} - } -} + } + } % \end{macrocode} % % \begin{macrocode} -\cs_new:Nn \um_map_chars_greek:nn { - \clist_map_inline:nn {#1} { +\cs_new:Nn \um_map_chars_greek:nn + { + \clist_map_inline:nn {#1} + { \um_map_chars_range:nnnn {25} {##1} {#2} {greek} \um_map_char_single:nnn {##1} {#2} {varepsilon} \um_map_char_single:nnn {##1} {#2} {vartheta} @@ -3764,23 +3826,26 @@ end \um_map_char_single:nnn {##1} {#2} {varphi} \um_map_char_single:nnn {##1} {#2} {varrho} \um_map_char_single:nnn {##1} {#2} {varpi} - } -} + } + } % \end{macrocode} % % \begin{macrocode} -\cs_new:Nn \um_map_chars_Greek:nn { - \clist_map_inline:nn {#1} { +\cs_new:Nn \um_map_chars_Greek:nn + { + \clist_map_inline:nn {#1} + { \um_map_chars_range:nnnn {25} {##1} {#2} {Greek} \um_map_char_single:nnn {##1} {#2} {varTheta} - } -} + } + } % \end{macrocode} % % \begin{macrocode} -\cs_new:Nn \um_map_chars_numbers:nn { +\cs_new:Nn \um_map_chars_numbers:nn + { \um_map_chars_range:nnnn {10} {#1} {#2} {num} -} + } % \end{macrocode} % % @@ -3794,9 +3859,10 @@ end % Cannot use |\cs_generate_variant:Nn| because the base function is % defined dynamically. % \begin{macrocode} -\cs_new:Npn \um_set_mathalphabet_char:Ncc { +\cs_new:Npn \um_set_mathalphabet_char:Ncc + { \exp_args:NNcc \um_set_mathalphabet_char:Nnn -} + } % \end{macrocode} % \end{macro} % @@ -3806,13 +3872,16 @@ end % \darg{Output slot, \eg, the slot for `$\mathbb{A}$'} % Adds \cs{um_set_mathcode:nnnn} declarations to the specified maths alphabet's definition. % \begin{macrocode} -\cs_new:Nn \um_mathmap_noparse:Nnn { - \clist_map_inline:nn {#2} { - \tl_put_right:cx {um_switchto_\cs_to_str:N #1:} { +\cs_new:Nn \um_mathmap_noparse:Nnn + { + \clist_map_inline:nn {#2} + { + \tl_put_right:cx {um_switchto_\cs_to_str:N #1:} + { \um_set_mathcode:nnnn{##1}{\mathalpha}{\um_symfont_tl}{#3} - } - } -} + } + } + } % \end{macrocode} % \end{macro} % @@ -3824,11 +3893,13 @@ end % macro with slot numbers corresponding to the specified range. This range is used to % conditionally add \cs{um_set_mathcode:nnnn} declaractions to the maths alphabet definition. % \begin{macrocode} -\cs_new:Nn \um_mathmap_parse:Nnn { - \clist_if_in:NnT \l_um_char_num_range_clist {#3} { +\cs_new:Nn \um_mathmap_parse:Nnn + { + \clist_if_in:NnT \l_um_char_num_range_clist {#3} + { \um_mathmap_noparse:Nnn {#1}{#2}{#3} - } -} + } + } % \end{macrocode} % \end{macro} % @@ -3838,10 +3909,11 @@ end % \darg{output math alphabet name} % \darg{char name to map} % \begin{macrocode} -\cs_new:Npn \um_set_mathalphabet_char:Nnnn #1#2#3#4 { +\cs_new:Nn \um_set_mathalphabet_char:Nnnn + { \um_set_mathalphabet_char:Ncc #1 { \um_to_usv:nn {#2} {#4} } { \um_to_usv:nn {#3} {#4} } -} + } % \end{macrocode} % \end{macro} % @@ -3853,67 +3925,79 @@ end % Loops through character ranges setting \cmd\mathcode. % First the version that uses numbers: % \begin{macrocode} -\cs_new:Npn \um_set_mathalph_range:nNnn #1#2#3#4 { +\cs_new:Nn \um_set_mathalph_range:nNnn + { \int_step_inline:nnnn {0}{1}{#1-1} { \um_set_mathalphabet_char:Nnn {#2} { ##1 + #3 } { ##1 + #4 } } -} + } \cs_generate_variant:Nn \um_set_mathalph_range:nNnn {nNcc} % \end{macrocode} % Then the wrapper version that uses names: % \begin{macrocode} -\cs_new:Npn \um_set_mathalph_range:nNnnn #1#2#3#4#5 { +\cs_new:Nn \um_set_mathalph_range:nNnnn + { \um_set_mathalph_range:nNcc {#1} #2 { \um_to_usv:nn {#3} {#5} } { \um_to_usv:nn {#4} {#5} } -} + } % \end{macrocode} % \end{macro} % % \subsubsection{Individual mapping functions for different alphabets} % % \begin{macrocode} -\cs_new:Npn \um_set_mathalphabet_pos:Nnnn #1#2#3#4 { - \cs_if_exist:cT { \um_to_usv:nn {#4}{#2} } { +\cs_new:Nn \um_set_mathalphabet_pos:Nnnn + { + \cs_if_exist:cT { \um_to_usv:nn {#4}{#2} } + { \clist_map_inline:nn {#3} { \um_set_mathalphabet_char:Nnnn #1 {##1} {#4} {#2} } - } -} + } + } % \end{macrocode} % % \begin{macrocode} -\cs_new:Nn \um_set_mathalphabet_numbers:Nnn { +\cs_new:Nn \um_set_mathalphabet_numbers:Nnn + { \clist_map_inline:nn {#2} { \um_set_mathalph_range:nNnnn {10} #1 {##1} {#3} {num} } -} + } % \end{macrocode} % % \begin{macrocode} -\cs_new:Nn \um_set_mathalphabet_Latin:Nnn { +\cs_new:Nn \um_set_mathalphabet_Latin:Nnn + { \clist_map_inline:nn {#2} { \um_set_mathalph_range:nNnnn {26} #1 {##1} {#3} {Latin} } -} + } % \end{macrocode} % % \begin{macrocode} -\cs_new:Nn \um_set_mathalphabet_latin:Nnn { - \clist_map_inline:nn {#2} { +\cs_new:Nn \um_set_mathalphabet_latin:Nnn + { + \clist_map_inline:nn {#2} + { \um_set_mathalph_range:nNnnn {26} #1 {##1} {#3} {latin} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {h} - } -} + } + } % \end{macrocode} % % \begin{macrocode} -\cs_new:Nn \um_set_mathalphabet_Greek:Nnn { - \clist_map_inline:nn {#2} { +\cs_new:Nn \um_set_mathalphabet_Greek:Nnn + { + \clist_map_inline:nn {#2} + { \um_set_mathalph_range:nNnnn {25} #1 {##1} {#3} {Greek} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varTheta} - } -} + } + } % \end{macrocode} % % \begin{macrocode} -\cs_new:Nn \um_set_mathalphabet_greek:Nnn { - \clist_map_inline:nn {#2} { +\cs_new:Nn \um_set_mathalphabet_greek:Nnn + { + \clist_map_inline:nn {#2} + { \um_set_mathalph_range:nNnnn {25} #1 {##1} {#3} {greek} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varepsilon} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {vartheta} @@ -3921,143 +4005,188 @@ end \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varphi} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varrho} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varpi} - } -} + } + } % \end{macrocode} % % \subsection{Alphabets} % % \subsubsection{Upright: \cmd\mathup} % \begin{macrocode} -\cs_new:Nn \um_config_up_num:n { +\cs_new:Nn \um_config_up_num:n + { \um_map_chars_numbers:nn {up}{#1} \um_set_mathalphabet_numbers:Nnn \mathup {up}{#1} -} + } + \cs_new:Nn \um_config_up_Latin:n - { - \bool_if:NTF \g_um_literal_bool { \um_map_chars_Latin:nn {up} {#1} } - { + { + \bool_if:NTF \g_um_literal_bool { \um_map_chars_Latin:nn {up} {#1} } + { \bool_if:NT \g_um_upLatin_bool { \um_map_chars_Latin:nn {up,it} {#1} } - } - \um_set_mathalphabet_Latin:Nnn \mathup {up,it}{#1} -} -\cs_new:Nn \um_config_up_latin:n { + } + \um_set_mathalphabet_Latin:Nnn \mathup {up,it} {#1} + } + +\cs_new:Nn \um_config_up_latin:n + { \bool_if:NTF \g_um_literal_bool { \um_map_chars_latin:nn {up} {#1} } - { - \bool_if:NT \g_um_uplatin_bool { + { + \bool_if:NT \g_um_uplatin_bool + { \um_map_chars_latin:nn {up,it} {#1} \um_map_single:nnn {h} {up,it} {#1} \um_map_single:nnn {dotlessi} {up,it} {#1} \um_map_single:nnn {dotlessj} {up,it} {#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathup {up,it}{#1} -} -\cs_new:Nn \um_config_up_Greek:n { + } + +\cs_new:Nn \um_config_up_Greek:n + { \bool_if:NTF \g_um_literal_bool { \um_map_chars_Greek:nn {up}{#1} } - { + { \bool_if:NT \g_um_upGreek_bool { \um_map_chars_Greek:nn {up,it}{#1} } - } + } \um_set_mathalphabet_Greek:Nnn \mathup {up,it}{#1} -} -\cs_new:Nn \um_config_up_greek:n { + } + +\cs_new:Nn \um_config_up_greek:n + { \bool_if:NTF \g_um_literal_bool { \um_map_chars_greek:nn {up} {#1} } - { - \bool_if:NT \g_um_upgreek_bool { + { + \bool_if:NT \g_um_upgreek_bool + { \um_map_chars_greek:nn {up,it} {#1} - } - } + } + } \um_set_mathalphabet_greek:Nnn \mathup {up,it} {#1} -} -\cs_new:Nn \um_config_up_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { + } + +\cs_new:Nn \um_config_up_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{up}{up} - }{ - \bool_if:NT \g_um_upNabla_bool { + } + { + \bool_if:NT \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{up,it}{up} - } - } - \bool_if:NTF \g_um_literal_partial_bool { + } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{up}{up} - }{ - \bool_if:NT \g_um_uppartial_bool { + } + { + \bool_if:NT \g_um_uppartial_bool + { \um_map_single:nnn {partial}{up,it}{up} - } - } + } + } \um_set_mathalphabet_pos:Nnnn \mathup {partial} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathup {Nabla} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathup {dotlessi} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathup {dotlessj} {up,it} {#1} -} + } % \end{macrocode} % % \subsubsection{Italic: \cmd\mathit} % % \begin{macrocode} -\cs_new:Nn \um_config_it_Latin:n { +\cs_new:Nn \um_config_it_Latin:n + { \bool_if:NTF \g_um_literal_bool { \um_map_chars_Latin:nn {it} {#1} } - { + { \bool_if:NF \g_um_upLatin_bool { \um_map_chars_Latin:nn {up,it} {#1} } - } + } \um_set_mathalphabet_Latin:Nnn \mathit {up,it}{#1} -} -\cs_new:Nn \um_config_it_latin:n { - \bool_if:NTF \g_um_literal_bool { + } + +\cs_new:Nn \um_config_it_latin:n + { + \bool_if:NTF \g_um_literal_bool + { \um_map_chars_latin:nn {it} {#1} \um_map_single:nnn {h}{it}{#1} - }{ - \bool_if:NF \g_um_uplatin_bool { + } + { + \bool_if:NF \g_um_uplatin_bool + { \um_map_chars_latin:nn {up,it} {#1} \um_map_single:nnn {h}{up,it}{#1} \um_map_single:nnn {dotlessi}{up,it}{#1} \um_map_single:nnn {dotlessj}{up,it}{#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathit {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathit {dotlessi} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathit {dotlessj} {up,it} {#1} -} -\cs_new:Nn \um_config_it_Greek:n { - \bool_if:NTF \g_um_literal_bool { \um_map_chars_Greek:nn {it}{#1} - }{ + } + +\cs_new:Nn \um_config_it_Greek:n + { + \bool_if:NTF \g_um_literal_bool + { + \um_map_chars_Greek:nn {it}{#1} + } + { \bool_if:NF \g_um_upGreek_bool { \um_map_chars_Greek:nn {up,it}{#1} } - } + } \um_set_mathalphabet_Greek:Nnn \mathit {up,it}{#1} -} -\cs_new:Nn \um_config_it_greek:n { - \bool_if:NTF \g_um_literal_bool { \um_map_chars_greek:nn {it} {#1} } - { + } + +\cs_new:Nn \um_config_it_greek:n + { + \bool_if:NTF \g_um_literal_bool + { + \um_map_chars_greek:nn {it} {#1} + } + { \bool_if:NF \g_um_upgreek_bool { \um_map_chars_greek:nn {it,up} {#1} } - } + } \um_set_mathalphabet_greek:Nnn \mathit {up,it} {#1} -} -\cs_new:Nn \um_config_it_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { + } + +\cs_new:Nn \um_config_it_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{it}{it} - }{ - \bool_if:NF \g_um_upNabla_bool { + } + { + \bool_if:NF \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{up,it}{it} - } - } - \bool_if:NTF \g_um_literal_partial_bool { + } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{it}{it} - }{ - \bool_if:NF \g_um_uppartial_bool { + } + { + \bool_if:NF \g_um_uppartial_bool + { \um_map_single:nnn {partial}{up,it}{it} - } - } + } + } \um_set_mathalphabet_pos:Nnnn \mathit {partial} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathit {Nabla} {up,it}{#1} -} + } % \end{macrocode} % % \subsubsection{Blackboard or double-struck: \cmd\mathbb\ and \cmd\mathbbit} % % \begin{macrocode} -\cs_new:Nn \um_config_bb_latin:n { +\cs_new:Nn \um_config_bb_latin:n + { \um_set_mathalphabet_latin:Nnn \mathbb {up,it}{#1} -} -\cs_new:Nn \um_config_bb_Latin:n { + } + +\cs_new:Nn \um_config_bb_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathbb {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbb {C} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {H} {up,it} {#1} @@ -4066,30 +4195,37 @@ end \um_set_mathalphabet_pos:Nnnn \mathbb {Q} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {R} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {Z} {up,it} {#1} -} -\cs_new:Nn \um_config_bb_num:n { + } + +\cs_new:Nn \um_config_bb_num:n + { \um_set_mathalphabet_numbers:Nnn \mathbb {up}{#1} -} -\cs_new:Nn \um_config_bb_misc:n { + } + +\cs_new:Nn \um_config_bb_misc:n + { \um_set_mathalphabet_pos:Nnnn \mathbb {Pi} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {pi} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {Gamma} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {gamma} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {summation} {up} {#1} -} -\cs_new:Nn \um_config_bbit_misc:n { + } + +\cs_new:Nn \um_config_bbit_misc:n + { \um_set_mathalphabet_pos:Nnnn \mathbbit {D} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbbit {d} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbbit {e} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbbit {i} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbbit {j} {up,it} {#1} -} + } % \end{macrocode} % % \subsubsection{Script and caligraphic: \cmd\mathscr\ and \cmd\mathcal} % % \begin{macrocode} -\cs_new:Nn \um_config_scr_Latin:n { +\cs_new:Nn \um_config_scr_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathscr {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {B}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {E}{up,it}{#1} @@ -4099,18 +4235,21 @@ end \um_set_mathalphabet_pos:Nnnn \mathscr {L}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {M}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {R}{up,it}{#1} -} -\cs_new:Nn \um_config_scr_latin:n { + } + +\cs_new:Nn \um_config_scr_latin:n + { \um_set_mathalphabet_latin:Nnn \mathscr {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {e}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {g}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {o}{up,it}{#1} -} + } % \end{macrocode} % These are by default synonyms for the above, but with the STIX % fonts we want to use the alternate alphabet. % \begin{macrocode} -\cs_new:Nn \um_config_cal_Latin:n { +\cs_new:Nn \um_config_cal_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathcal {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathcal {B}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathcal {E}{up,it}{#1} @@ -4120,483 +4259,640 @@ end \um_set_mathalphabet_pos:Nnnn \mathcal {L}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathcal {M}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathcal {R}{up,it}{#1} -} + } % \end{macrocode} % % \subsubsection{Fractur or fraktur or blackletter: \cmd\mathfrak} % % \begin{macrocode} -\cs_new:Nn \um_config_frak_Latin:n { +\cs_new:Nn \um_config_frak_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathfrak {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathfrak {C}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathfrak {H}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathfrak {I}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathfrak {R}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathfrak {Z}{up,it}{#1} -} -\cs_new:Nn \um_config_frak_latin:n { + } +\cs_new:Nn \um_config_frak_latin:n + { \um_set_mathalphabet_latin:Nnn \mathfrak {up,it}{#1} -} + } % \end{macrocode} % % \subsubsection{Sans serif upright: \cmd\mathsfup} % \begin{macrocode} -\cs_new:Nn \um_config_sfup_num:n { +\cs_new:Nn \um_config_sfup_num:n + { \um_set_mathalphabet_numbers:Nnn \mathsf {up}{#1} \um_set_mathalphabet_numbers:Nnn \mathsfup {up}{#1} -} -\cs_new:Nn \um_config_sfup_Latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } +\cs_new:Nn \um_config_sfup_Latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Latin:nn {sfup} {#1} \um_set_mathalphabet_Latin:Nnn \mathsf {up}{#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_Latin:nn {sfup,sfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Latin:Nnn \mathsfup {up,it}{#1} -} -\cs_new:Nn \um_config_sfup_latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } +\cs_new:Nn \um_config_sfup_latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_latin:nn {sfup} {#1} \um_set_mathalphabet_latin:Nnn \mathsf {up}{#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_latin:nn {sfup,sfit} {#1} \um_set_mathalphabet_latin:Nnn \mathsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathsfup {up,it}{#1} -} + } % \end{macrocode} % % \subsubsection{Sans serif italic: \cmd\mathsfit} % % \begin{macrocode} -\cs_new:Nn \um_config_sfit_Latin:n { - \bool_if:NTF \g_um_sfliteral_bool { +\cs_new:Nn \um_config_sfit_Latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Latin:nn {sfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathsf {it}{#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_Latin:nn {sfup,sfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Latin:Nnn \mathsfit {up,it}{#1} -} -\cs_new:Nn \um_config_sfit_latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } +\cs_new:Nn \um_config_sfit_latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_latin:nn {sfit} {#1} \um_set_mathalphabet_latin:Nnn \mathsf {it}{#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_latin:nn {sfup,sfit} {#1} \um_set_mathalphabet_latin:Nnn \mathsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathsfit {up,it}{#1} -} + } % \end{macrocode} % % \subsubsection{Typewriter or monospaced: \cmd\mathtt} % \begin{macrocode} -\cs_new:Nn \um_config_tt_num:n { +\cs_new:Nn \um_config_tt_num:n + { \um_set_mathalphabet_numbers:Nnn \mathtt {up}{#1} -} -\cs_new:Nn \um_config_tt_Latin:n { + } +\cs_new:Nn \um_config_tt_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathtt {up,it}{#1} -} -\cs_new:Nn \um_config_tt_latin:n { + } +\cs_new:Nn \um_config_tt_latin:n + { \um_set_mathalphabet_latin:Nnn \mathtt {up,it}{#1} -} + } % \end{macrocode} % % % \subsubsection{Bold Italic: \cmd\mathbfit} % \begin{macrocode} -\cs_new:Nn \um_config_bfit_Latin:n { - \bool_if:NF \g_um_bfupLatin_bool { +\cs_new:Nn \um_config_bfit_Latin:n + { + \bool_if:NF \g_um_bfupLatin_bool + { \um_map_chars_Latin:nn {bfup,bfit} {#1} - } + } \um_set_mathalphabet_Latin:Nnn \mathbfit {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_Latin:nn {bfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbf {it}{#1} - }{ - \bool_if:NF \g_um_bfupLatin_bool { + } + { + \bool_if:NF \g_um_bfupLatin_bool + { \um_map_chars_Latin:nn {bfup,bfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfit_latin:n { - \bool_if:NF \g_um_bfuplatin_bool { + } + } + } + +\cs_new:Nn \um_config_bfit_latin:n + { + \bool_if:NF \g_um_bfuplatin_bool + { \um_map_chars_latin:nn {bfup,bfit} {#1} - } + } \um_set_mathalphabet_latin:Nnn \mathbfit {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_latin:nn {bfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbf {it}{#1} - }{ - \bool_if:NF \g_um_bfuplatin_bool { + } + { + \bool_if:NF \g_um_bfuplatin_bool + { \um_map_chars_latin:nn {bfup,bfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfit_Greek:n { + } + } + } + +\cs_new:Nn \um_config_bfit_Greek:n + { \um_set_mathalphabet_Greek:Nnn \mathbfit {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_Greek:nn {bfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbf {it}{#1} - }{ - \bool_if:NF \g_um_bfupGreek_bool { + } + { + \bool_if:NF \g_um_bfupGreek_bool + { \um_map_chars_Greek:nn {bfup,bfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfit_greek:n { + } + } + } + +\cs_new:Nn \um_config_bfit_greek:n + { \um_set_mathalphabet_greek:Nnn \mathbfit {up,it} {#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_greek:nn {bfit} {#1} \um_set_mathalphabet_greek:Nnn \mathbf {it} {#1} - }{ - \bool_if:NF \g_um_bfupgreek_bool { + } + { + \bool_if:NF \g_um_bfupgreek_bool + { \um_map_chars_greek:nn {bfit,bfup} {#1} \um_set_mathalphabet_greek:Nnn \mathbf {up,it} {#1} - } - } -} -\cs_new:Nn \um_config_bfit_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { - \um_map_single:nnn {Nabla}{bfit}{#1} - }{ - \bool_if:NF \g_um_upNabla_bool { - \um_map_single:nnn {Nabla}{bfup,bfit}{#1} - } - } - \bool_if:NTF \g_um_literal_partial_bool { - \um_map_single:nnn {partial}{bfit}{#1} - }{ - \bool_if:NF \g_um_uppartial_bool { - \um_map_single:nnn {partial}{bfup,bfit}{#1} - } - } + } + } + } + +\cs_new:Nn \um_config_bfit_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{bfit}{#1} } + { + \bool_if:NF \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{bfup,bfit}{#1} } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{bfit}{#1} } + { + \bool_if:NF \g_um_uppartial_bool + { \um_map_single:nnn {partial}{bfup,bfit}{#1} } + } \um_set_mathalphabet_pos:Nnnn \mathbfit {partial} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfit {Nabla} {up,it}{#1} - \bool_if:NTF \g_um_literal_partial_bool { + \bool_if:NTF \g_um_literal_partial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {partial} {it}{#1} - }{ - \bool_if:NF \g_um_uppartial_bool { + } + { + \bool_if:NF \g_um_uppartial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {partial} {up,it}{#1} - } - } - \bool_if:NTF \g_um_literal_Nabla_bool { + } + } + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {Nabla} {it}{#1} - }{ - \bool_if:NF \g_um_upNabla_bool { + } + { + \bool_if:NF \g_um_upNabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {Nabla} {up,it}{#1} - } - } -} + } + } + } % \end{macrocode} % % % \subsubsection{Bold Upright: \cmd\mathbfup} % \begin{macrocode} -\cs_new:Nn \um_config_bfup_num:n { +\cs_new:Nn \um_config_bfup_num:n + { \um_set_mathalphabet_numbers:Nnn \mathbf {up}{#1} \um_set_mathalphabet_numbers:Nnn \mathbfup {up}{#1} -} -\cs_new:Nn \um_config_bfup_Latin:n { - \bool_if:NT \g_um_bfupLatin_bool { + } + +\cs_new:Nn \um_config_bfup_Latin:n + { + \bool_if:NT \g_um_bfupLatin_bool + { \um_map_chars_Latin:nn {bfup,bfit} {#1} - } + } \um_set_mathalphabet_Latin:Nnn \mathbfup {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_Latin:nn {bfup} {#1} \um_set_mathalphabet_Latin:Nnn \mathbf {up}{#1} - }{ - \bool_if:NT \g_um_bfupLatin_bool { + } + { + \bool_if:NT \g_um_bfupLatin_bool + { \um_map_chars_Latin:nn {bfup,bfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfup_latin:n { - \bool_if:NT \g_um_bfuplatin_bool { + } + } + } + +\cs_new:Nn \um_config_bfup_latin:n + { + \bool_if:NT \g_um_bfuplatin_bool + { \um_map_chars_latin:nn {bfup,bfit} {#1} - } + } \um_set_mathalphabet_latin:Nnn \mathbfup {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_latin:nn {bfup} {#1} \um_set_mathalphabet_latin:Nnn \mathbf {up}{#1} - }{ - \bool_if:NT \g_um_bfuplatin_bool { + } + { + \bool_if:NT \g_um_bfuplatin_bool + { \um_map_chars_latin:nn {bfup,bfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfup_Greek:n { + } + } + } +\cs_new:Nn \um_config_bfup_Greek:n + { \um_set_mathalphabet_Greek:Nnn \mathbfup {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_Greek:nn {bfup}{#1} \um_set_mathalphabet_Greek:Nnn \mathbf {up}{#1} - }{ - \bool_if:NT \g_um_bfupGreek_bool { + } + { + \bool_if:NT \g_um_bfupGreek_bool + { \um_map_chars_Greek:nn {bfup,bfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfup_greek:n { + } + } + } + +\cs_new:Nn \um_config_bfup_greek:n + { \um_set_mathalphabet_greek:Nnn \mathbfup {up,it} {#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_greek:nn {bfup} {#1} \um_set_mathalphabet_greek:Nnn \mathbf {up} {#1} - }{ - \bool_if:NT \g_um_bfupgreek_bool { + } + { + \bool_if:NT \g_um_bfupgreek_bool + { \um_map_chars_greek:nn {bfup,bfit} {#1} \um_set_mathalphabet_greek:Nnn \mathbf {up,it} {#1} - } - } -} -\cs_new:Nn \um_config_bfup_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { + } + } + } + +\cs_new:Nn \um_config_bfup_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{bfup}{#1} - }{ - \bool_if:NT \g_um_upNabla_bool { + } + { + \bool_if:NT \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{bfup,bfit}{#1} - } - } - \bool_if:NTF \g_um_literal_partial_bool { + } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{bfup}{#1} - }{ - \bool_if:NT \g_um_uppartial_bool { + } + { + \bool_if:NT \g_um_uppartial_bool + { \um_map_single:nnn {partial}{bfup,bfit}{#1} - } - } + } + } \um_set_mathalphabet_pos:Nnnn \mathbfup {partial} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfup {Nabla} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfup {digamma} {up}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfup {Digamma} {up}{#1} \um_set_mathalphabet_pos:Nnnn \mathbf {digamma} {up}{#1} \um_set_mathalphabet_pos:Nnnn \mathbf {Digamma} {up}{#1} - \bool_if:NTF \g_um_literal_partial_bool { + \bool_if:NTF \g_um_literal_partial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {partial} {up}{#1} - }{ - \bool_if:NT \g_um_uppartial_bool { + } + { + \bool_if:NT \g_um_uppartial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {partial} {up,it}{#1} - } - } - \bool_if:NTF \g_um_literal_Nabla_bool { + } + } + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {Nabla} {up}{#1} - }{ - \bool_if:NT \g_um_upNabla_bool { + } + { + \bool_if:NT \g_um_upNabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {Nabla} {up,it}{#1} - } - } -} + } + } + } % \end{macrocode} % % \subsubsection{Bold fractur or fraktur or blackletter: \cmd\mathbffrak} % \begin{macrocode} -\cs_new:Nn \um_config_bffrak_Latin:n { +\cs_new:Nn \um_config_bffrak_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathbffrak {up,it}{#1} -} -\cs_new:Nn \um_config_bffrak_latin:n { + } + +\cs_new:Nn \um_config_bffrak_latin:n + { \um_set_mathalphabet_latin:Nnn \mathbffrak {up,it}{#1} -} + } % \end{macrocode} % % \subsubsection{Bold script or calligraphic: \cmd\mathbfscr} % \begin{macrocode} -\cs_new:Nn \um_config_bfscr_Latin:n { +\cs_new:Nn \um_config_bfscr_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathbfscr {up,it}{#1} -} -\cs_new:Nn \um_config_bfscr_latin:n { + } +\cs_new:Nn \um_config_bfscr_latin:n + { \um_set_mathalphabet_latin:Nnn \mathbfscr {up,it}{#1} -} -\cs_new:Nn \um_config_bfcal_Latin:n { + } +\cs_new:Nn \um_config_bfcal_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathbfcal {up,it}{#1} -} + } % \end{macrocode} % % \subsubsection{Bold upright sans serif: \cmd\mathbfsfup} % \begin{macrocode} -\cs_new:Nn \um_config_bfsfup_num:n { +\cs_new:Nn \um_config_bfsfup_num:n + { \um_set_mathalphabet_numbers:Nnn \mathbfsf {up}{#1} \um_set_mathalphabet_numbers:Nnn \mathbfsfup {up}{#1} -} -\cs_new:Nn \um_config_bfsfup_Latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } +\cs_new:Nn \um_config_bfsfup_Latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Latin:nn {bfsfup} {#1} \um_set_mathalphabet_Latin:Nnn \mathbfsf {up}{#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_Latin:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Latin:Nnn \mathbfsfup {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfup_latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfup_latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_latin:nn {bfsfup} {#1} \um_set_mathalphabet_latin:Nnn \mathbfsf {up}{#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_latin:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathbfsfup {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfup_Greek:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfup_Greek:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Greek:nn {bfsfup}{#1} \um_set_mathalphabet_Greek:Nnn \mathbfsf {up}{#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_Greek:nn {bfsfup,bfsfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Greek:Nnn \mathbfsfup {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfup_greek:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfup_greek:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_greek:nn {bfsfup} {#1} \um_set_mathalphabet_greek:Nnn \mathbfsf {up} {#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_greek:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_greek:Nnn \mathbfsf {up,it} {#1} - } - } + } + } \um_set_mathalphabet_greek:Nnn \mathbfsfup {up,it} {#1} -} -\cs_new:Nn \um_config_bfsfup_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { + } +\cs_new:Nn \um_config_bfsfup_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{bfsfup}{#1} - }{ - \bool_if:NT \g_um_upNabla_bool { + } + { + \bool_if:NT \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{bfsfup,bfsfit}{#1} - } - } - \bool_if:NTF \g_um_literal_partial_bool { + } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{bfsfup}{#1} - }{ - \bool_if:NT \g_um_uppartial_bool { + } + { + \bool_if:NT \g_um_uppartial_bool + { \um_map_single:nnn {partial}{bfsfup,bfsfit}{#1} - } - } + } + } \um_set_mathalphabet_pos:Nnnn \mathbfsfup {partial} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfsfup {Nabla} {up,it}{#1} - \bool_if:NTF \g_um_literal_partial_bool { + \bool_if:NTF \g_um_literal_partial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {partial} {up}{#1} - }{ - \bool_if:NT \g_um_uppartial_bool { + } + { + \bool_if:NT \g_um_uppartial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {partial} {up,it}{#1} - } - } - \bool_if:NTF \g_um_literal_Nabla_bool { + } + } + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {Nabla} {up}{#1} - }{ - \bool_if:NT \g_um_upNabla_bool { + } + { + \bool_if:NT \g_um_upNabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {Nabla} {up,it}{#1} - } - } -} + } + } + } % \end{macrocode} % % % \subsubsection{Bold italic sans serif: \cmd\mathbfsfit} % \begin{macrocode} -\cs_new:Nn \um_config_bfsfit_Latin:n { - \bool_if:NTF \g_um_sfliteral_bool { +\cs_new:Nn \um_config_bfsfit_Latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Latin:nn {bfsfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbfsf {it}{#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_Latin:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Latin:Nnn \mathbfsfit {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfit_latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfit_latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_latin:nn {bfsfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbfsf {it}{#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_latin:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathbfsfit {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfit_Greek:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfit_Greek:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Greek:nn {bfsfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbfsf {it}{#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_Greek:nn {bfsfup,bfsfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Greek:Nnn \mathbfsfit {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfit_greek:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfit_greek:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_greek:nn {bfsfit} {#1} \um_set_mathalphabet_greek:Nnn \mathbfsf {it} {#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_greek:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_greek:Nnn \mathbfsf {up,it} {#1} - } - } + } + } \um_set_mathalphabet_greek:Nnn \mathbfsfit {up,it} {#1} -} -\cs_new:Nn \um_config_bfsfit_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { + } + +\cs_new:Nn \um_config_bfsfit_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{bfsfit}{#1} - }{ - \bool_if:NF \g_um_upNabla_bool { + } + { + \bool_if:NF \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{bfsfup,bfsfit}{#1} - } - } - \bool_if:NTF \g_um_literal_partial_bool { + } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{bfsfit}{#1} - }{ - \bool_if:NF \g_um_uppartial_bool { + } + { + \bool_if:NF \g_um_uppartial_bool + { \um_map_single:nnn {partial}{bfsfup,bfsfit}{#1} - } - } + } + } \um_set_mathalphabet_pos:Nnnn \mathbfsfit {partial} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfsfit {Nabla} {up,it}{#1} - \bool_if:NTF \g_um_literal_partial_bool { + \bool_if:NTF \g_um_literal_partial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {partial} {it}{#1} - }{ - \bool_if:NF \g_um_uppartial_bool { + } + { + \bool_if:NF \g_um_uppartial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {partial} {up,it}{#1} - } - } - \bool_if:NTF \g_um_literal_Nabla_bool { + } + } + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {Nabla} {it}{#1} - }{ - \bool_if:NF \g_um_upNabla_bool { + } + { + \bool_if:NF \g_um_upNabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {Nabla} {up,it}{#1} - } - } -} + } + } + } % \end{macrocode} % % \section{A token list to contain the data of the math table} @@ -4610,11 +4906,13 @@ end % In time, the case statement inside |set_mathsymbol| will be moved in here % to avoid re-running it every time. % \begin{macrocode} -\cs_new:Npn \um_symbol_setup: { - \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 { - \exp_not:n {\_um_sym:nnn{##1}{##2}{##3}} - } -} +\cs_new:Npn \um_symbol_setup: + { + \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 + { + \exp_not:n { \_um_sym:nnn {##1} {##2} {##3} } + } + } % \end{macrocode} % % \begin{macrocode} @@ -4647,32 +4945,38 @@ end % \begin{macrocode} \group_begin: \char_set_catcode_other:N \^ - \cs_gset:Npn \um_cs_set_eq_active_char:Nw #1 = "#2 \q_nil { - \tex_lowercase:D { - \tl_rescan:nn { + \cs_gset:Npn \um_cs_set_eq_active_char:Nw #1 = "#2 \q_nil + { + \tex_lowercase:D + { + \tl_rescan:nn + { \ExplSyntaxOn \char_set_catcode_other:N \{ \char_set_catcode_other:N \} \char_set_catcode_other:N \& \char_set_catcode_other:N \% \char_set_catcode_other:N \$ - }{ + } + { \cs_gset_eq:NN #1 ^^^^^#2 - } - } - } + } + } + } % \end{macrocode} % Making |^| the right catcode isn't strictly necessary right now but it helps % to future proof us with, e.g., breqn. % Because we're inside a |\tl_rescan:nn|, use plain old \TeX\ syntax to avoid % any catcode problems. % \begin{macrocode} - \cs_new:Npn \um_active_char_set:wc "#1 \q_nil #2 { - \tex_lowercase:D { + \cs_new:Npn \um_active_char_set:wc "#1 \q_nil #2 + { + \tex_lowercase:D + { \tl_rescan:nn { \ExplSyntaxOn } { \cs_gset_protected_nopar:Npx ^^^^^#1 { \exp_not:c {#2} } } - } - } + } + } \group_end: % \end{macrocode} % \end{macro} @@ -4685,23 +4989,26 @@ end % make sure |#| is an `other' so that we don't get confused with \cs{mathoctothorpe}. % \begin{macrocode} \AtBeginDocument{\um_define_math_chars:} -\cs_new:Nn \um_define_math_chars: { +\cs_new:Nn \um_define_math_chars: + { \group_begin: \char_set_catcode_math_superscript:N \^ - \cs_set:Npn \_um_sym:nnn ##1##2##3 { + \cs_set:Npn \_um_sym:nnn ##1##2##3 + { \bool_if:nF { \cs_if_eq_p:NN ##3 \mathaccent || \cs_if_eq_p:NN ##3 \mathopen || \cs_if_eq_p:NN ##3 \mathclose || \cs_if_eq_p:NN ##3 \mathover || \cs_if_eq_p:NN ##3 \mathunder || - \cs_if_eq_p:NN ##3 \mathbotaccent } { + \cs_if_eq_p:NN ##3 \mathbotaccent } + { \um_cs_set_eq_active_char:Nw ##2 = ##1 \q_nil \ignorespaces } - } + } \char_set_catcode_other:N \# \um_input_math_symbol_table: \group_end: -} + } % \end{macrocode} % Fix \cs{backslash}, which is defined as the escape char character % above: @@ -4710,16 +5017,15 @@ end \lccode`\*=`\\ \char_set_catcode_escape:N \| \char_set_catcode_other:N \\ - |lowercase{ - |AtBeginDocument{ + |lowercase + { + |AtBeginDocument + { |let|backslash=* - } - } + } + } |group_end: % \end{macrocode} -% Fix \cs{backslash}: ^^A | -% \begin{macrocode} -% \end{macrocode} % % \section{Fall-back font} % @@ -4791,10 +5097,11 @@ end % trailing superscript, then it is included within the insertion. % \begin{macrocode} \cs_new:Nn \um_arg_i_before_egroup:n {#1\egroup} -\cs_new:Nn \um_superscript:n { +\cs_new:Nn \um_superscript:n + { ^\bgroup #1 \peek_meaning_remove:NTF ^ \um_arg_i_before_egroup:n \egroup -} + } % \end{macrocode} % % \begin{macrocode} @@ -4804,14 +5111,19 @@ end % \end{macrocode} % % \begin{macrocode} -\cs_new:Nn \um_nprimes:Nn { - \um_superscript:n { +\cs_new:Nn \um_nprimes:Nn + { + \um_superscript:n + { #1 \prg_replicate:nn {#2-1} { \mskip \g_um_primekern_muskip #1 } - } -} -\cs_new:Nn \um_nprimes_select:nn { - \int_case:nnn {#2}{ + } + } + +\cs_new:Nn \um_nprimes_select:nn + { + \int_case:nnn {#2} + { {1} { \um_superscript:n {#1} } {2} { \um_glyph_if_exist:nTF {"2033} @@ -4828,12 +5140,15 @@ end { \um_superscript:n {\um_prime_quad_mchar} } { \um_nprimes:Nn #1 {#2} } } - }{ + } + { \um_nprimes:Nn #1 {#2} - } -} -\cs_new:Nn \um_nbackprimes_select:nn { - \int_case:nnn {#2}{ + } + } +\cs_new:Nn \um_nbackprimes_select:nn + { + \int_case:nnn {#2} + { {1} { \um_superscript:n {#1} } {2} { \um_glyph_if_exist:nTF {"2036} @@ -4845,165 +5160,209 @@ end { \um_superscript:n {\um_backprime_triple_mchar} } { \um_nprimes:Nn #1 {#2} } } - }{ + } + { \um_nprimes:Nn #1 {#2} - } -} + } + } % \end{macrocode} % % Scanning is annoying because I'm too lazy to do it for the general case. % % \begin{macrocode} -\cs_new:Npn \um_scan_prime: { +\cs_new:Npn \um_scan_prime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_zero:N \l_um_primecount_int \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_dprime: { + } +\cs_new:Npn \um_scan_dprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_set:Nn \l_um_primecount_int {1} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_trprime: { + } +\cs_new:Npn \um_scan_trprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_set:Nn \l_um_primecount_int {2} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_qprime: { + } +\cs_new:Npn \um_scan_qprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_set:Nn \l_um_primecount_int {3} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_sup_prime: { + } +\cs_new:Npn \um_scan_sup_prime: + { \int_zero:N \l_um_primecount_int \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_sup_dprime: { + } +\cs_new:Npn \um_scan_sup_dprime: + { \int_set:Nn \l_um_primecount_int {1} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_sup_trprime: { + } +\cs_new:Npn \um_scan_sup_trprime: + { \int_set:Nn \l_um_primecount_int {2} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_sup_qprime: { + } +\cs_new:Npn \um_scan_sup_qprime: + { \int_set:Nn \l_um_primecount_int {3} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Nn \um_scanprime_collect:N { + } +\cs_new:Nn \um_scanprime_collect:N + { \int_incr:N \l_um_primecount_int - \peek_meaning_remove:NTF ' { - \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_prime: { - \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2032 { - \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_dprime: { + \peek_meaning_remove:NTF ' + { \um_scanprime_collect:N #1 } + { + \peek_meaning_remove:NTF \um_scan_prime: + { \um_scanprime_collect:N #1 } + { + \peek_meaning_remove:NTF ^^^^2032 + { \um_scanprime_collect:N #1 } + { + \peek_meaning_remove:NTF \um_scan_dprime: + { \int_incr:N \l_um_primecount_int \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2033 { + } + { + \peek_meaning_remove:NTF ^^^^2033 + { \int_incr:N \l_um_primecount_int \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_trprime: { + } + { + \peek_meaning_remove:NTF \um_scan_trprime: + { \int_add:Nn \l_um_primecount_int {2} \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2034 { + } + { + \peek_meaning_remove:NTF ^^^^2034 + { \int_add:Nn \l_um_primecount_int {2} \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_qprime: { + } + { + \peek_meaning_remove:NTF \um_scan_qprime: + { \int_add:Nn \l_um_primecount_int {3} \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2057 { + } + { + \peek_meaning_remove:NTF ^^^^2057 + { \int_add:Nn \l_um_primecount_int {3} \um_scanprime_collect:N #1 - }{ + } + { \um_nprimes_select:nn {#1} {\l_um_primecount_int} - } - } - } - } - } - } - } - } - } -} -\cs_new:Npn \um_scan_backprime: { + } + } + } + } + } + } + } + } + } + } +\cs_new:Npn \um_scan_backprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_zero:N \l_um_primecount_int \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Npn \um_scan_backdprime: { + } +\cs_new:Npn \um_scan_backdprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_set:Nn \l_um_primecount_int {1} \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Npn \um_scan_backtrprime: { + } +\cs_new:Npn \um_scan_backtrprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_set:Nn \l_um_primecount_int {2} \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Npn \um_scan_sup_backprime: { + } +\cs_new:Npn \um_scan_sup_backprime: + { \int_zero:N \l_um_primecount_int \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Npn \um_scan_sup_backdprime: { + } +\cs_new:Npn \um_scan_sup_backdprime: + { \int_set:Nn \l_um_primecount_int {1} \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Npn \um_scan_sup_backtrprime: { + } +\cs_new:Npn \um_scan_sup_backtrprime: + { \int_set:Nn \l_um_primecount_int {2} \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Nn \um_scanbackprime_collect:N { + } +\cs_new:Nn \um_scanbackprime_collect:N + { \int_incr:N \l_um_primecount_int - \peek_meaning_remove:NTF ` { + \peek_meaning_remove:NTF ` + { \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_backprime: { + } + { + \peek_meaning_remove:NTF \um_scan_backprime: + { \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2035 { + } + { + \peek_meaning_remove:NTF ^^^^2035 + { \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_backdprime: { + } + { + \peek_meaning_remove:NTF \um_scan_backdprime: + { \int_incr:N \l_um_primecount_int \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2036 { + } + { + \peek_meaning_remove:NTF ^^^^2036 + { \int_incr:N \l_um_primecount_int \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_backtrprime: { + } + { + \peek_meaning_remove:NTF \um_scan_backtrprime: + { \int_add:Nn \l_um_primecount_int {2} \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2037 { + } + { + \peek_meaning_remove:NTF ^^^^2037 + { \int_add:Nn \l_um_primecount_int {2} \um_scanbackprime_collect:N #1 - }{ + } + { \um_nbackprimes_select:nn {#1} {\l_um_primecount_int} - } - } - } - } - } - } - } -} + } + } + } + } + } + } + } + } % \end{macrocode} % % \begin{macrocode} \AtBeginDocument{\um_define_prime_commands: \um_define_prime_chars:} -\cs_new:Nn \um_define_prime_commands: { +\cs_new:Nn \um_define_prime_commands: + { \cs_set_eq:NN \prime \um_prime_single_mchar \cs_set_eq:NN \dprime \um_prime_double_mchar \cs_set_eq:NN \trprime \um_prime_triple_mchar @@ -5011,7 +5370,7 @@ end \cs_set_eq:NN \backprime \um_backprime_single_mchar \cs_set_eq:NN \backdprime \um_backprime_double_mchar \cs_set_eq:NN \backtrprime \um_backprime_triple_mchar -} + } \group_begin: \char_set_catcode_active:N \' \char_set_catcode_active:N \` @@ -5022,7 +5381,8 @@ end \char_set_catcode_active:n {"2035} \char_set_catcode_active:n {"2036} \char_set_catcode_active:n {"2037} - \cs_gset:Nn \um_define_prime_chars: { + \cs_gset:Nn \um_define_prime_chars: + { \cs_set_eq:NN ' \um_scan_sup_prime: \cs_set_eq:NN ^^^^2032 \um_scan_sup_prime: \cs_set_eq:NN ^^^^2033 \um_scan_sup_dprime: @@ -5032,7 +5392,7 @@ end \cs_set_eq:NN ^^^^2035 \um_scan_sup_backprime: \cs_set_eq:NN ^^^^2036 \um_scan_sup_backdprime: \cs_set_eq:NN ^^^^2037 \um_scan_sup_backtrprime: - } + } \group_end: % \end{macrocode} % @@ -5043,55 +5403,58 @@ end \cs_new:Nn \um_redefine_radical: %<*XE> { - \@ifpackageloaded { amsmath } { } { + \@ifpackageloaded { amsmath } { } + { % \end{macrocode} % \begin{macro}{\r@@t} % \darg{A mathstyle (for \cmd\mathpalette)} % \darg{Leading superscript for the sqrt sign} % A re-implementation of \LaTeX's hard-coded n-root sign using the appropriate \cmd\fontdimen s. % \begin{macrocode} - \cs_set_nopar:Npn \r@@t ##1 ##2 { - \hbox_set:Nn \l_tmpa_box { + \cs_set_nopar:Npn \r@@t ##1 ##2 + { + \hbox_set:Nn \l_tmpa_box + { \c_math_toggle_token \m@th ##1 \sqrtsign { ##2 } \c_math_toggle_token - } - \um_mathstyle_scale:Nnn ##1 { \kern } { - \fontdimen 63 \l_um_font - } - \box_move_up:nn { + } + \um_mathstyle_scale:Nnn ##1 { \kern } + { \fontdimen 63 \l_um_font } + \box_move_up:nn + { (\box_ht:N \l_tmpa_box - \box_dp:N \l_tmpa_box) * \number \fontdimen 65 \l_um_font / 100 - } { - \box_use:N \rootbox - } - \um_mathstyle_scale:Nnn ##1 { \kern } { - \fontdimen 64 \l_um_font - } + } + { \box_use:N \rootbox } + \um_mathstyle_scale:Nnn ##1 { \kern } + { \fontdimen 64 \l_um_font } \box_use_clear:N \l_tmpa_box - } + } % \end{macrocode} % \end{macro} % \begin{macrocode} - } + } } %</XE> %<*LU> { - \@ifpackageloaded { amsmath } { } { + \@ifpackageloaded { amsmath } { } + { % \end{macrocode} % \begin{macro}{\root} % Redefine this macro for \LuaTeX, which provides us a nice primitive to use. % \begin{macrocode} - \cs_set:Npn \root ##1 \of ##2 { + \cs_set:Npn \root ##1 \of ##2 + { \luatexUroot \l_um_radical_sqrt_tl { ##1 } { ##2 } - } + } % \end{macrocode} % \end{macro} % \begin{macrocode} - } + } } %</LU> % \end{macrocode} @@ -5106,13 +5469,14 @@ end % \cs{um_fontdimen_to_scale:nn} returns a dimension correspond to the current % font size relative proportion based on that percentage. % \begin{macrocode} -\cs_new:Nn \um_fontdimen_to_percent:nn { +\cs_new:Nn \um_fontdimen_to_percent:nn + { \strip@pt\dimexpr\fontdimen#1#2*65536/100\relax -} + } \cs_new:Nn \um_fontdimen_to_scale:nn - { - \um_fontdimen_to_percent:nn {#1} {#2} \dimexpr \f@size pt\relax - } + { + \um_fontdimen_to_percent:nn {#1} {#2} \dimexpr \f@size pt\relax + } % \end{macrocode} % \end{macro} % \end{macro} @@ -5123,17 +5487,18 @@ end % \darg{Length control sequence to be scaled according to the math style} % This macro is used to scale the lengths reported by \cmd\fontdimen\ according to the scale factor for script- and scriptscript-size objects. % \begin{macrocode} -\cs_new:Nn \um_mathstyle_scale:Nnn { +\cs_new:Nn \um_mathstyle_scale:Nnn + { \ifx#1\scriptstyle - #2\um_fontdimen_to_percent:nn{10}\l_um_font#3 + #2 \um_fontdimen_to_percent:nn {10} \l_um_font #3 \else \ifx#1\scriptscriptstyle - #2\um_fontdimen_to_percent:nn{11}\l_um_font#3 + #2 \um_fontdimen_to_percent:nn {11} \l_um_font #3 \else - #2#3 + #2 #3 \fi \fi -} + } % \end{macrocode} % \end{macro} % @@ -5164,19 +5529,22 @@ end % \cs{scantokens} makes this process much simpler since we can activate the % char and assign its meaning in one step. % \begin{macrocode} -\cs_new:Nn \um_setup_active_superscript:nn { +\cs_new:Nn \um_setup_active_superscript:nn + { \prop_gput:Nxn \g_um_supers_prop {\meaning #1} {#2} \char_set_catcode_active:N #1 \char_gmake_mathactive:N #1 - \scantokens{ - \cs_gset:Npn #1 { + \scantokens + { + \cs_gset:Npn #1 + { \tl_set:Nn \l_um_ss_chain_tl {#2} \cs_set_eq:NN \um_sub_or_super:n \sp \tl_set:Nn \l_um_tmpa_tl {supers} \um_scan_sscript: - } - } -} + } + } + } % \end{macrocode} % Bam: % \begin{macrocode} @@ -5200,19 +5568,22 @@ end % \end{macrocode} % \paragraph{Subscripts} Ditto above. % \begin{macrocode} -\cs_new:Nn \um_setup_active_subscript:nn { +\cs_new:Nn \um_setup_active_subscript:nn + { \prop_gput:Nxn \g_um_subs_prop {\meaning #1} {#2} \char_set_catcode_active:N #1 \char_gmake_mathactive:N #1 - \scantokens{ - \cs_gset:Npn #1 { + \scantokens + { + \cs_gset:Npn #1 + { \tl_set:Nn \l_um_ss_chain_tl {#2} \cs_set_eq:NN \um_sub_or_super:n \sb \tl_set:Nn \l_um_tmpa_tl {subs} \um_scan_sscript: - } - } -} + } + } + } % \end{macrocode} % A few more subscripts than superscripts: % \begin{macrocode} @@ -5251,38 +5622,44 @@ end % \end{macrocode} % The scanning command, evident in its purpose: % \begin{macrocode} -\cs_new:Npn \um_scan_sscript: { - \um_scan_sscript:TF { +\cs_new:Npn \um_scan_sscript: + { + \um_scan_sscript:TF + { \um_scan_sscript: - }{ + } + { \um_sub_or_super:n {\l_um_ss_chain_tl} - } -} + } + } % \end{macrocode} % The main theme here is stolen from the source to the various \cs{peek_} functions. % Consider this function as simply boilerplate: % TODO: move all this to expl3, and don't use internal expl3 macros. % \begin{macrocode} -\cs_new:Npn \um_scan_sscript:TF #1#2 { +\cs_new:Npn \um_scan_sscript:TF #1#2 + { \tl_set:Nx \__peek_true_aux:w { \exp_not:n{ #1 } } \tl_set_eq:NN \__peek_true:w \__peek_true_remove:w \tl_set:Nx \__peek_false:w { \exp_not:n { \group_align_safe_end: #2 } } \group_align_safe_begin: \peek_after:Nw \um_peek_execute_branches_ss: -} + } % \end{macrocode} % We do not skip spaces when scanning ahead, and we explicitly wish to % bail out on encountering a space or a brace. % \begin{macrocode} -\cs_new:Npn \um_peek_execute_branches_ss: { - \bool_if:nTF { +\cs_new:Npn \um_peek_execute_branches_ss: + { + \bool_if:nTF + { \token_if_eq_catcode_p:NN \l_peek_token \c_group_begin_token || \token_if_eq_catcode_p:NN \l_peek_token \c_group_end_token || \token_if_eq_meaning_p:NN \l_peek_token \c_space_token - } - { \__peek_false:w } - { \um_peek_execute_branches_ss_aux: } -} + } + { \__peek_false:w } + { \um_peek_execute_branches_ss_aux: } + } % \end{macrocode} % This is the actual comparison code. % Because the peeking has already tokenised the next token, @@ -5295,7 +5672,8 @@ end % build up a chain of sub-/superscripts and iterate. (If not, exit and % typeset what we've already collected.) % \begin{macrocode} -\cs_new:Npn \um_peek_execute_branches_ss_aux: { +\cs_new:Npn \um_peek_execute_branches_ss_aux: + { \prop_if_in:cxTF {g_um_\l_um_tmpa_tl _prop} {\meaning\l_peek_token} { @@ -5305,7 +5683,7 @@ end \__peek_true:w } { \__peek_false:w } -} + } % \end{macrocode} % % \subsubsection{Active fractions} @@ -5314,24 +5692,29 @@ end % \LaTeX\ fraction declaration. % % \begin{macrocode} -\cs_new:Npn \um_define_active_frac:Nw #1 #2/#3 { +\cs_new:Npn \um_define_active_frac:Nw #1 #2/#3 + { \char_set_catcode_active:N #1 \char_gmake_mathactive:N #1 - \tl_rescan:nn { + \tl_rescan:nn + { \catcode`\_=11\relax \catcode`\:=11\relax - }{ - \cs_gset:Npx #1 { + } + { + \cs_gset:Npx #1 + { \bool_if:NTF \l_um_smallfrac_bool {\exp_not:N\tfrac} {\exp_not:N\frac} {#2} {#3} - } - } -} + } + } + } % \end{macrocode} % These are redefined for each math font selection in case the |active-frac| % feature changes. % \begin{macrocode} -\cs_new:Npn \um_setup_active_frac: { +\cs_new:Npn \um_setup_active_frac: + { \group_begin: \um_define_active_frac:Nw ^^^^2189 0/3 \um_define_active_frac:Nw ^^^^2152 1/{10} @@ -5353,7 +5736,7 @@ end \um_define_active_frac:Nw ^^^^215a 5/6 \um_define_active_frac:Nw ^^^^215e 7/8 \group_end: -} + } \um_setup_active_frac: % \end{macrocode} % @@ -5401,13 +5784,16 @@ end % This is wrong: it should be \unichar{003A} {colon} instead! % We hope no-one will notice. % \begin{macrocode} -\@ifpackageloaded{amsmath}{ +\@ifpackageloaded{amsmath} + { % define their own colon, perhaps I should just steal it. (It does look much better.) -}{ - \cs_set_protected:Npn \colon { + } + { + \cs_set_protected:Npn \colon + { \bool_if:NTF \g_um_literal_colon_bool {:} { \mathpunct{:} } - } -} + } + } % \end{macrocode} % \end{macro} % @@ -5450,30 +5836,36 @@ end % In this case it will be overwritten using the \meta{parameter text} and the \meta{new replacement text for \LuaTeX} or the \meta{new replacement text for \XeTeX}, depending on the engine. % Otherwise issue a warning and don’t overwrite. % \begin{macrocode} -\cs_new_protected_nopar:Npn \um_check_and_fix:NNnnnn #1 #2 #3 #4 #5 #6 { - \cs_if_exist:NT #1 { - \token_if_macro:NTF #1 { +\cs_new_protected_nopar:Nn \um_check_and_fix:NNnnnn + { + \cs_if_exist:NT #1 + { + \token_if_macro:NTF #1 + { \group_begin: #2 \um_tmpa:w #3 { #4 } - \cs_if_eq:NNTF #1 \um_tmpa:w { + \cs_if_eq:NNTF #1 \um_tmpa:w + { \msg_info:nnx { unicode-math } { patch-macro } { \token_to_str:N #1 } \group_end: #2 #1 #3 %<XE> { #6 } %<LU> { #5 } - } { + } + { \msg_warning:nnxxx { unicode-math } { wrong-meaning } { \token_to_str:N #1 } { \token_to_meaning:N #1 } { \token_to_meaning:N \um_tmpa:w } \group_end: - } - } { + } + } + { \msg_warning:nnx { unicode-math } { macro-expected } { \token_to_str:N #1 } - } - } -} + } + } + } % \end{macrocode} % \end{macro} % @@ -5489,9 +5881,10 @@ end % In this case it will be overwritten using the \meta{parameter text} and the \meta{new replacement text}. % Otherwise issue a warning and don’t overwrite. % \begin{macrocode} -\cs_new_protected_nopar:Npn \um_check_and_fix:NNnnn #1 #2 #3 #4 #5 { +\cs_new_protected_nopar:Nn \um_check_and_fix:NNnnn + { \um_check_and_fix:NNnnnn #1 #2 { #3 } { #4 } { #5 } { #5 } -} + } % \end{macrocode} % \end{macro} % @@ -5508,11 +5901,13 @@ end % In this case it will be overwritten using the \meta{parameter text} and the \meta{new replacement text}. % Otherwise issue a warning and don’t overwrite. % \begin{macrocode} -\cs_new_protected_nopar:Npn \um_check_and_fix_luatex:NNnnn #1 #2 #3 #4 #5 { - \luatex_if_engine:T { +\cs_new_protected_nopar:Nn \um_check_and_fix_luatex:NNnnn + { + \luatex_if_engine:T + { \um_check_and_fix:NNnnn #1 #2 { #3 } { #4 } { #5 } - } -} + } + } \cs_generate_variant:Nn \um_check_and_fix_luatex:NNnnn { c } % \end{macrocode} % \end{macro} @@ -5528,26 +5923,30 @@ end % but activates automatically so old documents that might change the \cs{url} % font still work correctly. % \begin{macrocode} -\AtEndOfPackageFile * {url} { +\AtEndOfPackageFile * {url} + { \tl_put_left:Nn \Url@FormatString { \um_switchto_mathup: } - \tl_put_right:Nn \UrlSpecials { + \tl_put_right:Nn \UrlSpecials + { \do\`{\mathchar`\`} \do\'{\mathchar`\'} \do\${\mathchar`\$} \do\&{\mathchar`\&} - } -} + } + } % \end{macrocode} % % \paragraph{\pkg{amsmath}} % Since the mathcode of |`\-| is greater than eight bits, this piece of |\AtBeginDocument| code from \pkg{amsmath} dies if we try and set the maths font in the preamble: % \begin{macrocode} -\AtEndOfPackageFile * {amsmath} { +\AtEndOfPackageFile * {amsmath} + { %<*XE> - \tl_remove_once:Nn \@begindocumenthook { + \tl_remove_once:Nn \@begindocumenthook + { \mathchardef\std@minus\mathcode`\-\relax \mathchardef\std@equal\mathcode`\=\relax - } + } \def\std@minus{\Umathcharnum\Umathcodenum`\-\relax} \def\std@equal{\Umathcharnum\Umathcodenum`\=\relax} %</XE> @@ -5560,14 +5959,16 @@ end % This isn't as clever as the \pkg{amsmath} definition but I think it works: % \begin{macrocode} %<*XE> - \def \resetMathstrut@ {% + \def \resetMathstrut@ + {% \setbox\z@\hbox{$($}%) \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@ - } + } % \end{macrocode} % The |subarray| environment uses inappropriate font dimensions. % \begin{macrocode} - \um_check_and_fix:NNnnn \subarray \cs_set:Npn { #1 } { + \um_check_and_fix:NNnnn \subarray \cs_set:Npn { #1 } + { \vcenter \bgroup \Let@ @@ -5583,19 +5984,21 @@ end $ \m@th \scriptstyle ## $ \hfil \crcr - } { + } + { \vcenter \c_group_begin_token \Let@ \restore@math@cr \default@tag - \skip_set:Nn \baselineskip { + \skip_set:Nn \baselineskip + { % \end{macrocode} % Here we use stack top shift + stack bottom shift, which sounds reasonable. % \begin{macrocode} \um_stack_num_up:N \scriptstyle + \um_stack_denom_down:N \scriptstyle - } + } % \end{macrocode} % Here we use the minimum stack gap. % \begin{macrocode} @@ -5611,43 +6014,51 @@ end \c_math_toggle_token \hfil \crcr - } + } %</XE> % \end{macrocode} % The roots need a complete rework. % \begin{macrocode} - \um_check_and_fix_luatex:NNnnn \plainroot@ \cs_set_nopar:Npn { #1 \of #2 } { - \setbox \rootbox \hbox { + \um_check_and_fix_luatex:NNnnn \plainroot@ \cs_set_nopar:Npn { #1 \of #2 } + { + \setbox \rootbox \hbox + { $ \m@th \scriptscriptstyle { #1 } $ - } + } \mathchoice { \r@@t \displaystyle { #2 } } { \r@@t \textstyle { #2 } }~ { \r@@t \scriptstyle { #2 } } { \r@@t \scriptscriptstyle { #2 } } \egroup - } { - \bool_if:nTF { + } + { + \bool_if:nTF + { \int_compare_p:nNn { \uproot@ } = { \c_zero } && \int_compare_p:nNn { \leftroot@ } = { \c_zero } - } { + } + { \luatexUroot \l_um_radical_sqrt_tl { #1 } { #2 } - } { - \hbox_set:Nn \rootbox { + } + { + \hbox_set:Nn \rootbox + { \c_math_toggle_token \m@th \scriptscriptstyle { #1 } \c_math_toggle_token - } + } \mathchoice { \r@@t \displaystyle { #2 } } { \r@@t \textstyle { #2 } } { \r@@t \scriptstyle { #2 } } { \r@@t \scriptscriptstyle { #2 } } - } + } \c_group_end_token - } - \um_check_and_fix:NNnnnn \r@@t \cs_set_nopar:Npn { #1 #2 } { + } + \um_check_and_fix:NNnnnn \r@@t \cs_set_nopar:Npn { #1 #2 } + { \setboxz@h { $ \m@th #1 \sqrtsign { #2 } $ } \dimen@ \ht\z@ \advance \dimen@ -\dp\z@ @@ -5659,69 +6070,82 @@ end \mkern -10mu \mkern \leftroot@ mu \boxz@ - } { - \hbox_set:Nn \l_tmpa_box { + } + { + \hbox_set:Nn \l_tmpa_box + { \c_math_toggle_token \m@th #1 \mskip \uproot@ mu \c_math_toggle_token - } - \luatexUroot \l_um_radical_sqrt_tl { - \box_move_up:nn { \box_wd:N \l_tmpa_box } { - \hbox:n { + } + \luatexUroot \l_um_radical_sqrt_tl + { + \box_move_up:nn { \box_wd:N \l_tmpa_box } + { + \hbox:n + { \c_math_toggle_token \m@th \mkern -\leftroot@ mu \box_use:N \rootbox \mkern \leftroot@ mu \c_math_toggle_token - } - } - } { - #2 - } - } { - \hbox_set:Nn \l_tmpa_box { + } + } + } + { #2 } + } + { + \hbox_set:Nn \l_tmpa_box + { \c_math_toggle_token \m@th #1 \sqrtsign { #2 } \c_math_toggle_token - } - \hbox_set:Nn \l_tmpb_box { + } + \hbox_set:Nn \l_tmpb_box + { \c_math_toggle_token \m@th #1 \mskip \uproot@ mu \c_math_toggle_token - } + } \mkern -\leftroot@ mu - \um_mathstyle_scale:Nnn #1 { \kern } { + \um_mathstyle_scale:Nnn #1 { \kern } + { \fontdimen 63 \l_um_font - } - \box_move_up:nn { + } + \box_move_up:nn + { \box_wd:N \l_tmpb_box + (\box_ht:N \l_tmpa_box - \box_dp:N \l_tmpa_box) * \number \fontdimen 65 \l_um_font / 100 - } { + } + { \box_use:N \rootbox - } - \um_mathstyle_scale:Nnn #1 { \kern } { + } + \um_mathstyle_scale:Nnn #1 { \kern } + { \fontdimen 64 \l_um_font - } + } \mkern \leftroot@ mu \box_use_clear:N \l_tmpa_box - } -} + } + } % \end{macrocode} % % \paragraph{\pkg{amsopn}} % This code is to improve the output of analphabetic symbols in text of operator names (\cs{sin}, \cs{cos}, etc.). Just comment out the offending lines for now: % \begin{macrocode} %<*XE> -\AtEndOfPackageFile * {amsopn} { - \cs_set:Npn \newmcodes@ { +\AtEndOfPackageFile * {amsopn} + { + \cs_set:Npn \newmcodes@ + { \mathcode`\'39\scan_stop: \mathcode`\*42\scan_stop: \mathcode`\."613A\scan_stop: @@ -5731,8 +6155,8 @@ end \mathcode`\-45\scan_stop: \mathcode`\/47\scan_stop: \mathcode`\:"603A\scan_stop: - } -} + } + } %</XE> % \end{macrocode} % \paragraph{Symbols} @@ -5746,48 +6170,61 @@ end % \end{macrocode} % \paragraph{Accents} % \begin{macrocode} -\cs_new_protected_nopar:Nn \um_setup_accents: { - \cs_gset_protected_nopar:Npx \widehat { +\cs_new_protected_nopar:Nn \um_setup_accents: + { + \cs_gset_protected_nopar:Npx \widehat + { \um_accent:nnn {} { \um_symfont_tl } { "0302 } - } - \cs_gset_protected_nopar:Npx \widetilde { + } + \cs_gset_protected_nopar:Npx \widetilde + { \um_accent:nnn {} { \um_symfont_tl } { "0303 } - } - \cs_gset_protected_nopar:Npx \overleftarrow { + } + \cs_gset_protected_nopar:Npx \overleftarrow + { \um_accent:nnn {} { \um_symfont_tl } { "20D6 } - } - \cs_gset_protected_nopar:Npx \overrightarrow { + } + \cs_gset_protected_nopar:Npx \overrightarrow + { \um_accent:nnn {} { \um_symfont_tl } { "20D7 } - } - \cs_gset_protected_nopar:Npx \overleftrightarrow { + } + \cs_gset_protected_nopar:Npx \overleftrightarrow + { \um_accent:nnn {} { \um_symfont_tl } { "20E1 } - } - \cs_gset_protected_nopar:Npx \wideutilde { + } + \cs_gset_protected_nopar:Npx \wideutilde + { \um_accent:nnn {bottom} { \um_symfont_tl } { "0330 } - } - \cs_gset_protected_nopar:Npx \underrightharpoondown { + } + \cs_gset_protected_nopar:Npx \underrightharpoondown + { \um_accent:nnn {bottom} { \um_symfont_tl } { "20EC } - } - \cs_gset_protected_nopar:Npx \underleftharpoondown { + } + \cs_gset_protected_nopar:Npx \underleftharpoondown + { \um_accent:nnn {bottom} { \um_symfont_tl } { "20ED } - } - \cs_gset_protected_nopar:Npx \underleftarrow { + } + \cs_gset_protected_nopar:Npx \underleftarrow + { \um_accent:nnn {bottom} { \um_symfont_tl } { "20EE } - } - \cs_gset_protected_nopar:Npx \underrightarrow { + } + \cs_gset_protected_nopar:Npx \underrightarrow + { \um_accent:nnn {bottom} { \um_symfont_tl } { "20EF } - } - \cs_gset_protected_nopar:Npx \underleftrightarrow { + } + \cs_gset_protected_nopar:Npx \underleftrightarrow + { \um_accent:nnn {bottom} { \um_symfont_tl } { "034D } - } -} + } + } % \end{macrocode} % % \begin{macrocode} \cs_set_eq:NN \um_text_slash: \slash -\cs_set_protected:Npn \slash { +\cs_set_protected:Npn \slash + { \mode_if_math:TF {\mathslash} {\um_text_slash:} -} + } % \end{macrocode} % % \paragraph{\cs{not}} @@ -5808,26 +6245,33 @@ end % \begin{macrocode} \tl_new:N \l_not_token_name_tl -\cs_new:Npn \not_newnot:N #1 { +\cs_new:Npn \not_newnot:N #1 + { \tl_set:Nx \l_not_token_name_tl { \token_to_str:N #1 } - \exp_args:Nx \tl_if_empty:nF { \tl_tail:V \l_not_token_name_tl } { + \exp_args:Nx \tl_if_empty:nF { \tl_tail:V \l_not_token_name_tl } + { \tl_set:Nx \l_not_token_name_tl { \tl_tail:V \l_not_token_name_tl } - } - \cs_if_exist:cTF { n \l_not_token_name_tl } { + } + \cs_if_exist:cTF { n \l_not_token_name_tl } + { \use:c { n \l_not_token_name_tl } - } { - \cs_if_exist:cTF { not \l_not_token_name_tl } { + } + { + \cs_if_exist:cTF { not \l_not_token_name_tl } + { \use:c { not \l_not_token_name_tl } - } { + } + { \not_oldnot: #1 %\l_not_token_name_tl - } - } -} + } + } + } -\cs_new_protected_nopar:Nn \um_setup_negations: { - \cs_set_eq:NN \not_oldnot: \not - \cs_set_eq:NN \not \not_newnot:N +\cs_set_eq:NN \not_oldnot: \not +\cs_set_eq:NN \not \not_newnot:N +\cs_new_protected_nopar:Nn \um_setup_negations: + { \cs_gset:cpn { not= } { \neq } \cs_gset:cpn { not< } { \nless } \cs_gset:cpn { not> } { \ngtr } @@ -5838,27 +6282,29 @@ end \cs_gset:Npn \nge { \ngeq } \cs_gset:Npn \ngreater { \ngtr } \cs_gset:Npn \nforksnot { \forks } -} + } % \end{macrocode} % % \paragraph{\pkg{mathtools}} % \pkg{mathtools}’s |\cramped| command and others that make use of its internal version use an incorrect font dimension. % % \begin{macrocode} -\AtEndOfPackageFile * { mathtools } { +\AtEndOfPackageFile * { mathtools } + { %<*XE> \newfam \g_um_empty_fam \um_check_and_fix:NNnnn \MT_cramped_internal:Nn \cs_set_nopar:Npn { #1 #2 } - { - \sbox \z@ { + { + \sbox \z@ + { $ \m@th #1 \nulldelimiterspace = \z@ \radical \z@ { #2 } $ - } + } \ifx #1 \displaystyle \dimen@ = \fontdimen 8 \textfont 3 \advance \dimen@ .25 \fontdimen 5 \textfont 2 @@ -5878,13 +6324,14 @@ end \advance \dimen@ -\ht\z@ \ht\z@ = -\dimen@ \box\z@ - } + } % \end{macrocode} % The \XeTeX\ version is pretty similar to the legacy version, only using the correct font dimensions. % Note we used `\verb|\XeTeXradical|' with a newly-allocated empty family to make sure that the radical rule width is not set. % \begin{macrocode} - { - \hbox_set:Nn \l_tmpa_box { + { + \hbox_set:Nn \l_tmpa_box + { \color@setgroup \c_math_toggle_token \m@th @@ -5893,32 +6340,37 @@ end \XeTeXradical \g_um_empty_fam \c_zero { #2 } \c_math_toggle_token \color@endgroup - } - \box_set_ht:Nn \l_tmpa_box { + } + \box_set_ht:Nn \l_tmpa_box + { \box_ht:N \l_tmpa_box % \end{macrocode} % Here we use the radical vertical gap. % \begin{macrocode} - \um_radical_vgap:N #1 - } + } \box_use_clear:N \l_tmpa_box - } + } %</XE> % \end{macrocode} +% % \begin{macro}{\overbracket} % \begin{macro}{\underbracket} % \pkg{mathtools}’s |\overbracket| and |\underbracket| take optional % arguments and are defined in terms of rules, so we keep them, and rename % ours to |\Uoverbracket| and |\Uunderbracket|. % \begin{macrocode} -\AtEndOfPackageFile * { mathtools } { - \let\MToverbracket =\overbracket - \let\MTunderbracket=\underbracket +\AtEndOfPackageFile * { mathtools } + { + \cs_set_eq:NN \MToverbracket \overbracket + \cs_set_eq:NN \MTunderbracket \underbracket - \AtBeginDocument { - \msg_warning:nn { unicode-math } { mathtools-overbracket } + \AtBeginDocument + { + \msg_warning:nn { unicode-math } { mathtools-overbracket } - \def\downbracketfill#1#2{% + \def\downbracketfill#1#2 + {% % \end{macrocode} % Original definition used the height of |\braceld| which is not available % with Unicode fonts, so we are hard coding the $5/18$ex suggested by @@ -5928,19 +6380,20 @@ end \downbracketend{#1}{#2} \leaders \vrule \@height #1 \@depth \z@ \hfill \downbracketend{#1}{#2}% - } - \def\upbracketfill#1#2{% + } + \def\upbracketfill#1#2 + {% \edef\l_MT_bracketheight_fdim{.27ex}% \upbracketend{#1}{#2} \leaders \vrule \@height \z@ \@depth #1 \hfill \upbracketend{#1}{#2}% - } + } \let\Uoverbracket =\overbracket \let\Uunderbracket=\underbracket \let\overbracket =\MToverbracket \let\underbracket =\MTunderbracket - } -} + } + } % \end{macrocode} % \end{macro} % \end{macro} @@ -5960,7 +6413,7 @@ end \NewDocumentCommand \coloneqq { } { \coloneq } \NewDocumentCommand \Coloneqq { } { \Coloneq } \NewDocumentCommand \eqqcolon { } { \eqcolon } -} + } % \end{macrocode} % \end{macro} % \end{macro} @@ -5979,7 +6432,8 @@ end % combinations. Fortunately there are no name clashes, so we can just % overwrite their definitions. % \begin{macrocode} -\AtEndOfPackageFile * { colonequals } { +\AtEndOfPackageFile * { colonequals } + { \msg_warning:nn { unicode-math } { colonequals } \RenewDocumentCommand \ratio { } { \mathratio } \RenewDocumentCommand \coloncolon { } { \Colon } @@ -5987,7 +6441,7 @@ end \RenewDocumentCommand \colonequals { } { \coloneq } \RenewDocumentCommand \equalscolon { } { \eqcolon } \RenewDocumentCommand \coloncolonequals { } { \Coloneq } -} + } % \end{macrocode} % \end{macro} % \end{macro} @@ -6064,11 +6518,11 @@ end } \msg_new:nnn { unicode-math } { mathtools-overbracket } { Using~ \token_to_str:N \overbracket\ and~ - \token_to_str:N \underbracke\ from~ + \token_to_str:N \underbracket\ from~ `mathtools'~ package.\\ \\ Use~ \token_to_str:N \Uoverbracket\ and~ - \token_to_str:N \Uunderbracke\ for~ + \token_to_str:N \Uunderbracket\ for~ original~ `unicode-math'~ definition. } \msg_new:nnn { unicode-math } { mathtools-colon } { @@ -6432,11 +6886,23 @@ end \fvset{gobble=2,fontsize=\small,xleftmargin=2em} %\usepackage[rm,small]{titlesec} -\setmainfont[Ligatures=TeX]{TeX Gyre Pagella} -\setsansfont[Scale=MatchLowercase,Ligatures=TeX]{Iwona} -\setmonofont[Scale=MatchLowercase]{Inconsolata} +\setmainfont{TeX Gyre Pagella} +\setsansfont{Iwona}% + [ + Scale=MatchLowercase, + Extension = .otf, + UprightFont = *-Regular, + ItalicFont = *-Italic, + BoldFont = *-Bold, + BoldItalicFont = *-BoldItalic, + ] +\setmonofont{Inconsolatazi4-Regular.otf}% + [ + Scale=MatchLowercase, + BoldFont=Inconsolatazi4-Bold.otf + ] \setmathfont{texgyrepagella-math.otf} -\newfontface\umfont{XITS Math} +\newfontface\umfont{xits-math.otf} \usepackage{hypdoc} \hypersetup{linktocpage} @@ -6512,4 +6978,4 @@ end % \endinput - + diff --git a/Master/texmf-dist/source/latex/unicode-math/unimath-symbols.ltx b/Master/texmf-dist/source/latex/unicode-math/unimath-symbols.ltx index 96211735e86..e1998c08069 100644 --- a/Master/texmf-dist/source/latex/unicode-math/unimath-symbols.ltx +++ b/Master/texmf-dist/source/latex/unicode-math/unimath-symbols.ltx @@ -1,4 +1,4 @@ -%!TEX TS-program = XeLaTeX +%!TEX TS-program = LuaLaTeX %%%%%%%%%%%%%%%%%%%%%%% % SYMBOLS DEFINED BY UNICODE-MATH @@ -80,6 +80,11 @@ \makebox[0pt][l] { \color[gray]{0.7} \textsuperscript{\sffamily (p)} } } + \tl_if_in:NnT \LTXSYM {#2} + { + \makebox[0pt][l] + { \color[gray]{0.7} \textsuperscript{\sffamily (l)} } + } \tl_if_in:NnT \AMSSYMB {#2} { \makebox[0pt][l] @@ -99,7 +104,29 @@ \fi } -\def\PLAIN{\alpha\beta\gamma\delta\epsilon\zeta\eta\theta\iota\kappa\lambda\mu\nu\xi\pi\rho\sigma\tau\upsilon\phi\chi\psi\omega\varepsilon\vartheta\varpi\varrho\varsigma\varphi\Gamma\Delta\Theta\Lambda\Xi\Pi\Sigma\Upsilon\Phi\Psi\Omega\aleph\hbar\imath\jmath\ell\wp\Re\Im\partial\infty\prime\emptyset\nabla\surd\top\bot\angle\triangle\forall\exists\neg\flat\natural\sharp\clubsuit\diamondsuit\heartsuit\spadesuit\coprod\bigvee\bigwedge\biguplus\bigcap\bigcup\int\prod\sum\bigotimes\bigoplus\bigodot\oint\bigsqcup\smallint\triangleleft\triangleright\bigtriangleup\bigtriangledown\wedge\land\vee\lor\cap\cup\ddagger\dagger\sqcap\sqcup\uplus\amalg\diamond\bullet\wr\div\odot\oslash\otimes\ominus\oplus\mp\pm\circ\bigcirc\setminus\cdot\ast\times\star\propto\sqsubseteq\sqsupseteq\parallel\mid\dashv\vdash\nearrow\searrow\nwarrow\swarrow\Leftrightarrow\Leftarrow\Rightarrow\neq\ne\lnot\leq\le\geq\ge\succ\prec\approx\succeq\preceq\supset\subset\supseteq\subseteq\in\ni\owns\gg\ll\not\leftrightarrow\leftarrow\gets\rightarrow\to\mapstochar\mapsto\sim\simeq\perp\equiv\asymp\smile\frown\leftharpoonup\leftharpoondown\rightharpoonup\rightharpoondown\joinrel\relbar\Relbar\lhook\hookrightarrow\rhook\hookleftarrow\bowtie\models\Longrightarrow\longrightarrow\longleftarrow\Longleftarrow\longmapsto\longleftrightarrow\Longleftrightarrow\iff\ldotp\cdotp\colon\ldots\cdots\vdots\ddots\acute\grave\ddot\tilde\bar\breve\check\hat\vec\dot\widetilde\widehat\overrightarrow\overleftarrow\overbrace\underbrace\lmoustache\rmoustache\lgroup\rgroup\arrowvert\Arrowvert\bracevert\Vert\vert\uparrow\downarrow\updownarrow\Uparrow\Downarrow\Updownarrow\backslash\rangle\langle\rbrace\lbrace\rceil\lceil\rfloor\lfloor\sqrt} +\def\PLAIN{\alpha\beta\gamma\delta\epsilon\zeta\eta\theta\iota\kappa\lambda\mu\nu\xi\pi\rho\sigma\tau\upsilon\phi\chi\psi\omega\varepsilon\vartheta\varpi\varrho\varsigma\varphi\Gamma\Delta\Theta\Lambda\Xi\Pi\Sigma\Upsilon\Phi\Psi\Omega +% +\aleph\hbar\imath\jmath\ell\wp\Re\Im\partial\infty\prime\emptyset\nabla\surd\top\bot\angle\triangle\forall\exists\neg\flat\natural\sharp\clubsuit\diamondsuit\heartsuit\spadesuit +% +\coprod\bigvee\bigwedge\biguplus\bigcap\bigcup\int\prod\sum\bigotimes\bigoplus\bigodot\oint\bigsqcup\smallint +% +\triangleleft\triangleright\bigtriangleup\bigtriangledown\wedge\land\vee\lor\cap\cup\ddagger\dagger\sqcap\sqcup\uplus\amalg\diamond\bullet\wr\div\odot\oslash\otimes\ominus\oplus\mp\pm\circ\bigcirc\setminus\cdot\ast\times\star\propto\sqsubseteq\sqsupseteq\parallel\mid\dashv\vdash\nearrow\searrow\nwarrow\swarrow\Leftrightarrow\Leftarrow\Rightarrow\neq\ne\lnot\leq\le\geq\ge\succ\prec\approx\succeq\preceq\supset\subset\supseteq\subseteq\in\ni\owns\gg\ll\not\leftrightarrow\leftarrow\gets\rightarrow\to\mapstochar\mapsto\sim\simeq\perp\equiv\asymp\smile\frown\leftharpoonup\leftharpoondown\rightharpoonup\rightharpoondown +% +\joinrel\relbar\Relbar\lhook\hookrightarrow\rhook\hookleftarrow\bowtie\models\Longrightarrow\longrightarrow\longleftarrow\Longleftarrow\longmapsto\longleftrightarrow\Longleftrightarrow\iff +% +\ldotp\cdotp\colon\ldots\cdots\vdots\ddots +% +\acute\grave\ddot\tilde\bar\breve\check\hat\vec\dot\widetilde\widehat +% +\overrightarrow\overleftarrow\overbrace\underbrace\lmoustache\rmoustache\lgroup\rgroup\arrowvert\Arrowvert\bracevert\Vert\vert\uparrow\downarrow\updownarrow\Uparrow\Downarrow\Updownarrow\backslash\rangle\langle\rbrace\lbrace\rceil\lceil\rfloor\lfloor\sqrt} + +\def\LTXSYM{ +\cong +\notin +\rightleftharpoons +\doteq +\mathring +} \def\AMSSYMB{\boxdot\boxplus\boxtimes\square\blacksquare\centerdot\lozenge\blacklozenge\circlearrowright\circlearrowleft\leftrightharpoons\boxminus\Vdash\Vvdash\vDash\twoheadrightarrow\twoheadleftarrow\leftleftarrows\rightrightarrows\upuparrows\downdownarrows\upharpoonright\restriction\downharpoonright\upharpoonleft\downharpoonleft\rightarrowtail\leftarrowtail\leftrightarrows\rightleftarrows\Lsh\Rsh\rightsquigarrow\leftrightsquigarrow\looparrowleft\looparrowright\circeq\succsim\gtrsim\gtrapprox\multimap\therefore\because\doteqdot\Doteq\triangleq\precsim\lesssim\lessapprox\eqslantless\eqslantgtr\curlyeqprec\curlyeqsucc\preccurlyeq\leqq\leqslant\lessgtr\backprime\risingdotseq\fallingdotseq\succcurlyeq\geqq\geqslant\gtrless\vartriangleright\vartriangleleft\trianglerighteq\trianglelefteq\bigstar\between\blacktriangledown\blacktriangleright\blacktriangleleft\vartriangle\blacktriangle\triangledown\eqcirc\lesseqgtr\gtreqless\lesseqqgtr\gtreqqless\Rrightarrow\Lleftarrow\veebar\barwedge\doublebarwedge\measuredangle\sphericalangle\varpropto\smallsmile\smallfrown\Subset\Supset\Cup\doublecup\Cap\doublecap\curlywedge\curlyvee\leftthreetimes\rightthreetimes\subseteqq\supseteqq\bumpeq\Bumpeq\lll\llless\ggg\gggtr\circledS\pitchfork\dotplus\backsim\backsimeq\complement\intercal\circledcirc\circledast\circleddash\lvertneqq\gvertneqq\nleq\ngeq\nless\ngtr\nprec\nsucc\lneqq\gneqq\nleqslant\ngeqslant\lneq\gneq\npreceq\nsucceq\precnsim\succnsim\lnsim\gnsim\nleqq\ngeqq\precneqq\succneqq\precnapprox\succnapprox\lnapprox\gnapprox\nsim\ncong\diagup\diagdown\varsubsetneq\varsupsetneq\nsubseteqq\nsupseteqq\subsetneqq\supsetneqq\varsubsetneqq\varsupsetneqq\subsetneq\supsetneq\nsubseteq\nsupseteq\nparallel\nmid\nshortmid\nshortparallel\nvdash\nVdash\nvDash\nVDash\ntrianglerighteq\ntrianglelefteq\ntriangleleft\ntriangleright\nleftarrow\nrightarrow\nLeftarrow\nRightarrow\nLeftrightarrow\nleftrightarrow\divideontimes\varnothing\nexists\Finv\Game\eth\eqsim\beth\gimel\daleth\lessdot\gtrdot\ltimes\rtimes\shortmid\shortparallel\smallsetminus\thicksim\thickapprox\approxeq\succapprox\precapprox\curvearrowleft\curvearrowright\digamma\varkappa\Bbbk\hslash\backepsilon} @@ -123,6 +150,7 @@ Eight fonts are shown: (with approximate symbol counts) \item[E] \mathversion{euler} $\mathup{Neo\ Euler}$ (\ref{count:euler}) \end{itemize} Symbols defined in Plain \TeX\ are indicated with {\color[gray]{0.6} \textsuperscript{\sffamily (p)}} after their macro name. +\LaTeX\ follows Plain \TeX, but defines a handful more, indicated with {\color[gray]{0.6} \textsuperscript{\sffamily (l)}} Symbols defined in \textsf{amssymb} are indicated with {\color[gray]{0.6} \textsuperscript{\sffamily (a)}}. \tableofcontents diff --git a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty index 1cdc3c23ce1..e0588b9875c 100644 --- a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty +++ b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty @@ -15,74 +15,61 @@ %% %% This work is "maintained" by Will Robertson. \ExplSyntaxOn -\ifnum\luatexversion<75% - \cs_new:Nn \um_cs_compat:n - { \cs_set_eq:cc {U#1} {luatexU#1} } - \um_cs_compat:n {mathcode} - \um_cs_compat:n {delcode} - \um_cs_compat:n {mathcodenum} - \um_cs_compat:n {mathcharnum} - \um_cs_compat:n {mathchardef} - \um_cs_compat:n {radical} - \um_cs_compat:n {mathaccent} - \um_cs_compat:n {delimiter} -\fi -\RequirePackage { lualatex-math } [ 2011/08/07 ] -\RequirePackage { luatexbase } -\RequirePackage { luaotfload } [ 2010/11/26 ] -\RequireLuaModule { unicode-math } [ 2012/04/23 ] -\cs_new:Nn \usv_set:nnn { +\RequirePackage{luaotfload} [2014/05/18] +\RequirePackage{lualatex-math}[2011/08/07] +\cs_new:Nn \usv_set:nnn + { \tl_set:cn { \um_to_usv:nn {#1}{#2} } {#3} -} + } \cs_new:Nn \um_to_usv:nn { g_um_#1_#2_usv } -\usv_set:nnn {up}{num}{48} -\usv_set:nnn {up}{Latin}{65} -\usv_set:nnn {up}{latin}{97} -\usv_set:nnn {up}{Greek}{"391} -\usv_set:nnn {up}{greek}{"3B1} -\usv_set:nnn {it}{Latin}{"1D434} -\usv_set:nnn {it}{latin}{"1D44E} -\usv_set:nnn {it}{Greek}{"1D6E2} -\usv_set:nnn {it}{greek}{"1D6FC} -\usv_set:nnn {bb}{num}{"1D7D8} -\usv_set:nnn {bb}{Latin}{"1D538} -\usv_set:nnn {bb}{latin}{"1D552} -\usv_set:nnn {scr}{Latin}{"1D49C} -\usv_set:nnn {cal}{Latin}{"1D49C} -\usv_set:nnn {scr}{latin}{"1D4B6} +\usv_set:nnn {up} {num} {48} +\usv_set:nnn {up} {Latin}{65} +\usv_set:nnn {up} {latin}{97} +\usv_set:nnn {up} {Greek}{"391} +\usv_set:nnn {up} {greek}{"3B1} +\usv_set:nnn {it} {Latin}{"1D434} +\usv_set:nnn {it} {latin}{"1D44E} +\usv_set:nnn {it} {Greek}{"1D6E2} +\usv_set:nnn {it} {greek}{"1D6FC} +\usv_set:nnn {bb} {num} {"1D7D8} +\usv_set:nnn {bb} {Latin}{"1D538} +\usv_set:nnn {bb} {latin}{"1D552} +\usv_set:nnn {scr} {Latin}{"1D49C} +\usv_set:nnn {cal} {Latin}{"1D49C} +\usv_set:nnn {scr} {latin}{"1D4B6} \usv_set:nnn {frak}{Latin}{"1D504} \usv_set:nnn {frak}{latin}{"1D51E} -\usv_set:nnn {sf}{num}{"1D7E2} -\usv_set:nnn {sfup}{num}{"1D7E2} -\usv_set:nnn {sfit}{num}{"1D7E2} +\usv_set:nnn {sf} {num} {"1D7E2} +\usv_set:nnn {sfup}{num} {"1D7E2} +\usv_set:nnn {sfit}{num} {"1D7E2} \usv_set:nnn {sfup}{Latin}{"1D5A0} -\usv_set:nnn {sf}{Latin}{"1D5A0} +\usv_set:nnn {sf} {Latin}{"1D5A0} \usv_set:nnn {sfup}{latin}{"1D5BA} -\usv_set:nnn {sf}{latin}{"1D5BA} +\usv_set:nnn {sf} {latin}{"1D5BA} \usv_set:nnn {sfit}{Latin}{"1D608} \usv_set:nnn {sfit}{latin}{"1D622} -\usv_set:nnn {tt}{num}{"1D7F6} -\usv_set:nnn {tt}{Latin}{"1D670} -\usv_set:nnn {tt}{latin}{"1D68A} -\usv_set:nnn {bf}{num}{"1D7CE} -\usv_set:nnn {bfup}{num}{"1D7CE} -\usv_set:nnn {bfit}{num}{"1D7CE} -\usv_set:nnn {bfup}{Latin}{"1D400} -\usv_set:nnn {bfup}{latin}{"1D41A} -\usv_set:nnn {bfup}{Greek}{"1D6A8} -\usv_set:nnn {bfup}{greek}{"1D6C2} -\usv_set:nnn {bfit}{Latin}{"1D468} -\usv_set:nnn {bfit}{latin}{"1D482} -\usv_set:nnn {bfit}{Greek}{"1D71C} -\usv_set:nnn {bfit}{greek}{"1D736} +\usv_set:nnn {tt} {num} {"1D7F6} +\usv_set:nnn {tt} {Latin}{"1D670} +\usv_set:nnn {tt} {latin}{"1D68A} +\usv_set:nnn {bf} {num} {"1D7CE} +\usv_set:nnn {bfup} {num} {"1D7CE} +\usv_set:nnn {bfit} {num} {"1D7CE} +\usv_set:nnn {bfup} {Latin}{"1D400} +\usv_set:nnn {bfup} {latin}{"1D41A} +\usv_set:nnn {bfup} {Greek}{"1D6A8} +\usv_set:nnn {bfup} {greek}{"1D6C2} +\usv_set:nnn {bfit} {Latin}{"1D468} +\usv_set:nnn {bfit} {latin}{"1D482} +\usv_set:nnn {bfit} {Greek}{"1D71C} +\usv_set:nnn {bfit} {greek}{"1D736} \usv_set:nnn {bffrak}{Latin}{"1D56C} \usv_set:nnn {bffrak}{latin}{"1D586} -\usv_set:nnn {bfscr}{Latin}{"1D4D0} -\usv_set:nnn {bfcal}{Latin}{"1D4D0} -\usv_set:nnn {bfscr}{latin}{"1D4EA} -\usv_set:nnn {bfsf}{num}{"1D7EC} -\usv_set:nnn {bfsfup}{num}{"1D7EC} -\usv_set:nnn {bfsfit}{num}{"1D7EC} +\usv_set:nnn {bfscr} {Latin}{"1D4D0} +\usv_set:nnn {bfcal} {Latin}{"1D4D0} +\usv_set:nnn {bfscr} {latin}{"1D4EA} +\usv_set:nnn {bfsf} {num} {"1D7EC} +\usv_set:nnn {bfsfup}{num} {"1D7EC} +\usv_set:nnn {bfsfit}{num} {"1D7EC} \usv_set:nnn {bfsfup}{Latin}{"1D5D4} \usv_set:nnn {bfsfup}{latin}{"1D5EE} \usv_set:nnn {bfsfup}{Greek}{"1D756} @@ -91,53 +78,53 @@ \usv_set:nnn {bfsfit}{latin}{"1D656} \usv_set:nnn {bfsfit}{Greek}{"1D790} \usv_set:nnn {bfsfit}{greek}{"1D7AA} -\usv_set:nnn {bfsf}{Latin}{ \bool_if:NTF \g_um_upLatin_bool \g_um_bfsfup_Latin_usv \g_um_bfsfit_Latin_usv } -\usv_set:nnn {bfsf}{latin}{ \bool_if:NTF \g_um_uplatin_bool \g_um_bfsfup_latin_usv \g_um_bfsfit_latin_usv } -\usv_set:nnn {bfsf}{Greek}{ \bool_if:NTF \g_um_upGreek_bool \g_um_bfsfup_Greek_usv \g_um_bfsfit_Greek_usv } -\usv_set:nnn {bfsf}{greek}{ \bool_if:NTF \g_um_upgreek_bool \g_um_bfsfup_greek_usv \g_um_bfsfit_greek_usv } -\usv_set:nnn {bf}{Latin}{ \bool_if:NTF \g_um_bfupLatin_bool \g_um_bfup_Latin_usv \g_um_bfit_Latin_usv } -\usv_set:nnn {bf}{latin}{ \bool_if:NTF \g_um_bfuplatin_bool \g_um_bfup_latin_usv \g_um_bfit_latin_usv } -\usv_set:nnn {bf}{Greek}{ \bool_if:NTF \g_um_bfupGreek_bool \g_um_bfup_Greek_usv \g_um_bfit_Greek_usv } -\usv_set:nnn {bf}{greek}{ \bool_if:NTF \g_um_bfupgreek_bool \g_um_bfup_greek_usv \g_um_bfit_greek_usv } -\usv_set:nnn {up}{varTheta}{"3F4} -\usv_set:nnn {up}{Digamma}{"3DC} +\usv_set:nnn {bfsf}{Latin}{ \bool_if:NTF \g_um_upLatin_bool \g_um_bfsfup_Latin_usv \g_um_bfsfit_Latin_usv } +\usv_set:nnn {bfsf}{latin}{ \bool_if:NTF \g_um_uplatin_bool \g_um_bfsfup_latin_usv \g_um_bfsfit_latin_usv } +\usv_set:nnn {bfsf}{Greek}{ \bool_if:NTF \g_um_upGreek_bool \g_um_bfsfup_Greek_usv \g_um_bfsfit_Greek_usv } +\usv_set:nnn {bfsf}{greek}{ \bool_if:NTF \g_um_upgreek_bool \g_um_bfsfup_greek_usv \g_um_bfsfit_greek_usv } +\usv_set:nnn {bf} {Latin}{ \bool_if:NTF \g_um_bfupLatin_bool \g_um_bfup_Latin_usv \g_um_bfit_Latin_usv } +\usv_set:nnn {bf} {latin}{ \bool_if:NTF \g_um_bfuplatin_bool \g_um_bfup_latin_usv \g_um_bfit_latin_usv } +\usv_set:nnn {bf} {Greek}{ \bool_if:NTF \g_um_bfupGreek_bool \g_um_bfup_Greek_usv \g_um_bfit_Greek_usv } +\usv_set:nnn {bf} {greek}{ \bool_if:NTF \g_um_bfupgreek_bool \g_um_bfup_greek_usv \g_um_bfit_greek_usv } +\usv_set:nnn {up}{varTheta} {"3F4} +\usv_set:nnn {up}{Digamma} {"3DC} \usv_set:nnn {up}{varepsilon}{"3F5} -\usv_set:nnn {up}{vartheta}{"3D1} -\usv_set:nnn {up}{varkappa}{"3F0} -\usv_set:nnn {up}{varphi}{"3D5} -\usv_set:nnn {up}{varrho}{"3F1} -\usv_set:nnn {up}{varpi}{"3D6} -\usv_set:nnn {up}{digamma}{"3DD} -\usv_set:nnn {bfup}{varTheta}{"1D6B9} -\usv_set:nnn {bfup}{Digamma}{"1D7CA} +\usv_set:nnn {up}{vartheta} {"3D1} +\usv_set:nnn {up}{varkappa} {"3F0} +\usv_set:nnn {up}{varphi} {"3D5} +\usv_set:nnn {up}{varrho} {"3F1} +\usv_set:nnn {up}{varpi} {"3D6} +\usv_set:nnn {up}{digamma} {"3DD} +\usv_set:nnn {bfup}{varTheta} {"1D6B9} +\usv_set:nnn {bfup}{Digamma} {"1D7CA} \usv_set:nnn {bfup}{varepsilon}{"1D6DC} -\usv_set:nnn {bfup}{vartheta}{"1D6DD} -\usv_set:nnn {bfup}{varkappa}{"1D6DE} -\usv_set:nnn {bfup}{varphi}{"1D6DF} -\usv_set:nnn {bfup}{varrho}{"1D6E0} -\usv_set:nnn {bfup}{varpi}{"1D6E1} -\usv_set:nnn {bfup}{digamma}{"1D7CB} -\usv_set:nnn {it}{varTheta}{"1D6F3} +\usv_set:nnn {bfup}{vartheta} {"1D6DD} +\usv_set:nnn {bfup}{varkappa} {"1D6DE} +\usv_set:nnn {bfup}{varphi} {"1D6DF} +\usv_set:nnn {bfup}{varrho} {"1D6E0} +\usv_set:nnn {bfup}{varpi} {"1D6E1} +\usv_set:nnn {bfup}{digamma} {"1D7CB} +\usv_set:nnn {it}{varTheta} {"1D6F3} \usv_set:nnn {it}{varepsilon}{"1D716} -\usv_set:nnn {it}{vartheta}{"1D717} -\usv_set:nnn {it}{varkappa}{"1D718} -\usv_set:nnn {it}{varphi}{"1D719} -\usv_set:nnn {it}{varrho}{"1D71A} -\usv_set:nnn {it}{varpi}{"1D71B} -\usv_set:nnn {bfit}{varTheta}{"1D72D} +\usv_set:nnn {it}{vartheta} {"1D717} +\usv_set:nnn {it}{varkappa} {"1D718} +\usv_set:nnn {it}{varphi} {"1D719} +\usv_set:nnn {it}{varrho} {"1D71A} +\usv_set:nnn {it}{varpi} {"1D71B} +\usv_set:nnn {bfit}{varTheta} {"1D72D} \usv_set:nnn {bfit}{varepsilon}{"1D750} -\usv_set:nnn {bfit}{vartheta}{"1D751} -\usv_set:nnn {bfit}{varkappa}{"1D752} -\usv_set:nnn {bfit}{varphi}{"1D753} -\usv_set:nnn {bfit}{varrho}{"1D754} -\usv_set:nnn {bfit}{varpi}{"1D755} -\usv_set:nnn {bfsfup}{varTheta}{"1D767} +\usv_set:nnn {bfit}{vartheta} {"1D751} +\usv_set:nnn {bfit}{varkappa} {"1D752} +\usv_set:nnn {bfit}{varphi} {"1D753} +\usv_set:nnn {bfit}{varrho} {"1D754} +\usv_set:nnn {bfit}{varpi} {"1D755} +\usv_set:nnn {bfsfup}{varTheta} {"1D767} \usv_set:nnn {bfsfup}{varepsilon}{"1D78A} -\usv_set:nnn {bfsfup}{vartheta}{"1D78B} -\usv_set:nnn {bfsfup}{varkappa}{"1D78C} -\usv_set:nnn {bfsfup}{varphi}{"1D78D} -\usv_set:nnn {bfsfup}{varrho}{"1D78E} -\usv_set:nnn {bfsfup}{varpi}{"1D78F} +\usv_set:nnn {bfsfup}{vartheta} {"1D78B} +\usv_set:nnn {bfsfup}{varkappa} {"1D78C} +\usv_set:nnn {bfsfup}{varphi} {"1D78D} +\usv_set:nnn {bfsfup}{varrho} {"1D78E} +\usv_set:nnn {bfsfup}{varpi} {"1D78F} \usv_set:nnn {bfsfit}{varTheta} {"1D7A1} \usv_set:nnn {bfsfit}{varepsilon}{"1D7C4} \usv_set:nnn {bfsfit}{vartheta} {"1D7C5} @@ -265,7 +252,8 @@ \usv_set:nnn {frak}{I}{"2111} \usv_set:nnn {frak}{R}{"211C} \usv_set:nnn {frak}{Z}{"2128} -\tl_map_inline:nn { +\tl_map_inline:nn + { \new@mathgroup\cdp@list\cdp@elt\DeclareMathSizes \@DeclareMathSizes\newmathalphabet\newmathalphabet@@\newmathalphabet@@@ \DeclareMathVersion\define@mathalphabet\define@mathgroup\addtoversion @@ -279,43 +267,17 @@ \@DeclareMathDelimiter\@xDeclareMathDelimiter\set@mathdelimiter \set@@mathdelimiter\DeclareMathRadical\mathchar@type \DeclareSymbolFontAlphabet\DeclareSymbolFontAlphabet@ -}{ + } + { \tl_remove_once:Nn \@preamblecmds {\do#1} -} -\cs_set:Nn \um_set_mathsymbol:nNNn { + } +\cs_set:Nn \um_set_mathsymbol:nNNn + { \tl_case:Nnn #3 { - \mathop { \um_set_big_operator:nnn {#1} {#2} {#4} } - \mathopen - { - \tl_if_in:NnTF \l_um_radicals_tl {#2} - { - \cs_gset_protected_nopar:cpx {\cs_to_str:N #2 sign} - { \um_radical:nn {#1} {#4} } - \tl_set:cn {l_um_radical_\cs_to_str:N #2_tl} {\use:c{sym #1}~ #4} - } - { - \um_set_delcode:nnn {#1} {#4} {#4} - \um_set_mathcode:nnn {#4} \mathopen {#1} - \cs_gset_protected_nopar:Npx #2 - { \um_delimiter:Nnn \mathopen {#1} {#4} } - } - } - \mathclose - { - \um_set_delcode:nnn {#1} {#4} {#4} - \um_set_mathcode:nnn {#4} \mathclose {#1} - \cs_gset_protected_nopar:Npx #2 - { \um_delimiter:Nnn \mathclose {#1} {#4} } - } - \mathfence - { - \um_set_mathcode:nnn {#4} {#3} {#1} - \um_set_delcode:nnn {#1} {#4} {#4} - \cs_gset_protected_nopar:cpx {l \cs_to_str:N #2} - { \um_delimiter:Nnn \mathopen {#1} {#4} } - \cs_gset_protected_nopar:cpx {r \cs_to_str:N #2} - { \um_delimiter:Nnn \mathclose {#1} {#4} } - } + \mathop { \um_set_big_operator:nnn {#1} {#2} {#4} } + \mathopen { \um_set_math_open:nnn {#1} {#2} {#4} } + \mathclose { \um_set_math_close:nnn {#1} {#2} {#4} } + \mathfence { \um_set_math_fence:nnnn {#1} {#2} {#3} {#4} } \mathaccent { \cs_gset_protected_nopar:Npx #2 { \um_accent:nnn {fixed} {#1} {#4} } } \mathbotaccent @@ -333,76 +295,56 @@ }{ \um_set_mathcode:nnn {#4} {#3} {#1} } -} + } \edef\mathfence{\string\mathfence} \edef\mathover{\string\mathover} \edef\mathunder{\string\mathunder} \edef\mathbotaccent{\string\mathbotaccent} -\cs_new:Nn \um_set_big_operator:nnn { +\cs_new:Nn \um_set_big_operator:nnn + { \group_begin: \char_set_catcode_active:n {#3} \char_gmake_mathactive:n {#3} \um_active_char_set:wc #3 \q_nil { \cs_to_str:N #2 _sym } \group_end: \um_set_mathchar:cNnn {\cs_to_str:N #2 op} \mathop {#1} {#3} - \cs_gset:cpx { \cs_to_str:N #2 _sym } { + \cs_gset:cpx { \cs_to_str:N #2 _sym } + { \exp_not:c { \cs_to_str:N #2 op } \exp_not:n { \tl_if_in:NnT \l_um_nolimits_tl {#2} \nolimits } - } -} -\cs_set:Npn \um_set_mathcode:nnnn #1#2#3#4 { - \Umathcode \int_eval:n {#1} = - \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#4} \scan_stop: -} -\cs_set:Npn \um_set_mathcode:nnn #1#2#3 { - \Umathcode \int_eval:n {#1} = - \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#1} \scan_stop: -} -\cs_set:Npn \um_set_mathchar:NNnn #1#2#3#4 { - \Umathchardef #1 = - \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#4} \scan_stop: -} -\cs_new:Nn \um_set_delcode:nnn { - \Udelcode#2 = \csname sym#1\endcsname #3 -} -\cs_new:Nn \um_radical:nn { - \Uradical \csname sym#1\endcsname #2 \scan_stop: -} -\cs_new:Nn \um_delimiter:Nnn { - \Udelimiter \mathchar@type#1 \csname sym#2\endcsname #3 \scan_stop: -} -\cs_new:Nn \um_accent:nnn { - \Umathaccent #1~ \mathchar@type\mathaccent \use:c { sym #2 } #3 \scan_stop: -} -\cs_generate_variant:Nn \um_set_mathchar:NNnn {c} -\cs_new:Nn \char_gmake_mathactive:N { - \global\mathcode `#1 = "8000 \scan_stop: -} -\cs_new:Nn \char_gmake_mathactive:n { - \global\mathcode #1 = "8000 \scan_stop: -} -\cs_new:Nn \um_init: { - \bool_set_true:N \l_um_ot_math_bool - \cs_set_eq:NN \glb@currsize \scan_stop: - \bool_set_true:N \l_um_init_bool - \seq_clear:N \l_um_char_range_seq - \clist_clear:N \l_um_char_num_range_clist - \seq_clear:N \l_um_mathalph_seq - \seq_clear:N \l_um_missing_alph_seq - \tl_set:Nn \l_um_mversion_tl {normal} - \tl_set:Nn \um_symfont_tl {operators} - \cs_set_eq:NN \_um_sym:nnn \um_process_symbol_noparse:nnn - \cs_set_eq:NN \um_set_mathalphabet_char:Nnn \um_mathmap_noparse:Nnn - \cs_set_eq:NN \um_remap_symbol:nnn \um_remap_symbol_noparse:nnn - \cs_set_eq:NN \um_maybe_init_alphabet:n \um_init_alphabet:n - \cs_set_eq:NN \um_map_char_single:nn \um_map_char_noparse:nn - \cs_set_eq:NN \um_assign_delcode:nn \um_assign_delcode_noparse:nn - \cs_set_eq:NN \um_make_mathactive:nNN \um_make_mathactive_noparse:nNN - \tl_set:Nn \l_um_script_features_tl {Style=MathScript} - \tl_set:Nn \l_um_sscript_features_tl {Style=MathScriptScript} - \tl_set_eq:NN \l_um_script_font_tl \l_um_fontname_tl - \tl_set_eq:NN \l_um_sscript_font_tl \l_um_fontname_tl -} + } + } +\cs_new:Nn \um_set_math_open:nnn + { + \tl_if_in:NnTF \l_um_radicals_tl {#2} + { + \cs_gset_protected_nopar:cpx {\cs_to_str:N #2 sign} + { \um_radical:nn {#1} {#3} } + \tl_set:cn {l_um_radical_\cs_to_str:N #2_tl} {\use:c{sym #1}~ #3} + } + { + \um_set_delcode:nnn {#1} {#3} {#3} + \um_set_mathcode:nnn {#3} \mathopen {#1} + \cs_gset_protected_nopar:Npx #2 + { \um_delimiter:Nnn \mathopen {#1} {#3} } + } + } +\cs_new:Nn \um_set_math_close:nnn + { + \um_set_delcode:nnn {#1} {#3} {#3} + \um_set_mathcode:nnn {#3} \mathclose {#1} + \cs_gset_protected_nopar:Npx #2 + { \um_delimiter:Nnn \mathclose {#1} {#3} } + } +\cs_new:Nn \um_set_math_fence:nnnn + { + \um_set_mathcode:nnn {#4} {#3} {#1} + \um_set_delcode:nnn {#1} {#4} {#4} + \cs_gset_protected_nopar:cpx {l \cs_to_str:N #2} + { \um_delimiter:Nnn \mathopen {#1} {#4} } + \cs_gset_protected_nopar:cpx {r \cs_to_str:N #2} + { \um_delimiter:Nnn \mathclose {#1} {#4} } + } \DeclareDocumentCommand \setmathfont { O{} m } { \tl_set:Nn \l_um_fontname_tl {#2} \um_init: @@ -421,15 +363,16 @@ \tl_set:Nn \l_um_tmpa_tl {normal} \tl_if_eq:NNT \l_um_mversion_tl \l_um_tmpa_tl { - \SetSymbolFont{\um_symfont_tl}{bold} + \SetSymbolFont{\um_symfont_tl}{bold} {\encodingdefault}{\l_um_family_tl}{\bfdefault}{\updefault} } - \bool_if:nT {\l_um_ot_math_bool && !\g_um_mainfont_already_set_bool} { + \bool_if:nT { \l_um_ot_math_bool && !\g_um_mainfont_already_set_bool } + { \bool_set_true:N \g_um_mainfont_already_set_bool \um_declare_math_sizes: \um_setup_legacy_fam_two: \um_setup_legacy_fam_three: - } + } \um_input_math_symbol_table: \um_remap_symbols: \um_setup_mathactives: @@ -439,6 +382,30 @@ \um_setup_negations: \ignorespaces } +\cs_set_eq:NN \resetmathfont \setmathfont +\cs_new:Nn \um_init: + { + \bool_set_true:N \l_um_ot_math_bool + \cs_set_eq:NN \glb@currsize \scan_stop: + \bool_set_true:N \l_um_init_bool + \seq_clear:N \l_um_char_range_seq + \clist_clear:N \l_um_char_num_range_clist + \seq_clear:N \l_um_mathalph_seq + \seq_clear:N \l_um_missing_alph_seq + \tl_set:Nn \l_um_mversion_tl {normal} + \tl_set:Nn \um_symfont_tl {operators} + \cs_set_eq:NN \_um_sym:nnn \um_process_symbol_noparse:nnn + \cs_set_eq:NN \um_set_mathalphabet_char:Nnn \um_mathmap_noparse:Nnn + \cs_set_eq:NN \um_remap_symbol:nnn \um_remap_symbol_noparse:nnn + \cs_set_eq:NN \um_maybe_init_alphabet:n \um_init_alphabet:n + \cs_set_eq:NN \um_map_char_single:nn \um_map_char_noparse:nn + \cs_set_eq:NN \um_assign_delcode:nn \um_assign_delcode_noparse:nn + \cs_set_eq:NN \um_make_mathactive:nNN \um_make_mathactive_noparse:nNN + \tl_set:Nn \l_um_script_features_tl {Style=MathScript} + \tl_set:Nn \l_um_sscript_features_tl {Style=MathScriptScript} + \tl_set_eq:NN \l_um_script_font_tl \l_um_fontname_tl + \tl_set_eq:NN \l_um_sscript_font_tl \l_um_fontname_tl + } \cs_new:Nn \um_declare_math_sizes: { \dim_compare:nF { \fontdimen 10 \l_um_font == 0pt } @@ -454,7 +421,8 @@ { \l_um_font_keyval_tl, Scale=1.00001, - FontAdjustment={ + FontAdjustment = + { \fontdimen8\font= \um_get_fontparam:nn {43} {FractionNumeratorDisplayStyleShiftUp}\relax \fontdimen9\font= \um_get_fontparam:nn {42} {FractionNumeratorShiftUp}\relax \fontdimen10\font=\um_get_fontparam:nn {32} {StackTopShiftUp}\relax @@ -470,7 +438,7 @@ \fontdimen20\font=0pt\relax % delim1 = FractionDelimiterDisplaySize \fontdimen21\font=0pt\relax % delim2 = FractionDelimiterSize \fontdimen22\font=\um_get_fontparam:nn {15} {AxisHeight}\relax - } + } } {\l_um_fontname_tl} \SetSymbolFont{symbols}{\l_um_mversion_tl} {\encodingdefault}{\l_um_family_tl}{\mddefault}{\updefault} @@ -509,23 +477,28 @@ } \cs_new:Nn \um_get_fontparam:nn { \directlua{fontspec.mathfontdimen("l_um_font","#2")} } -\cs_set_eq:NN \resetmathfont \setmathfont -\cs_new:Nn \um_fontspec_select_font: { +\cs_new:Nn \um_fontspec_select_font: + { \tl_set:Nx \l_um_font_keyval_tl { Renderer = Basic, BoldItalicFont = {}, ItalicFont = {}, Script = Math, - SizeFeatures = { - {Size = \tf@size-} , - {Size = \sf@size-\tf@size , + SizeFeatures = + { + { + Size = \tf@size- + } , + { + Size = \sf@size-\tf@size , Font = \l_um_script_font_tl , \l_um_script_features_tl } , - {Size = -\sf@size , + { + Size = -\sf@size , Font = \l_um_sscript_font_tl , \l_um_sscript_features_tl } - }, + } , \l_um_unknown_keys_clist } \fontspec_set_fontface:NNxn \l_um_font \l_um_family_tl @@ -534,33 +507,43 @@ \fontfamily{\l_um_family_tl}\selectfont \fontspec_if_script:nF {math} {\bool_gset_false:N \l_um_ot_math_bool} \group_end: -} -\cs_set:Npn \um_process_symbol_noparse:nnn #1#2#3 { + } +\cs_set:Nn \um_process_symbol_noparse:nnn + { \um_set_mathsymbol:nNNn {\um_symfont_tl} #2#3{#1} -} -\cs_set:Npn \um_process_symbol_parse:nnn #1#2#3 { - \um_if_char_spec:nNNT{#1}{#2}{#3}{ + } +\cs_set:Nn \um_process_symbol_parse:nnn + { + \um_if_char_spec:nNNT{#1}{#2}{#3} + { \um_process_symbol_noparse:nnn {#1}{#2}{#3} - } -} -\cs_new:Npn \um_remap_symbols: { + } + } +\cs_new:Npn \um_remap_symbols: + { \um_remap_symbol:nnn{`\-}{\mathbin}{"02212}% hyphen to minus \um_remap_symbol:nnn{`\*}{\mathbin}{"02217}% text asterisk to "centred asterisk" - \bool_if:NF \g_um_literal_colon_bool { + \bool_if:NF \g_um_literal_colon_bool + { \um_remap_symbol:nnn{`\:}{\mathrel}{"02236}% colon to ratio (i.e., punct to rel) - } -} -\cs_new:Nn \um_remap_symbol_parse:nnn { - \um_if_char_spec:nNNT {#3} {\@nil} {#2} { + } + } +\cs_new:Nn \um_remap_symbol_parse:nnn + { + \um_if_char_spec:nNNT {#3} {\@nil} {#2} + { \um_remap_symbol_noparse:nnn {#1} {#2} {#3} - } -} -\cs_new:Nn \um_remap_symbol_noparse:nnn { - \clist_map_inline:nn {#1} { + } + } +\cs_new:Nn \um_remap_symbol_noparse:nnn + { + \clist_map_inline:nn {#1} + { \um_set_mathcode:nnnn {##1} {#2} {\um_symfont_tl} {#3} - } -} -\cs_new:Npn \um_setup_mathactives: { + } + } +\cs_new:Npn \um_setup_mathactives: + { \um_make_mathactive:nNN {"2032} \um_prime_single_mchar \mathord \um_make_mathactive:nNN {"2033} \um_prime_double_mchar \mathord \um_make_mathactive:nNN {"2034} \um_prime_triple_mchar \mathord @@ -570,7 +553,7 @@ \um_make_mathactive:nNN {"2037} \um_backprime_triple_mchar \mathord \um_make_mathactive:nNN {`\'} \mathstraightquote \mathord \um_make_mathactive:nNN {`\`} \mathbacktick \mathord -} + } \cs_new:Nn \um_make_mathactive_parse:nNN { \um_if_char_spec:nNNT {#1} #2 #3 @@ -581,16 +564,20 @@ \um_set_mathchar:NNnn #2 #3 {\um_symfont_tl} {#1} \char_gmake_mathactive:n {#1} } -\cs_new:Nn \um_assign_delcode_noparse:nn { +\cs_new:Nn \um_assign_delcode_noparse:nn + { \um_set_delcode:nnn \um_symfont_tl {#1} {#2} -} -\cs_new:Nn \um_assign_delcode_parse:nn { - \um_if_char_spec:nNNT {#2}{\@nil}{\@nil} { + } +\cs_new:Nn \um_assign_delcode_parse:nn + { + \um_if_char_spec:nNNT {#2} {\@nil} {\@nil} + { \um_assign_delcode_noparse:nn {#1} {#2} - } -} + } + } \cs_new:Nn \um_assign_delcode:n { \um_assign_delcode:nn {#1} {#1} } -\cs_new:Npn \um_setup_delcodes: { +\cs_new:Npn \um_setup_delcodes: + { \um_assign_delcode:nn {`\.} {\c_zero} % ensure \left. and \right. work \um_assign_delcode:nn {`\/} {\g_um_slash_delimiter_usv} \um_assign_delcode:nn {"2044} {\g_um_slash_delimiter_usv} % fracslash @@ -625,21 +612,24 @@ \um_assign_delcode:n {"21E9} % down white arrow \um_assign_delcode:n {"21EA} % up white arrow from bar \um_assign_delcode:n {"21F3} % updown white arrow -} + } \tl_new:N \l_um_nolimits_tl -\tl_set:Nn \l_um_nolimits_tl { +\tl_set:Nn \l_um_nolimits_tl + { \int\iint\iiint\iiiint\oint\oiint\oiiint \intclockwise\varointclockwise\ointctrclockwise\sumint \intbar\intBar\fint\cirfnint\awint\rppolint \scpolint\npolint\pointint\sqint\intlarhk\intx \intcap\intcup\upint\lowint -} -\DeclareDocumentCommand \addnolimits {m} { + } +\DeclareDocumentCommand \addnolimits {m} + { \tl_put_right:Nn \l_um_nolimits_tl {#1} -} -\DeclareDocumentCommand \removenolimits {m} { + } +\DeclareDocumentCommand \removenolimits {m} + { \tl_remove_all:Nn \l_um_nolimits_tl {#1} -} + } \tl_new:N \l_um_radicals_tl \tl_set:Nn \l_um_radicals_tl {\sqrt \longdivision} \cs_new_protected_nopar:Nn \um_new_cramped_style:N @@ -655,22 +645,26 @@ \um_font_param_aux:ccc { um_ #1 :N } { um_set_ #1 :N } { luatexUmath \l_um_tmpa_tl } } -\cs_new_protected_nopar:Npn \um_font_param:nnn #1 #2 #3 { +\cs_new_protected_nopar:Nn \um_font_param:nnn + { \um_font_param:nnnnn { #1 } { #2 } { #2 } { #3 } { #3 } -} -\cs_new_protected_nopar:Npn \um_font_param:nn #1 #2 { + } +\cs_new_protected_nopar:Nn \um_font_param:nn + { \um_font_param:nnnnn { #1 } { #2 } { #2 } { #2 } { #2 } -} + } \cs_new_protected_nopar:Nn \um_font_param:n { \um_font_param:nnnnn { #1 } { 0 } { 0 } { 0 } { 0 } } \cs_new_protected_nopar:Nn \um_font_param_aux:NNN { - \cs_new_nopar:Npn #1 ##1 { + \cs_new_nopar:Npn #1 ##1 + { #3 ##1 - } - \cs_new_protected_nopar:Npn #2 ##1 ##2 { + } + \cs_new_protected_nopar:Npn #2 ##1 ##2 + { #3 ##1 \dim_eval:n { ##2 } - } + } } \cs_generate_variant:Nn \um_font_param_aux:NNN { ccc } \um_font_param:nn { axis } { 15 } @@ -758,17 +752,18 @@ } } \keys_define:nn {unicode-math} -{ + { script-features .tl_set:N = \l_um_script_features_tl , sscript-features .tl_set:N = \l_um_sscript_features_tl , script-font .tl_set:N = \l_um_script_font_tl , sscript-font .tl_set:N = \l_um_sscript_font_tl , -} + } \seq_new:N \l_um_mathalph_seq \seq_new:N \l_um_char_range_seq \seq_new:N \l_um_mclass_range_seq \seq_new:N \l_um_cmd_range_seq -\keys_define:nn {unicode-math} { +\keys_define:nn {unicode-math} + { range .code:n = { \bool_set_false:N \l_um_init_bool \int_incr:N \g_um_fam_int @@ -802,7 +797,7 @@ } } } -} + } \seq_new:N \g_um_mathclasses_seq \seq_set_from_clist:Nn \g_um_mathclasses_seq { @@ -902,14 +897,17 @@ \bool_if:NTF \g_um_texgreek_bool \mitphi \mitvarphi } } -\cs_new:Nn \um_new_mathstyle:N { +\cs_new:Nn \um_new_mathstyle:N + { \um_prepare_mathstyle:f {\exp_after:wN \use_none:nnnnn \token_to_str:N #1} \seq_put_right:Nn \g_um_mathstyles_seq {#1} -} + } \seq_new:N \g_um_default_mathalph_seq \seq_new:N \g_um_mathstyles_seq -\AtEndOfPackage{ -\clist_map_inline:nn { +\AtEndOfPackage + { +\clist_map_inline:nn + { {\mathup } {latin,Latin,greek,Greek,num,misc} {\mathup } , {\mathit } {latin,Latin,greek,Greek,misc} {\mathit } , {\mathbb } {latin,Latin,num,misc} {\mathbb } , @@ -927,21 +925,26 @@ {\mathbffrak} {latin,Latin} {\mathbffrak} , {\mathbfsfup} {latin,Latin,greek,Greek,num,misc} {\mathbfsfup} , {\mathbfsfit} {latin,Latin,greek,Greek,misc} {\mathbfsfit} -}{ + } + { \seq_put_right:Nn \g_um_default_mathalph_seq {#1} \exp_after:wN \um_new_mathstyle:N \use_i:nnn #1 -} -\um_new_mathstyle:N \mathsf -\um_new_mathstyle:N \mathbf -\um_new_mathstyle:N \mathbfsf -} -\cs_new:Nn \um_prepare_mathstyle:n { + } + \um_new_mathstyle:N \mathsf + \um_new_mathstyle:N \mathbf + \um_new_mathstyle:N \mathbfsf + } +\cs_new:Nn \um_prepare_mathstyle:n + { \um_init_alphabet:x {#1} - \cs_set:cpn {_um_math#1_aux:n} ##1 { + \cs_set:cpn {_um_math#1_aux:n} ##1 + { \use:c {um_switchto_math#1:} ##1 \egroup - } - \cs_set_protected:cpx {math#1} { - \exp_not:n{ + } + \cs_set_protected:cpx {math#1} + { + \exp_not:n + { \bgroup \mode_if_math:F { @@ -949,22 +952,25 @@ \non@alpherr\expandafter{\csname math#1\endcsname\space} } \tl_set:Nn \l_um_mathstyle_tl {#1} - } + } \exp_not:c {_um_math#1_aux:n} - } -} + } + } \tl_new:N \l_um_mathstyle_tl \cs_generate_variant:Nn \um_prepare_mathstyle:n {f} -\cs_set:Npn \um_init_alphabet:n #1 { +\cs_set:Nn \um_init_alphabet:n + { \um_log:nx {alph-initialise} {#1} \cs_set_eq:cN {um_switchto_math#1:} \prg_do_nothing: -} + } \cs_generate_variant:Nn \um_init_alphabet:n {x} -\cs_new:Npn \um_maybe_init_alphabet:V { +\cs_new:Npn \um_maybe_init_alphabet:V + { \exp_args:NV \um_maybe_init_alphabet:n -} + } \seq_new:N \l_um_missing_alph_seq -\cs_new:Npn \um_setup_alphabets: { +\cs_new:Npn \um_setup_alphabets: + { \seq_if_empty:NTF \l_um_mathalph_seq { \um_log:n {setup-implicit} \seq_set_eq:NN \l_um_mathalph_seq \g_um_default_mathalph_seq @@ -995,93 +1001,123 @@ \l_um_tmpa_tl \l_um_tmpb_tl \l_um_remap_style_tl } \seq_if_empty:NF \l_um_missing_alph_seq { \um_log:n { missing-alphabets } } -} -\cs_new:Nn \um_setup_math_alphabet:Nnn { - \tl_set:Nx \l_um_style_tl { + } +\cs_new:Nn \um_setup_math_alphabet:Nnn + { + \tl_set:Nx \l_um_style_tl + { \exp_after:wN \use_none:nnnnn \token_to_str:N #1 - } - \clist_map_inline:nn {#2} { + } + \clist_map_inline:nn {#2} + { \tl_set:Nx \l_um_tmpa_tl { \tl_trim_spaces:n {##1} } - \cs_if_exist:cT {um_config_ \l_um_style_tl _\l_um_tmpa_tl :n} { - \str_if_eq_x:nnTF {\l_um_tmpa_tl}{misc} { + \cs_if_exist:cT {um_config_ \l_um_style_tl _\l_um_tmpa_tl :n} + { + \str_if_eq_x:nnTF {\l_um_tmpa_tl}{misc} + { \um_maybe_init_alphabet:V \l_um_style_tl \clist_map_break: - }{ - \um_glyph_if_exist:cT { \um_to_usv:nn {#3}{\l_um_tmpa_tl} }{ + } + { + \um_glyph_if_exist:cT { \um_to_usv:nn {#3}{\l_um_tmpa_tl} } + { \um_maybe_init_alphabet:V \l_um_style_tl \clist_map_break: - } - } - } - } - \clist_map_inline:nn {#2} { + } + } + } + } + \clist_map_inline:nn {#2} + { \tl_set:Nx \l_um_tmpa_tl { \tl_trim_spaces:n {##1} } - \cs_if_exist:cT {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} { - \str_if_eq_x:nnTF {\l_um_tmpa_tl}{misc} { + \cs_if_exist:cT {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} + { + \str_if_eq_x:nnTF {\l_um_tmpa_tl}{misc} + { \um_log:nx {setup-alph} {math \l_um_style_tl~(\l_um_tmpa_tl)} \use:c {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} {#3} - }{ - \um_glyph_if_exist:cTF { \um_to_usv:nn {#3}{\l_um_tmpa_tl} } { + } + { + \um_glyph_if_exist:cTF { \um_to_usv:nn {#3}{\l_um_tmpa_tl} } + { \um_log:nx {setup-alph} {math \l_um_style_tl~(\l_um_tmpa_tl)} \use:c {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} {#3} - }{ - \bool_if:NTF \l_um_implicit_alph_bool { - \seq_put_right:Nx \l_um_missing_alph_seq { + } + { + \bool_if:NTF \l_um_implicit_alph_bool + { + \seq_put_right:Nx \l_um_missing_alph_seq + { \@backslashchar math \l_um_style_tl \space (\tl_use:c{c_um_math_alphabet_name_ \l_um_tmpa_tl _tl}) - } - }{ + } + } + { \use:c {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} {up} - } - } - } - } - } -} + } + } + } + } + } + } \cs_generate_variant:Nn \um_setup_math_alphabet:Nnn {VVV} \cs_new:Npn \um_map_char_single:cc { \exp_args:Ncc \um_map_char_single:nn } -\cs_new:Nn \um_map_char_noparse:nn { +\cs_new:Nn \um_map_char_noparse:nn + { \um_set_mathcode:nnnn {#1}{\mathalpha}{\um_symfont_tl}{#2} -} -\cs_new:Nn \um_map_char_parse:nn { - \um_if_char_spec:nNNT {#1} {\@nil} {\mathalpha} { + } +\cs_new:Nn \um_map_char_parse:nn + { + \um_if_char_spec:nNNT {#1} {\@nil} {\mathalpha} + { \um_map_char_noparse:nn {#1}{#2} - } -} -\cs_new:Nn \um_map_char_single:nnn { + } + } +\cs_new:Nn \um_map_char_single:nnn + { \um_map_char_single:cc { \um_to_usv:nn {#1}{#3} } { \um_to_usv:nn {#2}{#3} } -} -\cs_set:Npn \um_map_single:nnn #1#2#3 { + } +\cs_set:Nn \um_map_single:nnn + { \cs_if_exist:cT { \um_to_usv:nn {#3} {#1} } { - \clist_map_inline:nn {#2} { + \clist_map_inline:nn {#2} + { \um_map_char_single:nnn {##1} {#3} {#1} - } + } } -} -\cs_set:Npn \um_map_chars_range:nnn #1#2#3 { + } +\cs_set:Nn \um_map_chars_range:nnn + { \int_step_inline:nnnn {0}{1}{#1-1} { \um_map_char_single:nn {#2+##1}{#3+##1} } -} + } \cs_generate_variant:Nn \um_map_chars_range:nnn {ncc} -\cs_new:Nn \um_map_chars_range:nnnn { +\cs_new:Nn \um_map_chars_range:nnnn + { \um_map_chars_range:ncc {#1} { \um_to_usv:nn {#2}{#4} } { \um_to_usv:nn {#3}{#4} } -} -\cs_new:Nn \um_map_chars_Latin:nn { - \clist_map_inline:nn {#1} { + } +\cs_new:Nn \um_map_chars_Latin:nn + { + \clist_map_inline:nn {#1} + { \um_map_chars_range:nnnn {26} {##1} {#2} {Latin} - } -} -\cs_new:Nn \um_map_chars_latin:nn { - \clist_map_inline:nn {#1} { + } + } +\cs_new:Nn \um_map_chars_latin:nn + { + \clist_map_inline:nn {#1} + { \um_map_chars_range:nnnn {26} {##1} {#2} {latin} - } -} -\cs_new:Nn \um_map_chars_greek:nn { - \clist_map_inline:nn {#1} { + } + } +\cs_new:Nn \um_map_chars_greek:nn + { + \clist_map_inline:nn {#1} + { \um_map_chars_range:nnnn {25} {##1} {#2} {greek} \um_map_char_single:nnn {##1} {#2} {varepsilon} \um_map_char_single:nnn {##1} {#2} {vartheta} @@ -1089,73 +1125,95 @@ \um_map_char_single:nnn {##1} {#2} {varphi} \um_map_char_single:nnn {##1} {#2} {varrho} \um_map_char_single:nnn {##1} {#2} {varpi} - } -} -\cs_new:Nn \um_map_chars_Greek:nn { - \clist_map_inline:nn {#1} { + } + } +\cs_new:Nn \um_map_chars_Greek:nn + { + \clist_map_inline:nn {#1} + { \um_map_chars_range:nnnn {25} {##1} {#2} {Greek} \um_map_char_single:nnn {##1} {#2} {varTheta} - } -} -\cs_new:Nn \um_map_chars_numbers:nn { + } + } +\cs_new:Nn \um_map_chars_numbers:nn + { \um_map_chars_range:nnnn {10} {#1} {#2} {num} -} -\cs_new:Npn \um_set_mathalphabet_char:Ncc { + } +\cs_new:Npn \um_set_mathalphabet_char:Ncc + { \exp_args:NNcc \um_set_mathalphabet_char:Nnn -} -\cs_new:Nn \um_mathmap_noparse:Nnn { - \clist_map_inline:nn {#2} { - \tl_put_right:cx {um_switchto_\cs_to_str:N #1:} { + } +\cs_new:Nn \um_mathmap_noparse:Nnn + { + \clist_map_inline:nn {#2} + { + \tl_put_right:cx {um_switchto_\cs_to_str:N #1:} + { \um_set_mathcode:nnnn{##1}{\mathalpha}{\um_symfont_tl}{#3} - } - } -} -\cs_new:Nn \um_mathmap_parse:Nnn { - \clist_if_in:NnT \l_um_char_num_range_clist {#3} { + } + } + } +\cs_new:Nn \um_mathmap_parse:Nnn + { + \clist_if_in:NnT \l_um_char_num_range_clist {#3} + { \um_mathmap_noparse:Nnn {#1}{#2}{#3} - } -} -\cs_new:Npn \um_set_mathalphabet_char:Nnnn #1#2#3#4 { + } + } +\cs_new:Nn \um_set_mathalphabet_char:Nnnn + { \um_set_mathalphabet_char:Ncc #1 { \um_to_usv:nn {#2} {#4} } { \um_to_usv:nn {#3} {#4} } -} -\cs_new:Npn \um_set_mathalph_range:nNnn #1#2#3#4 { + } +\cs_new:Nn \um_set_mathalph_range:nNnn + { \int_step_inline:nnnn {0}{1}{#1-1} { \um_set_mathalphabet_char:Nnn {#2} { ##1 + #3 } { ##1 + #4 } } -} + } \cs_generate_variant:Nn \um_set_mathalph_range:nNnn {nNcc} -\cs_new:Npn \um_set_mathalph_range:nNnnn #1#2#3#4#5 { +\cs_new:Nn \um_set_mathalph_range:nNnnn + { \um_set_mathalph_range:nNcc {#1} #2 { \um_to_usv:nn {#3} {#5} } { \um_to_usv:nn {#4} {#5} } -} -\cs_new:Npn \um_set_mathalphabet_pos:Nnnn #1#2#3#4 { - \cs_if_exist:cT { \um_to_usv:nn {#4}{#2} } { + } +\cs_new:Nn \um_set_mathalphabet_pos:Nnnn + { + \cs_if_exist:cT { \um_to_usv:nn {#4}{#2} } + { \clist_map_inline:nn {#3} { \um_set_mathalphabet_char:Nnnn #1 {##1} {#4} {#2} } - } -} -\cs_new:Nn \um_set_mathalphabet_numbers:Nnn { + } + } +\cs_new:Nn \um_set_mathalphabet_numbers:Nnn + { \clist_map_inline:nn {#2} { \um_set_mathalph_range:nNnnn {10} #1 {##1} {#3} {num} } -} -\cs_new:Nn \um_set_mathalphabet_Latin:Nnn { + } +\cs_new:Nn \um_set_mathalphabet_Latin:Nnn + { \clist_map_inline:nn {#2} { \um_set_mathalph_range:nNnnn {26} #1 {##1} {#3} {Latin} } -} -\cs_new:Nn \um_set_mathalphabet_latin:Nnn { - \clist_map_inline:nn {#2} { + } +\cs_new:Nn \um_set_mathalphabet_latin:Nnn + { + \clist_map_inline:nn {#2} + { \um_set_mathalph_range:nNnnn {26} #1 {##1} {#3} {latin} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {h} - } -} -\cs_new:Nn \um_set_mathalphabet_Greek:Nnn { - \clist_map_inline:nn {#2} { + } + } +\cs_new:Nn \um_set_mathalphabet_Greek:Nnn + { + \clist_map_inline:nn {#2} + { \um_set_mathalph_range:nNnnn {25} #1 {##1} {#3} {Greek} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varTheta} - } -} -\cs_new:Nn \um_set_mathalphabet_greek:Nnn { - \clist_map_inline:nn {#2} { + } + } +\cs_new:Nn \um_set_mathalphabet_greek:Nnn + { + \clist_map_inline:nn {#2} + { \um_set_mathalph_range:nNnnn {25} #1 {##1} {#3} {greek} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varepsilon} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {vartheta} @@ -1163,127 +1221,172 @@ \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varphi} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varrho} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varpi} - } -} -\cs_new:Nn \um_config_up_num:n { + } + } +\cs_new:Nn \um_config_up_num:n + { \um_map_chars_numbers:nn {up}{#1} \um_set_mathalphabet_numbers:Nnn \mathup {up}{#1} -} + } + \cs_new:Nn \um_config_up_Latin:n - { - \bool_if:NTF \g_um_literal_bool { \um_map_chars_Latin:nn {up} {#1} } - { + { + \bool_if:NTF \g_um_literal_bool { \um_map_chars_Latin:nn {up} {#1} } + { \bool_if:NT \g_um_upLatin_bool { \um_map_chars_Latin:nn {up,it} {#1} } - } - \um_set_mathalphabet_Latin:Nnn \mathup {up,it}{#1} -} -\cs_new:Nn \um_config_up_latin:n { + } + \um_set_mathalphabet_Latin:Nnn \mathup {up,it} {#1} + } + +\cs_new:Nn \um_config_up_latin:n + { \bool_if:NTF \g_um_literal_bool { \um_map_chars_latin:nn {up} {#1} } - { - \bool_if:NT \g_um_uplatin_bool { + { + \bool_if:NT \g_um_uplatin_bool + { \um_map_chars_latin:nn {up,it} {#1} \um_map_single:nnn {h} {up,it} {#1} \um_map_single:nnn {dotlessi} {up,it} {#1} \um_map_single:nnn {dotlessj} {up,it} {#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathup {up,it}{#1} -} -\cs_new:Nn \um_config_up_Greek:n { + } + +\cs_new:Nn \um_config_up_Greek:n + { \bool_if:NTF \g_um_literal_bool { \um_map_chars_Greek:nn {up}{#1} } - { + { \bool_if:NT \g_um_upGreek_bool { \um_map_chars_Greek:nn {up,it}{#1} } - } + } \um_set_mathalphabet_Greek:Nnn \mathup {up,it}{#1} -} -\cs_new:Nn \um_config_up_greek:n { + } + +\cs_new:Nn \um_config_up_greek:n + { \bool_if:NTF \g_um_literal_bool { \um_map_chars_greek:nn {up} {#1} } - { - \bool_if:NT \g_um_upgreek_bool { + { + \bool_if:NT \g_um_upgreek_bool + { \um_map_chars_greek:nn {up,it} {#1} - } - } + } + } \um_set_mathalphabet_greek:Nnn \mathup {up,it} {#1} -} -\cs_new:Nn \um_config_up_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { + } + +\cs_new:Nn \um_config_up_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{up}{up} - }{ - \bool_if:NT \g_um_upNabla_bool { + } + { + \bool_if:NT \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{up,it}{up} - } - } - \bool_if:NTF \g_um_literal_partial_bool { + } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{up}{up} - }{ - \bool_if:NT \g_um_uppartial_bool { + } + { + \bool_if:NT \g_um_uppartial_bool + { \um_map_single:nnn {partial}{up,it}{up} - } - } + } + } \um_set_mathalphabet_pos:Nnnn \mathup {partial} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathup {Nabla} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathup {dotlessi} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathup {dotlessj} {up,it} {#1} -} -\cs_new:Nn \um_config_it_Latin:n { + } +\cs_new:Nn \um_config_it_Latin:n + { \bool_if:NTF \g_um_literal_bool { \um_map_chars_Latin:nn {it} {#1} } - { + { \bool_if:NF \g_um_upLatin_bool { \um_map_chars_Latin:nn {up,it} {#1} } - } + } \um_set_mathalphabet_Latin:Nnn \mathit {up,it}{#1} -} -\cs_new:Nn \um_config_it_latin:n { - \bool_if:NTF \g_um_literal_bool { + } + +\cs_new:Nn \um_config_it_latin:n + { + \bool_if:NTF \g_um_literal_bool + { \um_map_chars_latin:nn {it} {#1} \um_map_single:nnn {h}{it}{#1} - }{ - \bool_if:NF \g_um_uplatin_bool { + } + { + \bool_if:NF \g_um_uplatin_bool + { \um_map_chars_latin:nn {up,it} {#1} \um_map_single:nnn {h}{up,it}{#1} \um_map_single:nnn {dotlessi}{up,it}{#1} \um_map_single:nnn {dotlessj}{up,it}{#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathit {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathit {dotlessi} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathit {dotlessj} {up,it} {#1} -} -\cs_new:Nn \um_config_it_Greek:n { - \bool_if:NTF \g_um_literal_bool { \um_map_chars_Greek:nn {it}{#1} - }{ + } + +\cs_new:Nn \um_config_it_Greek:n + { + \bool_if:NTF \g_um_literal_bool + { + \um_map_chars_Greek:nn {it}{#1} + } + { \bool_if:NF \g_um_upGreek_bool { \um_map_chars_Greek:nn {up,it}{#1} } - } + } \um_set_mathalphabet_Greek:Nnn \mathit {up,it}{#1} -} -\cs_new:Nn \um_config_it_greek:n { - \bool_if:NTF \g_um_literal_bool { \um_map_chars_greek:nn {it} {#1} } - { + } + +\cs_new:Nn \um_config_it_greek:n + { + \bool_if:NTF \g_um_literal_bool + { + \um_map_chars_greek:nn {it} {#1} + } + { \bool_if:NF \g_um_upgreek_bool { \um_map_chars_greek:nn {it,up} {#1} } - } + } \um_set_mathalphabet_greek:Nnn \mathit {up,it} {#1} -} -\cs_new:Nn \um_config_it_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { + } + +\cs_new:Nn \um_config_it_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{it}{it} - }{ - \bool_if:NF \g_um_upNabla_bool { + } + { + \bool_if:NF \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{up,it}{it} - } - } - \bool_if:NTF \g_um_literal_partial_bool { + } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{it}{it} - }{ - \bool_if:NF \g_um_uppartial_bool { + } + { + \bool_if:NF \g_um_uppartial_bool + { \um_map_single:nnn {partial}{up,it}{it} - } - } + } + } \um_set_mathalphabet_pos:Nnnn \mathit {partial} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathit {Nabla} {up,it}{#1} -} -\cs_new:Nn \um_config_bb_latin:n { + } +\cs_new:Nn \um_config_bb_latin:n + { \um_set_mathalphabet_latin:Nnn \mathbb {up,it}{#1} -} -\cs_new:Nn \um_config_bb_Latin:n { + } + +\cs_new:Nn \um_config_bb_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathbb {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbb {C} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {H} {up,it} {#1} @@ -1292,25 +1395,32 @@ \um_set_mathalphabet_pos:Nnnn \mathbb {Q} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {R} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {Z} {up,it} {#1} -} -\cs_new:Nn \um_config_bb_num:n { + } + +\cs_new:Nn \um_config_bb_num:n + { \um_set_mathalphabet_numbers:Nnn \mathbb {up}{#1} -} -\cs_new:Nn \um_config_bb_misc:n { + } + +\cs_new:Nn \um_config_bb_misc:n + { \um_set_mathalphabet_pos:Nnnn \mathbb {Pi} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {pi} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {Gamma} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {gamma} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {summation} {up} {#1} -} -\cs_new:Nn \um_config_bbit_misc:n { + } + +\cs_new:Nn \um_config_bbit_misc:n + { \um_set_mathalphabet_pos:Nnnn \mathbbit {D} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbbit {d} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbbit {e} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbbit {i} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbbit {j} {up,it} {#1} -} -\cs_new:Nn \um_config_scr_Latin:n { + } +\cs_new:Nn \um_config_scr_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathscr {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {B}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {E}{up,it}{#1} @@ -1320,14 +1430,17 @@ \um_set_mathalphabet_pos:Nnnn \mathscr {L}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {M}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {R}{up,it}{#1} -} -\cs_new:Nn \um_config_scr_latin:n { + } + +\cs_new:Nn \um_config_scr_latin:n + { \um_set_mathalphabet_latin:Nnn \mathscr {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {e}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {g}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {o}{up,it}{#1} -} -\cs_new:Nn \um_config_cal_Latin:n { + } +\cs_new:Nn \um_config_cal_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathcal {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathcal {B}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathcal {E}{up,it}{#1} @@ -1337,495 +1450,665 @@ \um_set_mathalphabet_pos:Nnnn \mathcal {L}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathcal {M}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathcal {R}{up,it}{#1} -} -\cs_new:Nn \um_config_frak_Latin:n { + } +\cs_new:Nn \um_config_frak_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathfrak {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathfrak {C}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathfrak {H}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathfrak {I}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathfrak {R}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathfrak {Z}{up,it}{#1} -} -\cs_new:Nn \um_config_frak_latin:n { + } +\cs_new:Nn \um_config_frak_latin:n + { \um_set_mathalphabet_latin:Nnn \mathfrak {up,it}{#1} -} -\cs_new:Nn \um_config_sfup_num:n { + } +\cs_new:Nn \um_config_sfup_num:n + { \um_set_mathalphabet_numbers:Nnn \mathsf {up}{#1} \um_set_mathalphabet_numbers:Nnn \mathsfup {up}{#1} -} -\cs_new:Nn \um_config_sfup_Latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } +\cs_new:Nn \um_config_sfup_Latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Latin:nn {sfup} {#1} \um_set_mathalphabet_Latin:Nnn \mathsf {up}{#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_Latin:nn {sfup,sfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Latin:Nnn \mathsfup {up,it}{#1} -} -\cs_new:Nn \um_config_sfup_latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } +\cs_new:Nn \um_config_sfup_latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_latin:nn {sfup} {#1} \um_set_mathalphabet_latin:Nnn \mathsf {up}{#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_latin:nn {sfup,sfit} {#1} \um_set_mathalphabet_latin:Nnn \mathsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathsfup {up,it}{#1} -} -\cs_new:Nn \um_config_sfit_Latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } +\cs_new:Nn \um_config_sfit_Latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Latin:nn {sfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathsf {it}{#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_Latin:nn {sfup,sfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Latin:Nnn \mathsfit {up,it}{#1} -} -\cs_new:Nn \um_config_sfit_latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } +\cs_new:Nn \um_config_sfit_latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_latin:nn {sfit} {#1} \um_set_mathalphabet_latin:Nnn \mathsf {it}{#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_latin:nn {sfup,sfit} {#1} \um_set_mathalphabet_latin:Nnn \mathsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathsfit {up,it}{#1} -} -\cs_new:Nn \um_config_tt_num:n { + } +\cs_new:Nn \um_config_tt_num:n + { \um_set_mathalphabet_numbers:Nnn \mathtt {up}{#1} -} -\cs_new:Nn \um_config_tt_Latin:n { + } +\cs_new:Nn \um_config_tt_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathtt {up,it}{#1} -} -\cs_new:Nn \um_config_tt_latin:n { + } +\cs_new:Nn \um_config_tt_latin:n + { \um_set_mathalphabet_latin:Nnn \mathtt {up,it}{#1} -} -\cs_new:Nn \um_config_bfit_Latin:n { - \bool_if:NF \g_um_bfupLatin_bool { + } +\cs_new:Nn \um_config_bfit_Latin:n + { + \bool_if:NF \g_um_bfupLatin_bool + { \um_map_chars_Latin:nn {bfup,bfit} {#1} - } + } \um_set_mathalphabet_Latin:Nnn \mathbfit {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_Latin:nn {bfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbf {it}{#1} - }{ - \bool_if:NF \g_um_bfupLatin_bool { + } + { + \bool_if:NF \g_um_bfupLatin_bool + { \um_map_chars_Latin:nn {bfup,bfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfit_latin:n { - \bool_if:NF \g_um_bfuplatin_bool { + } + } + } + +\cs_new:Nn \um_config_bfit_latin:n + { + \bool_if:NF \g_um_bfuplatin_bool + { \um_map_chars_latin:nn {bfup,bfit} {#1} - } + } \um_set_mathalphabet_latin:Nnn \mathbfit {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_latin:nn {bfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbf {it}{#1} - }{ - \bool_if:NF \g_um_bfuplatin_bool { + } + { + \bool_if:NF \g_um_bfuplatin_bool + { \um_map_chars_latin:nn {bfup,bfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfit_Greek:n { + } + } + } + +\cs_new:Nn \um_config_bfit_Greek:n + { \um_set_mathalphabet_Greek:Nnn \mathbfit {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_Greek:nn {bfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbf {it}{#1} - }{ - \bool_if:NF \g_um_bfupGreek_bool { + } + { + \bool_if:NF \g_um_bfupGreek_bool + { \um_map_chars_Greek:nn {bfup,bfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfit_greek:n { + } + } + } + +\cs_new:Nn \um_config_bfit_greek:n + { \um_set_mathalphabet_greek:Nnn \mathbfit {up,it} {#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_greek:nn {bfit} {#1} \um_set_mathalphabet_greek:Nnn \mathbf {it} {#1} - }{ - \bool_if:NF \g_um_bfupgreek_bool { + } + { + \bool_if:NF \g_um_bfupgreek_bool + { \um_map_chars_greek:nn {bfit,bfup} {#1} \um_set_mathalphabet_greek:Nnn \mathbf {up,it} {#1} - } - } -} -\cs_new:Nn \um_config_bfit_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { - \um_map_single:nnn {Nabla}{bfit}{#1} - }{ - \bool_if:NF \g_um_upNabla_bool { - \um_map_single:nnn {Nabla}{bfup,bfit}{#1} - } - } - \bool_if:NTF \g_um_literal_partial_bool { - \um_map_single:nnn {partial}{bfit}{#1} - }{ - \bool_if:NF \g_um_uppartial_bool { - \um_map_single:nnn {partial}{bfup,bfit}{#1} - } - } + } + } + } + +\cs_new:Nn \um_config_bfit_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{bfit}{#1} } + { + \bool_if:NF \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{bfup,bfit}{#1} } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{bfit}{#1} } + { + \bool_if:NF \g_um_uppartial_bool + { \um_map_single:nnn {partial}{bfup,bfit}{#1} } + } \um_set_mathalphabet_pos:Nnnn \mathbfit {partial} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfit {Nabla} {up,it}{#1} - \bool_if:NTF \g_um_literal_partial_bool { + \bool_if:NTF \g_um_literal_partial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {partial} {it}{#1} - }{ - \bool_if:NF \g_um_uppartial_bool { + } + { + \bool_if:NF \g_um_uppartial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {partial} {up,it}{#1} - } - } - \bool_if:NTF \g_um_literal_Nabla_bool { + } + } + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {Nabla} {it}{#1} - }{ - \bool_if:NF \g_um_upNabla_bool { + } + { + \bool_if:NF \g_um_upNabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {Nabla} {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfup_num:n { + } + } + } +\cs_new:Nn \um_config_bfup_num:n + { \um_set_mathalphabet_numbers:Nnn \mathbf {up}{#1} \um_set_mathalphabet_numbers:Nnn \mathbfup {up}{#1} -} -\cs_new:Nn \um_config_bfup_Latin:n { - \bool_if:NT \g_um_bfupLatin_bool { + } + +\cs_new:Nn \um_config_bfup_Latin:n + { + \bool_if:NT \g_um_bfupLatin_bool + { \um_map_chars_Latin:nn {bfup,bfit} {#1} - } + } \um_set_mathalphabet_Latin:Nnn \mathbfup {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_Latin:nn {bfup} {#1} \um_set_mathalphabet_Latin:Nnn \mathbf {up}{#1} - }{ - \bool_if:NT \g_um_bfupLatin_bool { + } + { + \bool_if:NT \g_um_bfupLatin_bool + { \um_map_chars_Latin:nn {bfup,bfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfup_latin:n { - \bool_if:NT \g_um_bfuplatin_bool { + } + } + } + +\cs_new:Nn \um_config_bfup_latin:n + { + \bool_if:NT \g_um_bfuplatin_bool + { \um_map_chars_latin:nn {bfup,bfit} {#1} - } + } \um_set_mathalphabet_latin:Nnn \mathbfup {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_latin:nn {bfup} {#1} \um_set_mathalphabet_latin:Nnn \mathbf {up}{#1} - }{ - \bool_if:NT \g_um_bfuplatin_bool { + } + { + \bool_if:NT \g_um_bfuplatin_bool + { \um_map_chars_latin:nn {bfup,bfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfup_Greek:n { + } + } + } +\cs_new:Nn \um_config_bfup_Greek:n + { \um_set_mathalphabet_Greek:Nnn \mathbfup {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_Greek:nn {bfup}{#1} \um_set_mathalphabet_Greek:Nnn \mathbf {up}{#1} - }{ - \bool_if:NT \g_um_bfupGreek_bool { + } + { + \bool_if:NT \g_um_bfupGreek_bool + { \um_map_chars_Greek:nn {bfup,bfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfup_greek:n { + } + } + } + +\cs_new:Nn \um_config_bfup_greek:n + { \um_set_mathalphabet_greek:Nnn \mathbfup {up,it} {#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_greek:nn {bfup} {#1} \um_set_mathalphabet_greek:Nnn \mathbf {up} {#1} - }{ - \bool_if:NT \g_um_bfupgreek_bool { + } + { + \bool_if:NT \g_um_bfupgreek_bool + { \um_map_chars_greek:nn {bfup,bfit} {#1} \um_set_mathalphabet_greek:Nnn \mathbf {up,it} {#1} - } - } -} -\cs_new:Nn \um_config_bfup_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { + } + } + } + +\cs_new:Nn \um_config_bfup_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{bfup}{#1} - }{ - \bool_if:NT \g_um_upNabla_bool { + } + { + \bool_if:NT \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{bfup,bfit}{#1} - } - } - \bool_if:NTF \g_um_literal_partial_bool { + } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{bfup}{#1} - }{ - \bool_if:NT \g_um_uppartial_bool { + } + { + \bool_if:NT \g_um_uppartial_bool + { \um_map_single:nnn {partial}{bfup,bfit}{#1} - } - } + } + } \um_set_mathalphabet_pos:Nnnn \mathbfup {partial} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfup {Nabla} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfup {digamma} {up}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfup {Digamma} {up}{#1} \um_set_mathalphabet_pos:Nnnn \mathbf {digamma} {up}{#1} \um_set_mathalphabet_pos:Nnnn \mathbf {Digamma} {up}{#1} - \bool_if:NTF \g_um_literal_partial_bool { + \bool_if:NTF \g_um_literal_partial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {partial} {up}{#1} - }{ - \bool_if:NT \g_um_uppartial_bool { + } + { + \bool_if:NT \g_um_uppartial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {partial} {up,it}{#1} - } - } - \bool_if:NTF \g_um_literal_Nabla_bool { + } + } + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {Nabla} {up}{#1} - }{ - \bool_if:NT \g_um_upNabla_bool { + } + { + \bool_if:NT \g_um_upNabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {Nabla} {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bffrak_Latin:n { + } + } + } +\cs_new:Nn \um_config_bffrak_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathbffrak {up,it}{#1} -} -\cs_new:Nn \um_config_bffrak_latin:n { + } + +\cs_new:Nn \um_config_bffrak_latin:n + { \um_set_mathalphabet_latin:Nnn \mathbffrak {up,it}{#1} -} -\cs_new:Nn \um_config_bfscr_Latin:n { + } +\cs_new:Nn \um_config_bfscr_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathbfscr {up,it}{#1} -} -\cs_new:Nn \um_config_bfscr_latin:n { + } +\cs_new:Nn \um_config_bfscr_latin:n + { \um_set_mathalphabet_latin:Nnn \mathbfscr {up,it}{#1} -} -\cs_new:Nn \um_config_bfcal_Latin:n { + } +\cs_new:Nn \um_config_bfcal_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathbfcal {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfup_num:n { + } +\cs_new:Nn \um_config_bfsfup_num:n + { \um_set_mathalphabet_numbers:Nnn \mathbfsf {up}{#1} \um_set_mathalphabet_numbers:Nnn \mathbfsfup {up}{#1} -} -\cs_new:Nn \um_config_bfsfup_Latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } +\cs_new:Nn \um_config_bfsfup_Latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Latin:nn {bfsfup} {#1} \um_set_mathalphabet_Latin:Nnn \mathbfsf {up}{#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_Latin:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Latin:Nnn \mathbfsfup {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfup_latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfup_latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_latin:nn {bfsfup} {#1} \um_set_mathalphabet_latin:Nnn \mathbfsf {up}{#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_latin:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathbfsfup {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfup_Greek:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfup_Greek:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Greek:nn {bfsfup}{#1} \um_set_mathalphabet_Greek:Nnn \mathbfsf {up}{#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_Greek:nn {bfsfup,bfsfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Greek:Nnn \mathbfsfup {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfup_greek:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfup_greek:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_greek:nn {bfsfup} {#1} \um_set_mathalphabet_greek:Nnn \mathbfsf {up} {#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_greek:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_greek:Nnn \mathbfsf {up,it} {#1} - } - } + } + } \um_set_mathalphabet_greek:Nnn \mathbfsfup {up,it} {#1} -} -\cs_new:Nn \um_config_bfsfup_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { + } +\cs_new:Nn \um_config_bfsfup_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{bfsfup}{#1} - }{ - \bool_if:NT \g_um_upNabla_bool { + } + { + \bool_if:NT \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{bfsfup,bfsfit}{#1} - } - } - \bool_if:NTF \g_um_literal_partial_bool { + } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{bfsfup}{#1} - }{ - \bool_if:NT \g_um_uppartial_bool { + } + { + \bool_if:NT \g_um_uppartial_bool + { \um_map_single:nnn {partial}{bfsfup,bfsfit}{#1} - } - } + } + } \um_set_mathalphabet_pos:Nnnn \mathbfsfup {partial} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfsfup {Nabla} {up,it}{#1} - \bool_if:NTF \g_um_literal_partial_bool { + \bool_if:NTF \g_um_literal_partial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {partial} {up}{#1} - }{ - \bool_if:NT \g_um_uppartial_bool { + } + { + \bool_if:NT \g_um_uppartial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {partial} {up,it}{#1} - } - } - \bool_if:NTF \g_um_literal_Nabla_bool { + } + } + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {Nabla} {up}{#1} - }{ - \bool_if:NT \g_um_upNabla_bool { + } + { + \bool_if:NT \g_um_upNabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {Nabla} {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfsfit_Latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + } + } +\cs_new:Nn \um_config_bfsfit_Latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Latin:nn {bfsfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbfsf {it}{#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_Latin:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Latin:Nnn \mathbfsfit {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfit_latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfit_latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_latin:nn {bfsfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbfsf {it}{#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_latin:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathbfsfit {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfit_Greek:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfit_Greek:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Greek:nn {bfsfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbfsf {it}{#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_Greek:nn {bfsfup,bfsfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Greek:Nnn \mathbfsfit {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfit_greek:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfit_greek:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_greek:nn {bfsfit} {#1} \um_set_mathalphabet_greek:Nnn \mathbfsf {it} {#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_greek:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_greek:Nnn \mathbfsf {up,it} {#1} - } - } + } + } \um_set_mathalphabet_greek:Nnn \mathbfsfit {up,it} {#1} -} -\cs_new:Nn \um_config_bfsfit_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { + } + +\cs_new:Nn \um_config_bfsfit_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{bfsfit}{#1} - }{ - \bool_if:NF \g_um_upNabla_bool { + } + { + \bool_if:NF \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{bfsfup,bfsfit}{#1} - } - } - \bool_if:NTF \g_um_literal_partial_bool { + } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{bfsfit}{#1} - }{ - \bool_if:NF \g_um_uppartial_bool { + } + { + \bool_if:NF \g_um_uppartial_bool + { \um_map_single:nnn {partial}{bfsfup,bfsfit}{#1} - } - } + } + } \um_set_mathalphabet_pos:Nnnn \mathbfsfit {partial} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfsfit {Nabla} {up,it}{#1} - \bool_if:NTF \g_um_literal_partial_bool { + \bool_if:NTF \g_um_literal_partial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {partial} {it}{#1} - }{ - \bool_if:NF \g_um_uppartial_bool { + } + { + \bool_if:NF \g_um_uppartial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {partial} {up,it}{#1} - } - } - \bool_if:NTF \g_um_literal_Nabla_bool { + } + } + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {Nabla} {it}{#1} - }{ - \bool_if:NF \g_um_upNabla_bool { + } + { + \bool_if:NF \g_um_upNabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {Nabla} {up,it}{#1} - } - } -} -\cs_new:Npn \um_symbol_setup: { - \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 { - \exp_not:n {\_um_sym:nnn{##1}{##2}{##3}} - } -} + } + } + } +\cs_new:Npn \um_symbol_setup: + { + \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 + { + \exp_not:n { \_um_sym:nnn {##1} {##2} {##3} } + } + } \CatchFileEdef \g_um_mathtable_tl {unicode-math-table.tex} {\um_symbol_setup:} \cs_new:Nn \um_input_math_symbol_table: {\g_um_mathtable_tl} \group_begin: \char_set_catcode_other:N \^ - \cs_gset:Npn \um_cs_set_eq_active_char:Nw #1 = "#2 \q_nil { - \tex_lowercase:D { - \tl_rescan:nn { + \cs_gset:Npn \um_cs_set_eq_active_char:Nw #1 = "#2 \q_nil + { + \tex_lowercase:D + { + \tl_rescan:nn + { \ExplSyntaxOn \char_set_catcode_other:N \{ \char_set_catcode_other:N \} \char_set_catcode_other:N \& \char_set_catcode_other:N \% \char_set_catcode_other:N \$ - }{ + } + { \cs_gset_eq:NN #1 ^^^^^#2 - } - } - } - \cs_new:Npn \um_active_char_set:wc "#1 \q_nil #2 { - \tex_lowercase:D { + } + } + } + \cs_new:Npn \um_active_char_set:wc "#1 \q_nil #2 + { + \tex_lowercase:D + { \tl_rescan:nn { \ExplSyntaxOn } { \cs_gset_protected_nopar:Npx ^^^^^#1 { \exp_not:c {#2} } } - } - } + } + } \group_end: \AtBeginDocument{\um_define_math_chars:} -\cs_new:Nn \um_define_math_chars: { +\cs_new:Nn \um_define_math_chars: + { \group_begin: \char_set_catcode_math_superscript:N \^ - \cs_set:Npn \_um_sym:nnn ##1##2##3 { + \cs_set:Npn \_um_sym:nnn ##1##2##3 + { \bool_if:nF { \cs_if_eq_p:NN ##3 \mathaccent || \cs_if_eq_p:NN ##3 \mathopen || \cs_if_eq_p:NN ##3 \mathclose || \cs_if_eq_p:NN ##3 \mathover || \cs_if_eq_p:NN ##3 \mathunder || - \cs_if_eq_p:NN ##3 \mathbotaccent } { + \cs_if_eq_p:NN ##3 \mathbotaccent } + { \um_cs_set_eq_active_char:Nw ##2 = ##1 \q_nil \ignorespaces } - } + } \char_set_catcode_other:N \# \um_input_math_symbol_table: \group_end: -} + } \group_begin: \lccode`\*=`\\ \char_set_catcode_escape:N \| \char_set_catcode_other:N \\ - |lowercase{ - |AtBeginDocument{ + |lowercase + { + |AtBeginDocument + { |let|backslash=* - } - } + } + } |group_end: \AtBeginDocument { \um_load_lm_if_necessary: } \cs_new:Nn \um_load_lm_if_necessary: @@ -1837,21 +2120,27 @@ } } \cs_new:Nn \um_arg_i_before_egroup:n {#1\egroup} -\cs_new:Nn \um_superscript:n { +\cs_new:Nn \um_superscript:n + { ^\bgroup #1 \peek_meaning_remove:NTF ^ \um_arg_i_before_egroup:n \egroup -} + } \muskip_new:N \g_um_primekern_muskip \muskip_gset:Nn \g_um_primekern_muskip { -\thinmuskip/2 }% arbitrary \int_new:N \l_um_primecount_int -\cs_new:Nn \um_nprimes:Nn { - \um_superscript:n { +\cs_new:Nn \um_nprimes:Nn + { + \um_superscript:n + { #1 \prg_replicate:nn {#2-1} { \mskip \g_um_primekern_muskip #1 } - } -} -\cs_new:Nn \um_nprimes_select:nn { - \int_case:nnn {#2}{ + } + } + +\cs_new:Nn \um_nprimes_select:nn + { + \int_case:nnn {#2} + { {1} { \um_superscript:n {#1} } {2} { \um_glyph_if_exist:nTF {"2033} @@ -1868,12 +2157,15 @@ { \um_superscript:n {\um_prime_quad_mchar} } { \um_nprimes:Nn #1 {#2} } } - }{ + } + { \um_nprimes:Nn #1 {#2} - } -} -\cs_new:Nn \um_nbackprimes_select:nn { - \int_case:nnn {#2}{ + } + } +\cs_new:Nn \um_nbackprimes_select:nn + { + \int_case:nnn {#2} + { {1} { \um_superscript:n {#1} } {2} { \um_glyph_if_exist:nTF {"2036} @@ -1885,157 +2177,201 @@ { \um_superscript:n {\um_backprime_triple_mchar} } { \um_nprimes:Nn #1 {#2} } } - }{ + } + { \um_nprimes:Nn #1 {#2} - } -} -\cs_new:Npn \um_scan_prime: { + } + } +\cs_new:Npn \um_scan_prime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_zero:N \l_um_primecount_int \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_dprime: { + } +\cs_new:Npn \um_scan_dprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_set:Nn \l_um_primecount_int {1} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_trprime: { + } +\cs_new:Npn \um_scan_trprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_set:Nn \l_um_primecount_int {2} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_qprime: { + } +\cs_new:Npn \um_scan_qprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_set:Nn \l_um_primecount_int {3} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_sup_prime: { + } +\cs_new:Npn \um_scan_sup_prime: + { \int_zero:N \l_um_primecount_int \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_sup_dprime: { + } +\cs_new:Npn \um_scan_sup_dprime: + { \int_set:Nn \l_um_primecount_int {1} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_sup_trprime: { + } +\cs_new:Npn \um_scan_sup_trprime: + { \int_set:Nn \l_um_primecount_int {2} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_sup_qprime: { + } +\cs_new:Npn \um_scan_sup_qprime: + { \int_set:Nn \l_um_primecount_int {3} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Nn \um_scanprime_collect:N { + } +\cs_new:Nn \um_scanprime_collect:N + { \int_incr:N \l_um_primecount_int - \peek_meaning_remove:NTF ' { - \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_prime: { - \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2032 { - \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_dprime: { + \peek_meaning_remove:NTF ' + { \um_scanprime_collect:N #1 } + { + \peek_meaning_remove:NTF \um_scan_prime: + { \um_scanprime_collect:N #1 } + { + \peek_meaning_remove:NTF ^^^^2032 + { \um_scanprime_collect:N #1 } + { + \peek_meaning_remove:NTF \um_scan_dprime: + { \int_incr:N \l_um_primecount_int \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2033 { + } + { + \peek_meaning_remove:NTF ^^^^2033 + { \int_incr:N \l_um_primecount_int \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_trprime: { + } + { + \peek_meaning_remove:NTF \um_scan_trprime: + { \int_add:Nn \l_um_primecount_int {2} \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2034 { + } + { + \peek_meaning_remove:NTF ^^^^2034 + { \int_add:Nn \l_um_primecount_int {2} \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_qprime: { + } + { + \peek_meaning_remove:NTF \um_scan_qprime: + { \int_add:Nn \l_um_primecount_int {3} \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2057 { + } + { + \peek_meaning_remove:NTF ^^^^2057 + { \int_add:Nn \l_um_primecount_int {3} \um_scanprime_collect:N #1 - }{ + } + { \um_nprimes_select:nn {#1} {\l_um_primecount_int} - } - } - } - } - } - } - } - } - } -} -\cs_new:Npn \um_scan_backprime: { + } + } + } + } + } + } + } + } + } + } +\cs_new:Npn \um_scan_backprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_zero:N \l_um_primecount_int \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Npn \um_scan_backdprime: { + } +\cs_new:Npn \um_scan_backdprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_set:Nn \l_um_primecount_int {1} \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Npn \um_scan_backtrprime: { + } +\cs_new:Npn \um_scan_backtrprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_set:Nn \l_um_primecount_int {2} \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Npn \um_scan_sup_backprime: { + } +\cs_new:Npn \um_scan_sup_backprime: + { \int_zero:N \l_um_primecount_int \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Npn \um_scan_sup_backdprime: { + } +\cs_new:Npn \um_scan_sup_backdprime: + { \int_set:Nn \l_um_primecount_int {1} \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Npn \um_scan_sup_backtrprime: { + } +\cs_new:Npn \um_scan_sup_backtrprime: + { \int_set:Nn \l_um_primecount_int {2} \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Nn \um_scanbackprime_collect:N { + } +\cs_new:Nn \um_scanbackprime_collect:N + { \int_incr:N \l_um_primecount_int - \peek_meaning_remove:NTF ` { + \peek_meaning_remove:NTF ` + { \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_backprime: { + } + { + \peek_meaning_remove:NTF \um_scan_backprime: + { \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2035 { + } + { + \peek_meaning_remove:NTF ^^^^2035 + { \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_backdprime: { + } + { + \peek_meaning_remove:NTF \um_scan_backdprime: + { \int_incr:N \l_um_primecount_int \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2036 { + } + { + \peek_meaning_remove:NTF ^^^^2036 + { \int_incr:N \l_um_primecount_int \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_backtrprime: { + } + { + \peek_meaning_remove:NTF \um_scan_backtrprime: + { \int_add:Nn \l_um_primecount_int {2} \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2037 { + } + { + \peek_meaning_remove:NTF ^^^^2037 + { \int_add:Nn \l_um_primecount_int {2} \um_scanbackprime_collect:N #1 - }{ + } + { \um_nbackprimes_select:nn {#1} {\l_um_primecount_int} - } - } - } - } - } - } - } -} + } + } + } + } + } + } + } + } \AtBeginDocument{\um_define_prime_commands: \um_define_prime_chars:} -\cs_new:Nn \um_define_prime_commands: { +\cs_new:Nn \um_define_prime_commands: + { \cs_set_eq:NN \prime \um_prime_single_mchar \cs_set_eq:NN \dprime \um_prime_double_mchar \cs_set_eq:NN \trprime \um_prime_triple_mchar @@ -2043,7 +2379,7 @@ \cs_set_eq:NN \backprime \um_backprime_single_mchar \cs_set_eq:NN \backdprime \um_backprime_double_mchar \cs_set_eq:NN \backtrprime \um_backprime_triple_mchar -} + } \group_begin: \char_set_catcode_active:N \' \char_set_catcode_active:N \` @@ -2054,7 +2390,8 @@ \char_set_catcode_active:n {"2035} \char_set_catcode_active:n {"2036} \char_set_catcode_active:n {"2037} - \cs_gset:Nn \um_define_prime_chars: { + \cs_gset:Nn \um_define_prime_chars: + { \cs_set_eq:NN ' \um_scan_sup_prime: \cs_set_eq:NN ^^^^2032 \um_scan_sup_prime: \cs_set_eq:NN ^^^^2033 \um_scan_sup_dprime: @@ -2064,51 +2401,58 @@ \cs_set_eq:NN ^^^^2035 \um_scan_sup_backprime: \cs_set_eq:NN ^^^^2036 \um_scan_sup_backdprime: \cs_set_eq:NN ^^^^2037 \um_scan_sup_backtrprime: - } + } \group_end: \AtBeginDocument{\um_redefine_radical:} \cs_new:Nn \um_redefine_radical: { - \@ifpackageloaded { amsmath } { } { - \cs_set:Npn \root ##1 \of ##2 { + \@ifpackageloaded { amsmath } { } + { + \cs_set:Npn \root ##1 \of ##2 + { \luatexUroot \l_um_radical_sqrt_tl { ##1 } { ##2 } - } - } + } + } } -\cs_new:Nn \um_fontdimen_to_percent:nn { +\cs_new:Nn \um_fontdimen_to_percent:nn + { \strip@pt\dimexpr\fontdimen#1#2*65536/100\relax -} + } \cs_new:Nn \um_fontdimen_to_scale:nn - { - \um_fontdimen_to_percent:nn {#1} {#2} \dimexpr \f@size pt\relax - } -\cs_new:Nn \um_mathstyle_scale:Nnn { + { + \um_fontdimen_to_percent:nn {#1} {#2} \dimexpr \f@size pt\relax + } +\cs_new:Nn \um_mathstyle_scale:Nnn + { \ifx#1\scriptstyle - #2\um_fontdimen_to_percent:nn{10}\l_um_font#3 + #2 \um_fontdimen_to_percent:nn {10} \l_um_font #3 \else \ifx#1\scriptscriptstyle - #2\um_fontdimen_to_percent:nn{11}\l_um_font#3 + #2 \um_fontdimen_to_percent:nn {11} \l_um_font #3 \else - #2#3 + #2 #3 \fi \fi -} + } \prop_new:N \g_um_supers_prop \prop_new:N \g_um_subs_prop \group_begin: -\cs_new:Nn \um_setup_active_superscript:nn { +\cs_new:Nn \um_setup_active_superscript:nn + { \prop_gput:Nxn \g_um_supers_prop {\meaning #1} {#2} \char_set_catcode_active:N #1 \char_gmake_mathactive:N #1 - \scantokens{ - \cs_gset:Npn #1 { + \scantokens + { + \cs_gset:Npn #1 + { \tl_set:Nn \l_um_ss_chain_tl {#2} \cs_set_eq:NN \um_sub_or_super:n \sp \tl_set:Nn \l_um_tmpa_tl {supers} \um_scan_sscript: - } - } -} + } + } + } \um_setup_active_superscript:nn {^^^^2070} {0} \um_setup_active_superscript:nn {^^^^00b9} {1} \um_setup_active_superscript:nn {^^^^00b2} {2} @@ -2126,19 +2470,22 @@ \um_setup_active_superscript:nn {^^^^207e} {)} \um_setup_active_superscript:nn {^^^^2071} {i} \um_setup_active_superscript:nn {^^^^207f} {n} -\cs_new:Nn \um_setup_active_subscript:nn { +\cs_new:Nn \um_setup_active_subscript:nn + { \prop_gput:Nxn \g_um_subs_prop {\meaning #1} {#2} \char_set_catcode_active:N #1 \char_gmake_mathactive:N #1 - \scantokens{ - \cs_gset:Npn #1 { + \scantokens + { + \cs_gset:Npn #1 + { \tl_set:Nn \l_um_ss_chain_tl {#2} \cs_set_eq:NN \um_sub_or_super:n \sb \tl_set:Nn \l_um_tmpa_tl {subs} \um_scan_sscript: - } - } -} + } + } + } \um_setup_active_subscript:nn {^^^^2080} {0} \um_setup_active_subscript:nn {^^^^2081} {1} \um_setup_active_subscript:nn {^^^^2082} {2} @@ -2168,30 +2515,37 @@ \um_setup_active_subscript:nn {^^^^1d69} {\phi} \um_setup_active_subscript:nn {^^^^1d6a} {\chi} \group_end: -\cs_new:Npn \um_scan_sscript: { - \um_scan_sscript:TF { +\cs_new:Npn \um_scan_sscript: + { + \um_scan_sscript:TF + { \um_scan_sscript: - }{ + } + { \um_sub_or_super:n {\l_um_ss_chain_tl} - } -} -\cs_new:Npn \um_scan_sscript:TF #1#2 { + } + } +\cs_new:Npn \um_scan_sscript:TF #1#2 + { \tl_set:Nx \__peek_true_aux:w { \exp_not:n{ #1 } } \tl_set_eq:NN \__peek_true:w \__peek_true_remove:w \tl_set:Nx \__peek_false:w { \exp_not:n { \group_align_safe_end: #2 } } \group_align_safe_begin: \peek_after:Nw \um_peek_execute_branches_ss: -} -\cs_new:Npn \um_peek_execute_branches_ss: { - \bool_if:nTF { + } +\cs_new:Npn \um_peek_execute_branches_ss: + { + \bool_if:nTF + { \token_if_eq_catcode_p:NN \l_peek_token \c_group_begin_token || \token_if_eq_catcode_p:NN \l_peek_token \c_group_end_token || \token_if_eq_meaning_p:NN \l_peek_token \c_space_token - } - { \__peek_false:w } - { \um_peek_execute_branches_ss_aux: } -} -\cs_new:Npn \um_peek_execute_branches_ss_aux: { + } + { \__peek_false:w } + { \um_peek_execute_branches_ss_aux: } + } +\cs_new:Npn \um_peek_execute_branches_ss_aux: + { \prop_if_in:cxTF {g_um_\l_um_tmpa_tl _prop} {\meaning\l_peek_token} { @@ -2201,21 +2555,26 @@ \__peek_true:w } { \__peek_false:w } -} -\cs_new:Npn \um_define_active_frac:Nw #1 #2/#3 { + } +\cs_new:Npn \um_define_active_frac:Nw #1 #2/#3 + { \char_set_catcode_active:N #1 \char_gmake_mathactive:N #1 - \tl_rescan:nn { + \tl_rescan:nn + { \catcode`\_=11\relax \catcode`\:=11\relax - }{ - \cs_gset:Npx #1 { + } + { + \cs_gset:Npx #1 + { \bool_if:NTF \l_um_smallfrac_bool {\exp_not:N\tfrac} {\exp_not:N\frac} {#2} {#3} - } - } -} -\cs_new:Npn \um_setup_active_frac: { + } + } + } +\cs_new:Npn \um_setup_active_frac: + { \group_begin: \um_define_active_frac:Nw ^^^^2189 0/3 \um_define_active_frac:Nw ^^^^2152 1/{10} @@ -2237,7 +2596,7 @@ \um_define_active_frac:Nw ^^^^215a 5/6 \um_define_active_frac:Nw ^^^^215e 7/8 \group_end: -} + } \um_setup_active_frac: \def\to{\rightarrow} \def\le{\leq} @@ -2262,94 +2621,117 @@ \def\backepsilon{\upbackepsilon} \def\eth{\matheth} \def\smallint{{\textstyle\int}\limits} -\@ifpackageloaded{amsmath}{ +\@ifpackageloaded{amsmath} + { % define their own colon, perhaps I should just steal it. (It does look much better.) -}{ - \cs_set_protected:Npn \colon { + } + { + \cs_set_protected:Npn \colon + { \bool_if:NTF \g_um_literal_colon_bool {:} { \mathpunct{:} } - } -} + } + } \def\mathrm{\mathup} \let\mathfence\mathord \def\digamma{\updigamma} \def\Digamma{\upDigamma} \def\operator@font{\um_switchto_mathup:} -\cs_new_protected_nopar:Npn \um_check_and_fix:NNnnnn #1 #2 #3 #4 #5 #6 { - \cs_if_exist:NT #1 { - \token_if_macro:NTF #1 { +\cs_new_protected_nopar:Nn \um_check_and_fix:NNnnnn + { + \cs_if_exist:NT #1 + { + \token_if_macro:NTF #1 + { \group_begin: #2 \um_tmpa:w #3 { #4 } - \cs_if_eq:NNTF #1 \um_tmpa:w { + \cs_if_eq:NNTF #1 \um_tmpa:w + { \msg_info:nnx { unicode-math } { patch-macro } { \token_to_str:N #1 } \group_end: #2 #1 #3 { #5 } - } { + } + { \msg_warning:nnxxx { unicode-math } { wrong-meaning } { \token_to_str:N #1 } { \token_to_meaning:N #1 } { \token_to_meaning:N \um_tmpa:w } \group_end: - } - } { + } + } + { \msg_warning:nnx { unicode-math } { macro-expected } { \token_to_str:N #1 } - } - } -} -\cs_new_protected_nopar:Npn \um_check_and_fix:NNnnn #1 #2 #3 #4 #5 { + } + } + } +\cs_new_protected_nopar:Nn \um_check_and_fix:NNnnn + { \um_check_and_fix:NNnnnn #1 #2 { #3 } { #4 } { #5 } { #5 } -} -\cs_new_protected_nopar:Npn \um_check_and_fix_luatex:NNnnn #1 #2 #3 #4 #5 { - \luatex_if_engine:T { + } +\cs_new_protected_nopar:Nn \um_check_and_fix_luatex:NNnnn + { + \luatex_if_engine:T + { \um_check_and_fix:NNnnn #1 #2 { #3 } { #4 } { #5 } - } -} + } + } \cs_generate_variant:Nn \um_check_and_fix_luatex:NNnnn { c } -\AtEndOfPackageFile * {url} { +\AtEndOfPackageFile * {url} + { \tl_put_left:Nn \Url@FormatString { \um_switchto_mathup: } - \tl_put_right:Nn \UrlSpecials { + \tl_put_right:Nn \UrlSpecials + { \do\`{\mathchar`\`} \do\'{\mathchar`\'} \do\${\mathchar`\$} \do\&{\mathchar`\&} - } -} -\AtEndOfPackageFile * {amsmath} { + } + } +\AtEndOfPackageFile * {amsmath} + { \cs_set:Npn \@cdots {\mathinner{\cdots}} \cs_set_eq:NN \dotsb@ \cdots - \um_check_and_fix_luatex:NNnnn \plainroot@ \cs_set_nopar:Npn { #1 \of #2 } { - \setbox \rootbox \hbox { + \um_check_and_fix_luatex:NNnnn \plainroot@ \cs_set_nopar:Npn { #1 \of #2 } + { + \setbox \rootbox \hbox + { $ \m@th \scriptscriptstyle { #1 } $ - } + } \mathchoice { \r@@t \displaystyle { #2 } } { \r@@t \textstyle { #2 } }~ { \r@@t \scriptstyle { #2 } } { \r@@t \scriptscriptstyle { #2 } } \egroup - } { - \bool_if:nTF { + } + { + \bool_if:nTF + { \int_compare_p:nNn { \uproot@ } = { \c_zero } && \int_compare_p:nNn { \leftroot@ } = { \c_zero } - } { + } + { \luatexUroot \l_um_radical_sqrt_tl { #1 } { #2 } - } { - \hbox_set:Nn \rootbox { + } + { + \hbox_set:Nn \rootbox + { \c_math_toggle_token \m@th \scriptscriptstyle { #1 } \c_math_toggle_token - } + } \mathchoice { \r@@t \displaystyle { #2 } } { \r@@t \textstyle { #2 } } { \r@@t \scriptstyle { #2 } } { \r@@t \scriptscriptstyle { #2 } } - } + } \c_group_end_token - } - \um_check_and_fix:NNnnnn \r@@t \cs_set_nopar:Npn { #1 #2 } { + } + \um_check_and_fix:NNnnnn \r@@t \cs_set_nopar:Npn { #1 #2 } + { \setboxz@h { $ \m@th #1 \sqrtsign { #2 } $ } \dimen@ \ht\z@ \advance \dimen@ -\dp\z@ @@ -2361,125 +2743,156 @@ \mkern -10mu \mkern \leftroot@ mu \boxz@ - } { - \hbox_set:Nn \l_tmpa_box { + } + { + \hbox_set:Nn \l_tmpa_box + { \c_math_toggle_token \m@th #1 \mskip \uproot@ mu \c_math_toggle_token - } - \luatexUroot \l_um_radical_sqrt_tl { - \box_move_up:nn { \box_wd:N \l_tmpa_box } { - \hbox:n { + } + \luatexUroot \l_um_radical_sqrt_tl + { + \box_move_up:nn { \box_wd:N \l_tmpa_box } + { + \hbox:n + { \c_math_toggle_token \m@th \mkern -\leftroot@ mu \box_use:N \rootbox \mkern \leftroot@ mu \c_math_toggle_token - } - } - } { - #2 - } - } { - \hbox_set:Nn \l_tmpa_box { + } + } + } + { #2 } + } + { + \hbox_set:Nn \l_tmpa_box + { \c_math_toggle_token \m@th #1 \sqrtsign { #2 } \c_math_toggle_token - } - \hbox_set:Nn \l_tmpb_box { + } + \hbox_set:Nn \l_tmpb_box + { \c_math_toggle_token \m@th #1 \mskip \uproot@ mu \c_math_toggle_token - } + } \mkern -\leftroot@ mu - \um_mathstyle_scale:Nnn #1 { \kern } { + \um_mathstyle_scale:Nnn #1 { \kern } + { \fontdimen 63 \l_um_font - } - \box_move_up:nn { + } + \box_move_up:nn + { \box_wd:N \l_tmpb_box + (\box_ht:N \l_tmpa_box - \box_dp:N \l_tmpa_box) * \number \fontdimen 65 \l_um_font / 100 - } { + } + { \box_use:N \rootbox - } - \um_mathstyle_scale:Nnn #1 { \kern } { + } + \um_mathstyle_scale:Nnn #1 { \kern } + { \fontdimen 64 \l_um_font - } + } \mkern \leftroot@ mu \box_use_clear:N \l_tmpa_box - } -} + } + } \cs_set:Npn \| {\Vert} \cs_set:Npn \mathellipsis {\mathinner{\unicodeellipsis}} \cs_set:Npn \cdots {\mathinner{\unicodecdots}} -\cs_new_protected_nopar:Nn \um_setup_accents: { - \cs_gset_protected_nopar:Npx \widehat { +\cs_new_protected_nopar:Nn \um_setup_accents: + { + \cs_gset_protected_nopar:Npx \widehat + { \um_accent:nnn {} { \um_symfont_tl } { "0302 } - } - \cs_gset_protected_nopar:Npx \widetilde { + } + \cs_gset_protected_nopar:Npx \widetilde + { \um_accent:nnn {} { \um_symfont_tl } { "0303 } - } - \cs_gset_protected_nopar:Npx \overleftarrow { + } + \cs_gset_protected_nopar:Npx \overleftarrow + { \um_accent:nnn {} { \um_symfont_tl } { "20D6 } - } - \cs_gset_protected_nopar:Npx \overrightarrow { + } + \cs_gset_protected_nopar:Npx \overrightarrow + { \um_accent:nnn {} { \um_symfont_tl } { "20D7 } - } - \cs_gset_protected_nopar:Npx \overleftrightarrow { + } + \cs_gset_protected_nopar:Npx \overleftrightarrow + { \um_accent:nnn {} { \um_symfont_tl } { "20E1 } - } - \cs_gset_protected_nopar:Npx \wideutilde { + } + \cs_gset_protected_nopar:Npx \wideutilde + { \um_accent:nnn {bottom} { \um_symfont_tl } { "0330 } - } - \cs_gset_protected_nopar:Npx \underrightharpoondown { + } + \cs_gset_protected_nopar:Npx \underrightharpoondown + { \um_accent:nnn {bottom} { \um_symfont_tl } { "20EC } - } - \cs_gset_protected_nopar:Npx \underleftharpoondown { + } + \cs_gset_protected_nopar:Npx \underleftharpoondown + { \um_accent:nnn {bottom} { \um_symfont_tl } { "20ED } - } - \cs_gset_protected_nopar:Npx \underleftarrow { + } + \cs_gset_protected_nopar:Npx \underleftarrow + { \um_accent:nnn {bottom} { \um_symfont_tl } { "20EE } - } - \cs_gset_protected_nopar:Npx \underrightarrow { + } + \cs_gset_protected_nopar:Npx \underrightarrow + { \um_accent:nnn {bottom} { \um_symfont_tl } { "20EF } - } - \cs_gset_protected_nopar:Npx \underleftrightarrow { + } + \cs_gset_protected_nopar:Npx \underleftrightarrow + { \um_accent:nnn {bottom} { \um_symfont_tl } { "034D } - } -} + } + } \cs_set_eq:NN \um_text_slash: \slash -\cs_set_protected:Npn \slash { +\cs_set_protected:Npn \slash + { \mode_if_math:TF {\mathslash} {\um_text_slash:} -} + } \tl_new:N \l_not_token_name_tl -\cs_new:Npn \not_newnot:N #1 { +\cs_new:Npn \not_newnot:N #1 + { \tl_set:Nx \l_not_token_name_tl { \token_to_str:N #1 } - \exp_args:Nx \tl_if_empty:nF { \tl_tail:V \l_not_token_name_tl } { + \exp_args:Nx \tl_if_empty:nF { \tl_tail:V \l_not_token_name_tl } + { \tl_set:Nx \l_not_token_name_tl { \tl_tail:V \l_not_token_name_tl } - } - \cs_if_exist:cTF { n \l_not_token_name_tl } { + } + \cs_if_exist:cTF { n \l_not_token_name_tl } + { \use:c { n \l_not_token_name_tl } - } { - \cs_if_exist:cTF { not \l_not_token_name_tl } { + } + { + \cs_if_exist:cTF { not \l_not_token_name_tl } + { \use:c { not \l_not_token_name_tl } - } { + } + { \not_oldnot: #1 %\l_not_token_name_tl - } - } -} + } + } + } -\cs_new_protected_nopar:Nn \um_setup_negations: { - \cs_set_eq:NN \not_oldnot: \not - \cs_set_eq:NN \not \not_newnot:N +\cs_set_eq:NN \not_oldnot: \not +\cs_set_eq:NN \not \not_newnot:N +\cs_new_protected_nopar:Nn \um_setup_negations: + { \cs_gset:cpn { not= } { \neq } \cs_gset:cpn { not< } { \nless } \cs_gset:cpn { not> } { \ngtr } @@ -2490,40 +2903,46 @@ \cs_gset:Npn \nge { \ngeq } \cs_gset:Npn \ngreater { \ngtr } \cs_gset:Npn \nforksnot { \forks } -} -\AtEndOfPackageFile * { mathtools } { -\AtEndOfPackageFile * { mathtools } { - \let\MToverbracket =\overbracket - \let\MTunderbracket=\underbracket + } +\AtEndOfPackageFile * { mathtools } + { +\AtEndOfPackageFile * { mathtools } + { + \cs_set_eq:NN \MToverbracket \overbracket + \cs_set_eq:NN \MTunderbracket \underbracket - \AtBeginDocument { - \msg_warning:nn { unicode-math } { mathtools-overbracket } + \AtBeginDocument + { + \msg_warning:nn { unicode-math } { mathtools-overbracket } -\def\downbracketfill#1#2{% +\def\downbracketfill#1#2 + {% \edef\l_MT_bracketheight_fdim{.27ex}% \downbracketend{#1}{#2} \leaders \vrule \@height #1 \@depth \z@ \hfill \downbracketend{#1}{#2}% - } -\def\upbracketfill#1#2{% + } +\def\upbracketfill#1#2 + {% \edef\l_MT_bracketheight_fdim{.27ex}% \upbracketend{#1}{#2} \leaders \vrule \@height \z@ \@depth #1 \hfill \upbracketend{#1}{#2}% - } + } \let\Uoverbracket =\overbracket \let\Uunderbracket=\underbracket \let\overbracket =\MToverbracket \let\underbracket =\MTunderbracket - } -} + } + } \msg_warning:nn { unicode-math } { mathtools-colon } \NewDocumentCommand \dblcolon { } { \Colon } \NewDocumentCommand \coloneqq { } { \coloneq } \NewDocumentCommand \Coloneqq { } { \Coloneq } \NewDocumentCommand \eqqcolon { } { \eqcolon } -} -\AtEndOfPackageFile * { colonequals } { + } +\AtEndOfPackageFile * { colonequals } + { \msg_warning:nn { unicode-math } { colonequals } \RenewDocumentCommand \ratio { } { \mathratio } \RenewDocumentCommand \coloncolon { } { \Colon } @@ -2531,5 +2950,5 @@ \RenewDocumentCommand \colonequals { } { \coloneq } \RenewDocumentCommand \equalscolon { } { \eqcolon } \RenewDocumentCommand \coloncolonequals { } { \Coloneq } -} + } \ExplSyntaxOff diff --git a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex index 4f78236f58d..9ed56cd1001 100644 --- a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex +++ b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex @@ -1,29 +1,29 @@ -\UnicodeMathSymbol{"00021}{\exclam }{\mathpunct}{exclamation mark}% -\UnicodeMathSymbol{"00023}{\octothorpe }{\mathord}{number sign}% +\UnicodeMathSymbol{"00021}{\mathexclam }{\mathpunct}{exclamation mark}% +\UnicodeMathSymbol{"00023}{\mathoctothorpe }{\mathord}{number sign}% \UnicodeMathSymbol{"00024}{\mathdollar }{\mathord}{dollar sign}% -\UnicodeMathSymbol{"00025}{\percent }{\mathord}{percent sign}% -\UnicodeMathSymbol{"00026}{\ampersand }{\mathord}{ampersand}% +\UnicodeMathSymbol{"00025}{\mathpercent }{\mathord}{percent sign}% +\UnicodeMathSymbol{"00026}{\mathampersand }{\mathord}{ampersand}% \UnicodeMathSymbol{"00028}{\lparen }{\mathopen}{left parenthesis}% \UnicodeMathSymbol{"00029}{\rparen }{\mathclose}{right parenthesis}% -\UnicodeMathSymbol{"0002B}{\plus }{\mathbin}{plus sign b:}% -\UnicodeMathSymbol{"0002C}{\comma }{\mathpunct}{comma}% -\UnicodeMathSymbol{"0002E}{\period }{\mathord}{full stop, period}% +\UnicodeMathSymbol{"0002B}{\mathplus }{\mathbin}{plus sign b:}% +\UnicodeMathSymbol{"0002C}{\mathcomma }{\mathpunct}{comma}% +\UnicodeMathSymbol{"0002E}{\mathperiod }{\mathord}{full stop, period}% \UnicodeMathSymbol{"0002F}{\mathslash }{\mathord}{solidus}% \UnicodeMathSymbol{"0003A}{\mathcolon }{\mathpunct}{colon}% -\UnicodeMathSymbol{"0003B}{\semicolon }{\mathpunct}{semicolon p:}% +\UnicodeMathSymbol{"0003B}{\mathsemicolon }{\mathpunct}{semicolon p:}% \UnicodeMathSymbol{"0003C}{\less }{\mathrel}{less-than sign r:}% \UnicodeMathSymbol{"0003D}{\equal }{\mathrel}{equals sign r:}% \UnicodeMathSymbol{"0003E}{\greater }{\mathrel}{greater-than sign r:}% -\UnicodeMathSymbol{"0003F}{\question }{\mathord}{question mark}% -\UnicodeMathSymbol{"00040}{\atsign }{\mathord}{commercial at}% +\UnicodeMathSymbol{"0003F}{\mathquestion }{\mathord}{question mark}% +\UnicodeMathSymbol{"00040}{\mathatsign }{\mathord}{commercial at}% \UnicodeMathSymbol{"0005B}{\lbrack }{\mathopen}{left square bracket}% \UnicodeMathSymbol{"0005C}{\backslash }{\mathord}{reverse solidus}% \UnicodeMathSymbol{"0005D}{\rbrack }{\mathclose}{right square bracket}% \UnicodeMathSymbol{"0007B}{\lbrace }{\mathopen}{left curly bracket}% \UnicodeMathSymbol{"0007C}{\vert }{\mathfence}{vertical bar}% \UnicodeMathSymbol{"0007D}{\rbrace }{\mathclose}{right curly bracket}% -\UnicodeMathSymbol{"000A3}{\sterling }{\mathord}{pound sign}% -\UnicodeMathSymbol{"000A5}{\yen }{\mathord}{yen sign}% +\UnicodeMathSymbol{"000A3}{\mathsterling }{\mathord}{pound sign}% +\UnicodeMathSymbol{"000A5}{\mathyen }{\mathord}{yen sign}% \UnicodeMathSymbol{"000AC}{\neg }{\mathord}{/neg /lnot not sign}% \UnicodeMathSymbol{"000B1}{\pm }{\mathbin}{plus-or-minus sign}% \UnicodeMathSymbol{"000B7}{\cdotp }{\mathbin}{/centerdot b: middle dot}% @@ -1423,7 +1423,7 @@ \UnicodeMathSymbol{"02B40}{\equalleftarrow }{\mathrel}{equals sign above leftwards arrow}% \UnicodeMathSymbol{"02B41}{\bsimilarleftarrow }{\mathrel}{reverse tilde operator above leftwards arrow}% \UnicodeMathSymbol{"02B42}{\leftarrowbackapprox }{\mathrel}{leftwards arrow above reverse almost equal to}% -\UnicodeMathSymbol{"02B43}{\rightarrowgtr }{\mathrel}{rightwards arrow through less-than}% +\UnicodeMathSymbol{"02B43}{\rightarrowgtr }{\mathrel}{rightwards arrow through greater-than}% \UnicodeMathSymbol{"02B44}{\rightarrowsupset }{\mathrel}{rightwards arrow through subset}% \UnicodeMathSymbol{"02B45}{\LLeftarrow }{\mathrel}{leftwards quadruple arrow}% \UnicodeMathSymbol{"02B46}{\RRightarrow }{\mathrel}{rightwards quadruple arrow}% diff --git a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty index 1885f4cc6b9..ae66336f6df 100644 --- a/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty +++ b/Master/texmf-dist/tex/latex/unicode-math/unicode-math-xetex.sty @@ -15,70 +15,59 @@ %% %% This work is "maintained" by Will Robertson. \ExplSyntaxOn -\ifdim\number\XeTeXversion\XeTeXrevision in<0.9999in - \cs_new:Nn \um_cs_compat:n - { \cs_set_eq:cc {U#1} {XeTeX#1} } - \um_cs_compat:n {mathcode} - \um_cs_compat:n {delcode} - \um_cs_compat:n {mathcodenum} - \um_cs_compat:n {mathcharnum} - \um_cs_compat:n {mathchardef} - \um_cs_compat:n {radical} - \um_cs_compat:n {mathaccent} - \um_cs_compat:n {delimiter} -\fi -\cs_new:Nn \usv_set:nnn { +\cs_new:Nn \usv_set:nnn + { \tl_set:cn { \um_to_usv:nn {#1}{#2} } {#3} -} + } \cs_new:Nn \um_to_usv:nn { g_um_#1_#2_usv } -\usv_set:nnn {up}{num}{48} -\usv_set:nnn {up}{Latin}{65} -\usv_set:nnn {up}{latin}{97} -\usv_set:nnn {up}{Greek}{"391} -\usv_set:nnn {up}{greek}{"3B1} -\usv_set:nnn {it}{Latin}{"1D434} -\usv_set:nnn {it}{latin}{"1D44E} -\usv_set:nnn {it}{Greek}{"1D6E2} -\usv_set:nnn {it}{greek}{"1D6FC} -\usv_set:nnn {bb}{num}{"1D7D8} -\usv_set:nnn {bb}{Latin}{"1D538} -\usv_set:nnn {bb}{latin}{"1D552} -\usv_set:nnn {scr}{Latin}{"1D49C} -\usv_set:nnn {cal}{Latin}{"1D49C} -\usv_set:nnn {scr}{latin}{"1D4B6} +\usv_set:nnn {up} {num} {48} +\usv_set:nnn {up} {Latin}{65} +\usv_set:nnn {up} {latin}{97} +\usv_set:nnn {up} {Greek}{"391} +\usv_set:nnn {up} {greek}{"3B1} +\usv_set:nnn {it} {Latin}{"1D434} +\usv_set:nnn {it} {latin}{"1D44E} +\usv_set:nnn {it} {Greek}{"1D6E2} +\usv_set:nnn {it} {greek}{"1D6FC} +\usv_set:nnn {bb} {num} {"1D7D8} +\usv_set:nnn {bb} {Latin}{"1D538} +\usv_set:nnn {bb} {latin}{"1D552} +\usv_set:nnn {scr} {Latin}{"1D49C} +\usv_set:nnn {cal} {Latin}{"1D49C} +\usv_set:nnn {scr} {latin}{"1D4B6} \usv_set:nnn {frak}{Latin}{"1D504} \usv_set:nnn {frak}{latin}{"1D51E} -\usv_set:nnn {sf}{num}{"1D7E2} -\usv_set:nnn {sfup}{num}{"1D7E2} -\usv_set:nnn {sfit}{num}{"1D7E2} +\usv_set:nnn {sf} {num} {"1D7E2} +\usv_set:nnn {sfup}{num} {"1D7E2} +\usv_set:nnn {sfit}{num} {"1D7E2} \usv_set:nnn {sfup}{Latin}{"1D5A0} -\usv_set:nnn {sf}{Latin}{"1D5A0} +\usv_set:nnn {sf} {Latin}{"1D5A0} \usv_set:nnn {sfup}{latin}{"1D5BA} -\usv_set:nnn {sf}{latin}{"1D5BA} +\usv_set:nnn {sf} {latin}{"1D5BA} \usv_set:nnn {sfit}{Latin}{"1D608} \usv_set:nnn {sfit}{latin}{"1D622} -\usv_set:nnn {tt}{num}{"1D7F6} -\usv_set:nnn {tt}{Latin}{"1D670} -\usv_set:nnn {tt}{latin}{"1D68A} -\usv_set:nnn {bf}{num}{"1D7CE} -\usv_set:nnn {bfup}{num}{"1D7CE} -\usv_set:nnn {bfit}{num}{"1D7CE} -\usv_set:nnn {bfup}{Latin}{"1D400} -\usv_set:nnn {bfup}{latin}{"1D41A} -\usv_set:nnn {bfup}{Greek}{"1D6A8} -\usv_set:nnn {bfup}{greek}{"1D6C2} -\usv_set:nnn {bfit}{Latin}{"1D468} -\usv_set:nnn {bfit}{latin}{"1D482} -\usv_set:nnn {bfit}{Greek}{"1D71C} -\usv_set:nnn {bfit}{greek}{"1D736} +\usv_set:nnn {tt} {num} {"1D7F6} +\usv_set:nnn {tt} {Latin}{"1D670} +\usv_set:nnn {tt} {latin}{"1D68A} +\usv_set:nnn {bf} {num} {"1D7CE} +\usv_set:nnn {bfup} {num} {"1D7CE} +\usv_set:nnn {bfit} {num} {"1D7CE} +\usv_set:nnn {bfup} {Latin}{"1D400} +\usv_set:nnn {bfup} {latin}{"1D41A} +\usv_set:nnn {bfup} {Greek}{"1D6A8} +\usv_set:nnn {bfup} {greek}{"1D6C2} +\usv_set:nnn {bfit} {Latin}{"1D468} +\usv_set:nnn {bfit} {latin}{"1D482} +\usv_set:nnn {bfit} {Greek}{"1D71C} +\usv_set:nnn {bfit} {greek}{"1D736} \usv_set:nnn {bffrak}{Latin}{"1D56C} \usv_set:nnn {bffrak}{latin}{"1D586} -\usv_set:nnn {bfscr}{Latin}{"1D4D0} -\usv_set:nnn {bfcal}{Latin}{"1D4D0} -\usv_set:nnn {bfscr}{latin}{"1D4EA} -\usv_set:nnn {bfsf}{num}{"1D7EC} -\usv_set:nnn {bfsfup}{num}{"1D7EC} -\usv_set:nnn {bfsfit}{num}{"1D7EC} +\usv_set:nnn {bfscr} {Latin}{"1D4D0} +\usv_set:nnn {bfcal} {Latin}{"1D4D0} +\usv_set:nnn {bfscr} {latin}{"1D4EA} +\usv_set:nnn {bfsf} {num} {"1D7EC} +\usv_set:nnn {bfsfup}{num} {"1D7EC} +\usv_set:nnn {bfsfit}{num} {"1D7EC} \usv_set:nnn {bfsfup}{Latin}{"1D5D4} \usv_set:nnn {bfsfup}{latin}{"1D5EE} \usv_set:nnn {bfsfup}{Greek}{"1D756} @@ -87,53 +76,53 @@ \usv_set:nnn {bfsfit}{latin}{"1D656} \usv_set:nnn {bfsfit}{Greek}{"1D790} \usv_set:nnn {bfsfit}{greek}{"1D7AA} -\usv_set:nnn {bfsf}{Latin}{ \bool_if:NTF \g_um_upLatin_bool \g_um_bfsfup_Latin_usv \g_um_bfsfit_Latin_usv } -\usv_set:nnn {bfsf}{latin}{ \bool_if:NTF \g_um_uplatin_bool \g_um_bfsfup_latin_usv \g_um_bfsfit_latin_usv } -\usv_set:nnn {bfsf}{Greek}{ \bool_if:NTF \g_um_upGreek_bool \g_um_bfsfup_Greek_usv \g_um_bfsfit_Greek_usv } -\usv_set:nnn {bfsf}{greek}{ \bool_if:NTF \g_um_upgreek_bool \g_um_bfsfup_greek_usv \g_um_bfsfit_greek_usv } -\usv_set:nnn {bf}{Latin}{ \bool_if:NTF \g_um_bfupLatin_bool \g_um_bfup_Latin_usv \g_um_bfit_Latin_usv } -\usv_set:nnn {bf}{latin}{ \bool_if:NTF \g_um_bfuplatin_bool \g_um_bfup_latin_usv \g_um_bfit_latin_usv } -\usv_set:nnn {bf}{Greek}{ \bool_if:NTF \g_um_bfupGreek_bool \g_um_bfup_Greek_usv \g_um_bfit_Greek_usv } -\usv_set:nnn {bf}{greek}{ \bool_if:NTF \g_um_bfupgreek_bool \g_um_bfup_greek_usv \g_um_bfit_greek_usv } -\usv_set:nnn {up}{varTheta}{"3F4} -\usv_set:nnn {up}{Digamma}{"3DC} +\usv_set:nnn {bfsf}{Latin}{ \bool_if:NTF \g_um_upLatin_bool \g_um_bfsfup_Latin_usv \g_um_bfsfit_Latin_usv } +\usv_set:nnn {bfsf}{latin}{ \bool_if:NTF \g_um_uplatin_bool \g_um_bfsfup_latin_usv \g_um_bfsfit_latin_usv } +\usv_set:nnn {bfsf}{Greek}{ \bool_if:NTF \g_um_upGreek_bool \g_um_bfsfup_Greek_usv \g_um_bfsfit_Greek_usv } +\usv_set:nnn {bfsf}{greek}{ \bool_if:NTF \g_um_upgreek_bool \g_um_bfsfup_greek_usv \g_um_bfsfit_greek_usv } +\usv_set:nnn {bf} {Latin}{ \bool_if:NTF \g_um_bfupLatin_bool \g_um_bfup_Latin_usv \g_um_bfit_Latin_usv } +\usv_set:nnn {bf} {latin}{ \bool_if:NTF \g_um_bfuplatin_bool \g_um_bfup_latin_usv \g_um_bfit_latin_usv } +\usv_set:nnn {bf} {Greek}{ \bool_if:NTF \g_um_bfupGreek_bool \g_um_bfup_Greek_usv \g_um_bfit_Greek_usv } +\usv_set:nnn {bf} {greek}{ \bool_if:NTF \g_um_bfupgreek_bool \g_um_bfup_greek_usv \g_um_bfit_greek_usv } +\usv_set:nnn {up}{varTheta} {"3F4} +\usv_set:nnn {up}{Digamma} {"3DC} \usv_set:nnn {up}{varepsilon}{"3F5} -\usv_set:nnn {up}{vartheta}{"3D1} -\usv_set:nnn {up}{varkappa}{"3F0} -\usv_set:nnn {up}{varphi}{"3D5} -\usv_set:nnn {up}{varrho}{"3F1} -\usv_set:nnn {up}{varpi}{"3D6} -\usv_set:nnn {up}{digamma}{"3DD} -\usv_set:nnn {bfup}{varTheta}{"1D6B9} -\usv_set:nnn {bfup}{Digamma}{"1D7CA} +\usv_set:nnn {up}{vartheta} {"3D1} +\usv_set:nnn {up}{varkappa} {"3F0} +\usv_set:nnn {up}{varphi} {"3D5} +\usv_set:nnn {up}{varrho} {"3F1} +\usv_set:nnn {up}{varpi} {"3D6} +\usv_set:nnn {up}{digamma} {"3DD} +\usv_set:nnn {bfup}{varTheta} {"1D6B9} +\usv_set:nnn {bfup}{Digamma} {"1D7CA} \usv_set:nnn {bfup}{varepsilon}{"1D6DC} -\usv_set:nnn {bfup}{vartheta}{"1D6DD} -\usv_set:nnn {bfup}{varkappa}{"1D6DE} -\usv_set:nnn {bfup}{varphi}{"1D6DF} -\usv_set:nnn {bfup}{varrho}{"1D6E0} -\usv_set:nnn {bfup}{varpi}{"1D6E1} -\usv_set:nnn {bfup}{digamma}{"1D7CB} -\usv_set:nnn {it}{varTheta}{"1D6F3} +\usv_set:nnn {bfup}{vartheta} {"1D6DD} +\usv_set:nnn {bfup}{varkappa} {"1D6DE} +\usv_set:nnn {bfup}{varphi} {"1D6DF} +\usv_set:nnn {bfup}{varrho} {"1D6E0} +\usv_set:nnn {bfup}{varpi} {"1D6E1} +\usv_set:nnn {bfup}{digamma} {"1D7CB} +\usv_set:nnn {it}{varTheta} {"1D6F3} \usv_set:nnn {it}{varepsilon}{"1D716} -\usv_set:nnn {it}{vartheta}{"1D717} -\usv_set:nnn {it}{varkappa}{"1D718} -\usv_set:nnn {it}{varphi}{"1D719} -\usv_set:nnn {it}{varrho}{"1D71A} -\usv_set:nnn {it}{varpi}{"1D71B} -\usv_set:nnn {bfit}{varTheta}{"1D72D} +\usv_set:nnn {it}{vartheta} {"1D717} +\usv_set:nnn {it}{varkappa} {"1D718} +\usv_set:nnn {it}{varphi} {"1D719} +\usv_set:nnn {it}{varrho} {"1D71A} +\usv_set:nnn {it}{varpi} {"1D71B} +\usv_set:nnn {bfit}{varTheta} {"1D72D} \usv_set:nnn {bfit}{varepsilon}{"1D750} -\usv_set:nnn {bfit}{vartheta}{"1D751} -\usv_set:nnn {bfit}{varkappa}{"1D752} -\usv_set:nnn {bfit}{varphi}{"1D753} -\usv_set:nnn {bfit}{varrho}{"1D754} -\usv_set:nnn {bfit}{varpi}{"1D755} -\usv_set:nnn {bfsfup}{varTheta}{"1D767} +\usv_set:nnn {bfit}{vartheta} {"1D751} +\usv_set:nnn {bfit}{varkappa} {"1D752} +\usv_set:nnn {bfit}{varphi} {"1D753} +\usv_set:nnn {bfit}{varrho} {"1D754} +\usv_set:nnn {bfit}{varpi} {"1D755} +\usv_set:nnn {bfsfup}{varTheta} {"1D767} \usv_set:nnn {bfsfup}{varepsilon}{"1D78A} -\usv_set:nnn {bfsfup}{vartheta}{"1D78B} -\usv_set:nnn {bfsfup}{varkappa}{"1D78C} -\usv_set:nnn {bfsfup}{varphi}{"1D78D} -\usv_set:nnn {bfsfup}{varrho}{"1D78E} -\usv_set:nnn {bfsfup}{varpi}{"1D78F} +\usv_set:nnn {bfsfup}{vartheta} {"1D78B} +\usv_set:nnn {bfsfup}{varkappa} {"1D78C} +\usv_set:nnn {bfsfup}{varphi} {"1D78D} +\usv_set:nnn {bfsfup}{varrho} {"1D78E} +\usv_set:nnn {bfsfup}{varpi} {"1D78F} \usv_set:nnn {bfsfit}{varTheta} {"1D7A1} \usv_set:nnn {bfsfit}{varepsilon}{"1D7C4} \usv_set:nnn {bfsfit}{vartheta} {"1D7C5} @@ -261,7 +250,8 @@ \usv_set:nnn {frak}{I}{"2111} \usv_set:nnn {frak}{R}{"211C} \usv_set:nnn {frak}{Z}{"2128} -\tl_map_inline:nn { +\tl_map_inline:nn + { \new@mathgroup\cdp@list\cdp@elt\DeclareMathSizes \@DeclareMathSizes\newmathalphabet\newmathalphabet@@\newmathalphabet@@@ \DeclareMathVersion\define@mathalphabet\define@mathgroup\addtoversion @@ -275,45 +265,19 @@ \@DeclareMathDelimiter\@xDeclareMathDelimiter\set@mathdelimiter \set@@mathdelimiter\DeclareMathRadical\mathchar@type \DeclareSymbolFontAlphabet\DeclareSymbolFontAlphabet@ -}{ + } + { \tl_remove_once:Nn \@preamblecmds {\do#1} -} + } \def\new@mathgroup{\alloc@8\mathgroup\chardef\@cclvi} \let\newfam\new@mathgroup -\cs_set:Nn \um_set_mathsymbol:nNNn { +\cs_set:Nn \um_set_mathsymbol:nNNn + { \tl_case:Nnn #3 { - \mathop { \um_set_big_operator:nnn {#1} {#2} {#4} } - \mathopen - { - \tl_if_in:NnTF \l_um_radicals_tl {#2} - { - \cs_gset_protected_nopar:cpx {\cs_to_str:N #2 sign} - { \um_radical:nn {#1} {#4} } - \tl_set:cn {l_um_radical_\cs_to_str:N #2_tl} {\use:c{sym #1}~ #4} - } - { - \um_set_delcode:nnn {#1} {#4} {#4} - \um_set_mathcode:nnn {#4} \mathopen {#1} - \cs_gset_protected_nopar:Npx #2 - { \um_delimiter:Nnn \mathopen {#1} {#4} } - } - } - \mathclose - { - \um_set_delcode:nnn {#1} {#4} {#4} - \um_set_mathcode:nnn {#4} \mathclose {#1} - \cs_gset_protected_nopar:Npx #2 - { \um_delimiter:Nnn \mathclose {#1} {#4} } - } - \mathfence - { - \um_set_mathcode:nnn {#4} {#3} {#1} - \um_set_delcode:nnn {#1} {#4} {#4} - \cs_gset_protected_nopar:cpx {l \cs_to_str:N #2} - { \um_delimiter:Nnn \mathopen {#1} {#4} } - \cs_gset_protected_nopar:cpx {r \cs_to_str:N #2} - { \um_delimiter:Nnn \mathclose {#1} {#4} } - } + \mathop { \um_set_big_operator:nnn {#1} {#2} {#4} } + \mathopen { \um_set_math_open:nnn {#1} {#2} {#4} } + \mathclose { \um_set_math_close:nnn {#1} {#2} {#4} } + \mathfence { \um_set_math_fence:nnnn {#1} {#2} {#3} {#4} } \mathaccent { \cs_gset_protected_nopar:Npx #2 { \um_accent:nnn {fixed} {#1} {#4} } } \mathbotaccent @@ -331,76 +295,56 @@ }{ \um_set_mathcode:nnn {#4} {#3} {#1} } -} + } \edef\mathfence{\string\mathfence} \edef\mathover{\string\mathover} \edef\mathunder{\string\mathunder} \edef\mathbotaccent{\string\mathbotaccent} -\cs_new:Nn \um_set_big_operator:nnn { +\cs_new:Nn \um_set_big_operator:nnn + { \group_begin: \char_set_catcode_active:n {#3} \char_gmake_mathactive:n {#3} \um_active_char_set:wc #3 \q_nil { \cs_to_str:N #2 _sym } \group_end: \um_set_mathchar:cNnn {\cs_to_str:N #2 op} \mathop {#1} {#3} - \cs_gset:cpx { \cs_to_str:N #2 _sym } { + \cs_gset:cpx { \cs_to_str:N #2 _sym } + { \exp_not:c { \cs_to_str:N #2 op } \exp_not:n { \tl_if_in:NnT \l_um_nolimits_tl {#2} \nolimits } - } -} -\cs_set:Npn \um_set_mathcode:nnnn #1#2#3#4 { - \Umathcode \int_eval:n {#1} = - \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#4} \scan_stop: -} -\cs_set:Npn \um_set_mathcode:nnn #1#2#3 { - \Umathcode \int_eval:n {#1} = - \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#1} \scan_stop: -} -\cs_set:Npn \um_set_mathchar:NNnn #1#2#3#4 { - \Umathchardef #1 = - \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#4} \scan_stop: -} -\cs_new:Nn \um_set_delcode:nnn { - \Udelcode#2 = \csname sym#1\endcsname #3 -} -\cs_new:Nn \um_radical:nn { - \Uradical \csname sym#1\endcsname #2 \scan_stop: -} -\cs_new:Nn \um_delimiter:Nnn { - \Udelimiter \mathchar@type#1 \csname sym#2\endcsname #3 \scan_stop: -} -\cs_new:Nn \um_accent:nnn { - \Umathaccent #1~ \mathchar@type\mathaccent \use:c { sym #2 } #3 \scan_stop: -} -\cs_generate_variant:Nn \um_set_mathchar:NNnn {c} -\cs_new:Nn \char_gmake_mathactive:N { - \global\mathcode `#1 = "8000 \scan_stop: -} -\cs_new:Nn \char_gmake_mathactive:n { - \global\mathcode #1 = "8000 \scan_stop: -} -\cs_new:Nn \um_init: { - \bool_set_true:N \l_um_ot_math_bool - \cs_set_eq:NN \glb@currsize \scan_stop: - \bool_set_true:N \l_um_init_bool - \seq_clear:N \l_um_char_range_seq - \clist_clear:N \l_um_char_num_range_clist - \seq_clear:N \l_um_mathalph_seq - \seq_clear:N \l_um_missing_alph_seq - \tl_set:Nn \l_um_mversion_tl {normal} - \tl_set:Nn \um_symfont_tl {operators} - \cs_set_eq:NN \_um_sym:nnn \um_process_symbol_noparse:nnn - \cs_set_eq:NN \um_set_mathalphabet_char:Nnn \um_mathmap_noparse:Nnn - \cs_set_eq:NN \um_remap_symbol:nnn \um_remap_symbol_noparse:nnn - \cs_set_eq:NN \um_maybe_init_alphabet:n \um_init_alphabet:n - \cs_set_eq:NN \um_map_char_single:nn \um_map_char_noparse:nn - \cs_set_eq:NN \um_assign_delcode:nn \um_assign_delcode_noparse:nn - \cs_set_eq:NN \um_make_mathactive:nNN \um_make_mathactive_noparse:nNN - \tl_set:Nn \l_um_script_features_tl {Style=MathScript} - \tl_set:Nn \l_um_sscript_features_tl {Style=MathScriptScript} - \tl_set_eq:NN \l_um_script_font_tl \l_um_fontname_tl - \tl_set_eq:NN \l_um_sscript_font_tl \l_um_fontname_tl -} + } + } +\cs_new:Nn \um_set_math_open:nnn + { + \tl_if_in:NnTF \l_um_radicals_tl {#2} + { + \cs_gset_protected_nopar:cpx {\cs_to_str:N #2 sign} + { \um_radical:nn {#1} {#3} } + \tl_set:cn {l_um_radical_\cs_to_str:N #2_tl} {\use:c{sym #1}~ #3} + } + { + \um_set_delcode:nnn {#1} {#3} {#3} + \um_set_mathcode:nnn {#3} \mathopen {#1} + \cs_gset_protected_nopar:Npx #2 + { \um_delimiter:Nnn \mathopen {#1} {#3} } + } + } +\cs_new:Nn \um_set_math_close:nnn + { + \um_set_delcode:nnn {#1} {#3} {#3} + \um_set_mathcode:nnn {#3} \mathclose {#1} + \cs_gset_protected_nopar:Npx #2 + { \um_delimiter:Nnn \mathclose {#1} {#3} } + } +\cs_new:Nn \um_set_math_fence:nnnn + { + \um_set_mathcode:nnn {#4} {#3} {#1} + \um_set_delcode:nnn {#1} {#4} {#4} + \cs_gset_protected_nopar:cpx {l \cs_to_str:N #2} + { \um_delimiter:Nnn \mathopen {#1} {#4} } + \cs_gset_protected_nopar:cpx {r \cs_to_str:N #2} + { \um_delimiter:Nnn \mathclose {#1} {#4} } + } \DeclareDocumentCommand \setmathfont { O{} m } { \tl_set:Nn \l_um_fontname_tl {#2} \um_init: @@ -419,15 +363,16 @@ \tl_set:Nn \l_um_tmpa_tl {normal} \tl_if_eq:NNT \l_um_mversion_tl \l_um_tmpa_tl { - \SetSymbolFont{\um_symfont_tl}{bold} + \SetSymbolFont{\um_symfont_tl}{bold} {\encodingdefault}{\l_um_family_tl}{\bfdefault}{\updefault} } - \bool_if:nT {\l_um_ot_math_bool && !\g_um_mainfont_already_set_bool} { + \bool_if:nT { \l_um_ot_math_bool && !\g_um_mainfont_already_set_bool } + { \bool_set_true:N \g_um_mainfont_already_set_bool \um_declare_math_sizes: \um_setup_legacy_fam_two: \um_setup_legacy_fam_three: - } + } \um_input_math_symbol_table: \um_remap_symbols: \um_setup_mathactives: @@ -437,6 +382,30 @@ \um_setup_negations: \ignorespaces } +\cs_set_eq:NN \resetmathfont \setmathfont +\cs_new:Nn \um_init: + { + \bool_set_true:N \l_um_ot_math_bool + \cs_set_eq:NN \glb@currsize \scan_stop: + \bool_set_true:N \l_um_init_bool + \seq_clear:N \l_um_char_range_seq + \clist_clear:N \l_um_char_num_range_clist + \seq_clear:N \l_um_mathalph_seq + \seq_clear:N \l_um_missing_alph_seq + \tl_set:Nn \l_um_mversion_tl {normal} + \tl_set:Nn \um_symfont_tl {operators} + \cs_set_eq:NN \_um_sym:nnn \um_process_symbol_noparse:nnn + \cs_set_eq:NN \um_set_mathalphabet_char:Nnn \um_mathmap_noparse:Nnn + \cs_set_eq:NN \um_remap_symbol:nnn \um_remap_symbol_noparse:nnn + \cs_set_eq:NN \um_maybe_init_alphabet:n \um_init_alphabet:n + \cs_set_eq:NN \um_map_char_single:nn \um_map_char_noparse:nn + \cs_set_eq:NN \um_assign_delcode:nn \um_assign_delcode_noparse:nn + \cs_set_eq:NN \um_make_mathactive:nNN \um_make_mathactive_noparse:nNN + \tl_set:Nn \l_um_script_features_tl {Style=MathScript} + \tl_set:Nn \l_um_sscript_features_tl {Style=MathScriptScript} + \tl_set_eq:NN \l_um_script_font_tl \l_um_fontname_tl + \tl_set_eq:NN \l_um_sscript_font_tl \l_um_fontname_tl + } \cs_new:Nn \um_declare_math_sizes: { \dim_compare:nF { \fontdimen 10 \l_um_font == 0pt } @@ -452,7 +421,8 @@ { \l_um_font_keyval_tl, Scale=1.00001, - FontAdjustment={ + FontAdjustment = + { \fontdimen8\font= \um_get_fontparam:nn {43} {FractionNumeratorDisplayStyleShiftUp}\relax \fontdimen9\font= \um_get_fontparam:nn {42} {FractionNumeratorShiftUp}\relax \fontdimen10\font=\um_get_fontparam:nn {32} {StackTopShiftUp}\relax @@ -468,7 +438,7 @@ \fontdimen20\font=0pt\relax % delim1 = FractionDelimiterDisplaySize \fontdimen21\font=0pt\relax % delim2 = FractionDelimiterSize \fontdimen22\font=\um_get_fontparam:nn {15} {AxisHeight}\relax - } + } } {\l_um_fontname_tl} \SetSymbolFont{symbols}{\l_um_mversion_tl} {\encodingdefault}{\l_um_family_tl}{\mddefault}{\updefault} @@ -507,22 +477,27 @@ } \cs_new:Nn \um_get_fontparam:nn { \the\fontdimen#1\l_um_font\relax } -\cs_set_eq:NN \resetmathfont \setmathfont -\cs_new:Nn \um_fontspec_select_font: { +\cs_new:Nn \um_fontspec_select_font: + { \tl_set:Nx \l_um_font_keyval_tl { BoldItalicFont = {}, ItalicFont = {}, Script = Math, - SizeFeatures = { - {Size = \tf@size-} , - {Size = \sf@size-\tf@size , + SizeFeatures = + { + { + Size = \tf@size- + } , + { + Size = \sf@size-\tf@size , Font = \l_um_script_font_tl , \l_um_script_features_tl } , - {Size = -\sf@size , + { + Size = -\sf@size , Font = \l_um_sscript_font_tl , \l_um_sscript_features_tl } - }, + } , \l_um_unknown_keys_clist } \fontspec_set_fontface:NNxn \l_um_font \l_um_family_tl @@ -531,33 +506,43 @@ \fontfamily{\l_um_family_tl}\selectfont \fontspec_if_script:nF {math} {\bool_gset_false:N \l_um_ot_math_bool} \group_end: -} -\cs_set:Npn \um_process_symbol_noparse:nnn #1#2#3 { + } +\cs_set:Nn \um_process_symbol_noparse:nnn + { \um_set_mathsymbol:nNNn {\um_symfont_tl} #2#3{#1} -} -\cs_set:Npn \um_process_symbol_parse:nnn #1#2#3 { - \um_if_char_spec:nNNT{#1}{#2}{#3}{ + } +\cs_set:Nn \um_process_symbol_parse:nnn + { + \um_if_char_spec:nNNT{#1}{#2}{#3} + { \um_process_symbol_noparse:nnn {#1}{#2}{#3} - } -} -\cs_new:Npn \um_remap_symbols: { + } + } +\cs_new:Npn \um_remap_symbols: + { \um_remap_symbol:nnn{`\-}{\mathbin}{"02212}% hyphen to minus \um_remap_symbol:nnn{`\*}{\mathbin}{"02217}% text asterisk to "centred asterisk" - \bool_if:NF \g_um_literal_colon_bool { + \bool_if:NF \g_um_literal_colon_bool + { \um_remap_symbol:nnn{`\:}{\mathrel}{"02236}% colon to ratio (i.e., punct to rel) - } -} -\cs_new:Nn \um_remap_symbol_parse:nnn { - \um_if_char_spec:nNNT {#3} {\@nil} {#2} { + } + } +\cs_new:Nn \um_remap_symbol_parse:nnn + { + \um_if_char_spec:nNNT {#3} {\@nil} {#2} + { \um_remap_symbol_noparse:nnn {#1} {#2} {#3} - } -} -\cs_new:Nn \um_remap_symbol_noparse:nnn { - \clist_map_inline:nn {#1} { + } + } +\cs_new:Nn \um_remap_symbol_noparse:nnn + { + \clist_map_inline:nn {#1} + { \um_set_mathcode:nnnn {##1} {#2} {\um_symfont_tl} {#3} - } -} -\cs_new:Npn \um_setup_mathactives: { + } + } +\cs_new:Npn \um_setup_mathactives: + { \um_make_mathactive:nNN {"2032} \um_prime_single_mchar \mathord \um_make_mathactive:nNN {"2033} \um_prime_double_mchar \mathord \um_make_mathactive:nNN {"2034} \um_prime_triple_mchar \mathord @@ -567,7 +552,7 @@ \um_make_mathactive:nNN {"2037} \um_backprime_triple_mchar \mathord \um_make_mathactive:nNN {`\'} \mathstraightquote \mathord \um_make_mathactive:nNN {`\`} \mathbacktick \mathord -} + } \cs_new:Nn \um_make_mathactive_parse:nNN { \um_if_char_spec:nNNT {#1} #2 #3 @@ -578,16 +563,20 @@ \um_set_mathchar:NNnn #2 #3 {\um_symfont_tl} {#1} \char_gmake_mathactive:n {#1} } -\cs_new:Nn \um_assign_delcode_noparse:nn { +\cs_new:Nn \um_assign_delcode_noparse:nn + { \um_set_delcode:nnn \um_symfont_tl {#1} {#2} -} -\cs_new:Nn \um_assign_delcode_parse:nn { - \um_if_char_spec:nNNT {#2}{\@nil}{\@nil} { + } +\cs_new:Nn \um_assign_delcode_parse:nn + { + \um_if_char_spec:nNNT {#2} {\@nil} {\@nil} + { \um_assign_delcode_noparse:nn {#1} {#2} - } -} + } + } \cs_new:Nn \um_assign_delcode:n { \um_assign_delcode:nn {#1} {#1} } -\cs_new:Npn \um_setup_delcodes: { +\cs_new:Npn \um_setup_delcodes: + { \um_assign_delcode:nn {`\.} {\c_zero} % ensure \left. and \right. work \um_assign_delcode:nn {`\/} {\g_um_slash_delimiter_usv} \um_assign_delcode:nn {"2044} {\g_um_slash_delimiter_usv} % fracslash @@ -622,21 +611,24 @@ \um_assign_delcode:n {"21E9} % down white arrow \um_assign_delcode:n {"21EA} % up white arrow from bar \um_assign_delcode:n {"21F3} % updown white arrow -} + } \tl_new:N \l_um_nolimits_tl -\tl_set:Nn \l_um_nolimits_tl { +\tl_set:Nn \l_um_nolimits_tl + { \int\iint\iiint\iiiint\oint\oiint\oiiint \intclockwise\varointclockwise\ointctrclockwise\sumint \intbar\intBar\fint\cirfnint\awint\rppolint \scpolint\npolint\pointint\sqint\intlarhk\intx \intcap\intcup\upint\lowint -} -\DeclareDocumentCommand \addnolimits {m} { + } +\DeclareDocumentCommand \addnolimits {m} + { \tl_put_right:Nn \l_um_nolimits_tl {#1} -} -\DeclareDocumentCommand \removenolimits {m} { + } +\DeclareDocumentCommand \removenolimits {m} + { \tl_remove_all:Nn \l_um_nolimits_tl {#1} -} + } \tl_new:N \l_um_radicals_tl \tl_set:Nn \l_um_radicals_tl {\sqrt \longdivision} \cs_new_protected_nopar:Nn \um_new_cramped_style:N @@ -683,22 +675,26 @@ \um_font_param_aux:ccnnnn { um_ #1 :N } { um_set_ #1 :N } { #2 } { #3 } { #4 } { #5 } } -\cs_new_protected_nopar:Npn \um_font_param:nnn #1 #2 #3 { +\cs_new_protected_nopar:Nn \um_font_param:nnn + { \um_font_param:nnnnn { #1 } { #2 } { #2 } { #3 } { #3 } -} -\cs_new_protected_nopar:Npn \um_font_param:nn #1 #2 { + } +\cs_new_protected_nopar:Nn \um_font_param:nn + { \um_font_param:nnnnn { #1 } { #2 } { #2 } { #2 } { #2 } -} + } \cs_new_protected_nopar:Nn \um_font_param:n { } \cs_new_protected_nopar:Nn \um_font_param_aux:NNnnnn { - \cs_new_nopar:Npn #1 ##1 { + \cs_new_nopar:Npn #1 ##1 + { \um_font_dimen:Nnnnn ##1 { #3 } { #4 } { #5 } { #6 } - } - \cs_new_protected_nopar:Npn #2 ##1 ##2 { + } + \cs_new_protected_nopar:Npn #2 ##1 ##2 + { #1 ##1 \dim_eval:n { ##2 } - } + } } \cs_generate_variant:Nn \um_font_param_aux:NNnnnn { cc } \um_font_param:nn { axis } { 15 } @@ -786,17 +782,18 @@ } } \keys_define:nn {unicode-math} -{ + { script-features .tl_set:N = \l_um_script_features_tl , sscript-features .tl_set:N = \l_um_sscript_features_tl , script-font .tl_set:N = \l_um_script_font_tl , sscript-font .tl_set:N = \l_um_sscript_font_tl , -} + } \seq_new:N \l_um_mathalph_seq \seq_new:N \l_um_char_range_seq \seq_new:N \l_um_mclass_range_seq \seq_new:N \l_um_cmd_range_seq -\keys_define:nn {unicode-math} { +\keys_define:nn {unicode-math} + { range .code:n = { \bool_set_false:N \l_um_init_bool \int_incr:N \g_um_fam_int @@ -830,7 +827,7 @@ } } } -} + } \seq_new:N \g_um_mathclasses_seq \seq_set_from_clist:Nn \g_um_mathclasses_seq { @@ -930,14 +927,17 @@ \bool_if:NTF \g_um_texgreek_bool \mitphi \mitvarphi } } -\cs_new:Nn \um_new_mathstyle:N { +\cs_new:Nn \um_new_mathstyle:N + { \um_prepare_mathstyle:f {\exp_after:wN \use_none:nnnnn \token_to_str:N #1} \seq_put_right:Nn \g_um_mathstyles_seq {#1} -} + } \seq_new:N \g_um_default_mathalph_seq \seq_new:N \g_um_mathstyles_seq -\AtEndOfPackage{ -\clist_map_inline:nn { +\AtEndOfPackage + { +\clist_map_inline:nn + { {\mathup } {latin,Latin,greek,Greek,num,misc} {\mathup } , {\mathit } {latin,Latin,greek,Greek,misc} {\mathit } , {\mathbb } {latin,Latin,num,misc} {\mathbb } , @@ -955,21 +955,26 @@ {\mathbffrak} {latin,Latin} {\mathbffrak} , {\mathbfsfup} {latin,Latin,greek,Greek,num,misc} {\mathbfsfup} , {\mathbfsfit} {latin,Latin,greek,Greek,misc} {\mathbfsfit} -}{ + } + { \seq_put_right:Nn \g_um_default_mathalph_seq {#1} \exp_after:wN \um_new_mathstyle:N \use_i:nnn #1 -} -\um_new_mathstyle:N \mathsf -\um_new_mathstyle:N \mathbf -\um_new_mathstyle:N \mathbfsf -} -\cs_new:Nn \um_prepare_mathstyle:n { + } + \um_new_mathstyle:N \mathsf + \um_new_mathstyle:N \mathbf + \um_new_mathstyle:N \mathbfsf + } +\cs_new:Nn \um_prepare_mathstyle:n + { \um_init_alphabet:x {#1} - \cs_set:cpn {_um_math#1_aux:n} ##1 { + \cs_set:cpn {_um_math#1_aux:n} ##1 + { \use:c {um_switchto_math#1:} ##1 \egroup - } - \cs_set_protected:cpx {math#1} { - \exp_not:n{ + } + \cs_set_protected:cpx {math#1} + { + \exp_not:n + { \bgroup \mode_if_math:F { @@ -977,22 +982,25 @@ \non@alpherr\expandafter{\csname math#1\endcsname\space} } \tl_set:Nn \l_um_mathstyle_tl {#1} - } + } \exp_not:c {_um_math#1_aux:n} - } -} + } + } \tl_new:N \l_um_mathstyle_tl \cs_generate_variant:Nn \um_prepare_mathstyle:n {f} -\cs_set:Npn \um_init_alphabet:n #1 { +\cs_set:Nn \um_init_alphabet:n + { \um_log:nx {alph-initialise} {#1} \cs_set_eq:cN {um_switchto_math#1:} \prg_do_nothing: -} + } \cs_generate_variant:Nn \um_init_alphabet:n {x} -\cs_new:Npn \um_maybe_init_alphabet:V { +\cs_new:Npn \um_maybe_init_alphabet:V + { \exp_args:NV \um_maybe_init_alphabet:n -} + } \seq_new:N \l_um_missing_alph_seq -\cs_new:Npn \um_setup_alphabets: { +\cs_new:Npn \um_setup_alphabets: + { \seq_if_empty:NTF \l_um_mathalph_seq { \um_log:n {setup-implicit} \seq_set_eq:NN \l_um_mathalph_seq \g_um_default_mathalph_seq @@ -1023,93 +1031,123 @@ \l_um_tmpa_tl \l_um_tmpb_tl \l_um_remap_style_tl } \seq_if_empty:NF \l_um_missing_alph_seq { \um_log:n { missing-alphabets } } -} -\cs_new:Nn \um_setup_math_alphabet:Nnn { - \tl_set:Nx \l_um_style_tl { + } +\cs_new:Nn \um_setup_math_alphabet:Nnn + { + \tl_set:Nx \l_um_style_tl + { \exp_after:wN \use_none:nnnnn \token_to_str:N #1 - } - \clist_map_inline:nn {#2} { + } + \clist_map_inline:nn {#2} + { \tl_set:Nx \l_um_tmpa_tl { \tl_trim_spaces:n {##1} } - \cs_if_exist:cT {um_config_ \l_um_style_tl _\l_um_tmpa_tl :n} { - \str_if_eq_x:nnTF {\l_um_tmpa_tl}{misc} { + \cs_if_exist:cT {um_config_ \l_um_style_tl _\l_um_tmpa_tl :n} + { + \str_if_eq_x:nnTF {\l_um_tmpa_tl}{misc} + { \um_maybe_init_alphabet:V \l_um_style_tl \clist_map_break: - }{ - \um_glyph_if_exist:cT { \um_to_usv:nn {#3}{\l_um_tmpa_tl} }{ + } + { + \um_glyph_if_exist:cT { \um_to_usv:nn {#3}{\l_um_tmpa_tl} } + { \um_maybe_init_alphabet:V \l_um_style_tl \clist_map_break: - } - } - } - } - \clist_map_inline:nn {#2} { + } + } + } + } + \clist_map_inline:nn {#2} + { \tl_set:Nx \l_um_tmpa_tl { \tl_trim_spaces:n {##1} } - \cs_if_exist:cT {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} { - \str_if_eq_x:nnTF {\l_um_tmpa_tl}{misc} { + \cs_if_exist:cT {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} + { + \str_if_eq_x:nnTF {\l_um_tmpa_tl}{misc} + { \um_log:nx {setup-alph} {math \l_um_style_tl~(\l_um_tmpa_tl)} \use:c {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} {#3} - }{ - \um_glyph_if_exist:cTF { \um_to_usv:nn {#3}{\l_um_tmpa_tl} } { + } + { + \um_glyph_if_exist:cTF { \um_to_usv:nn {#3}{\l_um_tmpa_tl} } + { \um_log:nx {setup-alph} {math \l_um_style_tl~(\l_um_tmpa_tl)} \use:c {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} {#3} - }{ - \bool_if:NTF \l_um_implicit_alph_bool { - \seq_put_right:Nx \l_um_missing_alph_seq { + } + { + \bool_if:NTF \l_um_implicit_alph_bool + { + \seq_put_right:Nx \l_um_missing_alph_seq + { \@backslashchar math \l_um_style_tl \space (\tl_use:c{c_um_math_alphabet_name_ \l_um_tmpa_tl _tl}) - } - }{ + } + } + { \use:c {um_config_ \l_um_style_tl _ \l_um_tmpa_tl :n} {up} - } - } - } - } - } -} + } + } + } + } + } + } \cs_generate_variant:Nn \um_setup_math_alphabet:Nnn {VVV} \cs_new:Npn \um_map_char_single:cc { \exp_args:Ncc \um_map_char_single:nn } -\cs_new:Nn \um_map_char_noparse:nn { +\cs_new:Nn \um_map_char_noparse:nn + { \um_set_mathcode:nnnn {#1}{\mathalpha}{\um_symfont_tl}{#2} -} -\cs_new:Nn \um_map_char_parse:nn { - \um_if_char_spec:nNNT {#1} {\@nil} {\mathalpha} { + } +\cs_new:Nn \um_map_char_parse:nn + { + \um_if_char_spec:nNNT {#1} {\@nil} {\mathalpha} + { \um_map_char_noparse:nn {#1}{#2} - } -} -\cs_new:Nn \um_map_char_single:nnn { + } + } +\cs_new:Nn \um_map_char_single:nnn + { \um_map_char_single:cc { \um_to_usv:nn {#1}{#3} } { \um_to_usv:nn {#2}{#3} } -} -\cs_set:Npn \um_map_single:nnn #1#2#3 { + } +\cs_set:Nn \um_map_single:nnn + { \cs_if_exist:cT { \um_to_usv:nn {#3} {#1} } { - \clist_map_inline:nn {#2} { + \clist_map_inline:nn {#2} + { \um_map_char_single:nnn {##1} {#3} {#1} - } + } } -} -\cs_set:Npn \um_map_chars_range:nnn #1#2#3 { + } +\cs_set:Nn \um_map_chars_range:nnn + { \int_step_inline:nnnn {0}{1}{#1-1} { \um_map_char_single:nn {#2+##1}{#3+##1} } -} + } \cs_generate_variant:Nn \um_map_chars_range:nnn {ncc} -\cs_new:Nn \um_map_chars_range:nnnn { +\cs_new:Nn \um_map_chars_range:nnnn + { \um_map_chars_range:ncc {#1} { \um_to_usv:nn {#2}{#4} } { \um_to_usv:nn {#3}{#4} } -} -\cs_new:Nn \um_map_chars_Latin:nn { - \clist_map_inline:nn {#1} { + } +\cs_new:Nn \um_map_chars_Latin:nn + { + \clist_map_inline:nn {#1} + { \um_map_chars_range:nnnn {26} {##1} {#2} {Latin} - } -} -\cs_new:Nn \um_map_chars_latin:nn { - \clist_map_inline:nn {#1} { + } + } +\cs_new:Nn \um_map_chars_latin:nn + { + \clist_map_inline:nn {#1} + { \um_map_chars_range:nnnn {26} {##1} {#2} {latin} - } -} -\cs_new:Nn \um_map_chars_greek:nn { - \clist_map_inline:nn {#1} { + } + } +\cs_new:Nn \um_map_chars_greek:nn + { + \clist_map_inline:nn {#1} + { \um_map_chars_range:nnnn {25} {##1} {#2} {greek} \um_map_char_single:nnn {##1} {#2} {varepsilon} \um_map_char_single:nnn {##1} {#2} {vartheta} @@ -1117,73 +1155,95 @@ \um_map_char_single:nnn {##1} {#2} {varphi} \um_map_char_single:nnn {##1} {#2} {varrho} \um_map_char_single:nnn {##1} {#2} {varpi} - } -} -\cs_new:Nn \um_map_chars_Greek:nn { - \clist_map_inline:nn {#1} { + } + } +\cs_new:Nn \um_map_chars_Greek:nn + { + \clist_map_inline:nn {#1} + { \um_map_chars_range:nnnn {25} {##1} {#2} {Greek} \um_map_char_single:nnn {##1} {#2} {varTheta} - } -} -\cs_new:Nn \um_map_chars_numbers:nn { + } + } +\cs_new:Nn \um_map_chars_numbers:nn + { \um_map_chars_range:nnnn {10} {#1} {#2} {num} -} -\cs_new:Npn \um_set_mathalphabet_char:Ncc { + } +\cs_new:Npn \um_set_mathalphabet_char:Ncc + { \exp_args:NNcc \um_set_mathalphabet_char:Nnn -} -\cs_new:Nn \um_mathmap_noparse:Nnn { - \clist_map_inline:nn {#2} { - \tl_put_right:cx {um_switchto_\cs_to_str:N #1:} { + } +\cs_new:Nn \um_mathmap_noparse:Nnn + { + \clist_map_inline:nn {#2} + { + \tl_put_right:cx {um_switchto_\cs_to_str:N #1:} + { \um_set_mathcode:nnnn{##1}{\mathalpha}{\um_symfont_tl}{#3} - } - } -} -\cs_new:Nn \um_mathmap_parse:Nnn { - \clist_if_in:NnT \l_um_char_num_range_clist {#3} { + } + } + } +\cs_new:Nn \um_mathmap_parse:Nnn + { + \clist_if_in:NnT \l_um_char_num_range_clist {#3} + { \um_mathmap_noparse:Nnn {#1}{#2}{#3} - } -} -\cs_new:Npn \um_set_mathalphabet_char:Nnnn #1#2#3#4 { + } + } +\cs_new:Nn \um_set_mathalphabet_char:Nnnn + { \um_set_mathalphabet_char:Ncc #1 { \um_to_usv:nn {#2} {#4} } { \um_to_usv:nn {#3} {#4} } -} -\cs_new:Npn \um_set_mathalph_range:nNnn #1#2#3#4 { + } +\cs_new:Nn \um_set_mathalph_range:nNnn + { \int_step_inline:nnnn {0}{1}{#1-1} { \um_set_mathalphabet_char:Nnn {#2} { ##1 + #3 } { ##1 + #4 } } -} + } \cs_generate_variant:Nn \um_set_mathalph_range:nNnn {nNcc} -\cs_new:Npn \um_set_mathalph_range:nNnnn #1#2#3#4#5 { +\cs_new:Nn \um_set_mathalph_range:nNnnn + { \um_set_mathalph_range:nNcc {#1} #2 { \um_to_usv:nn {#3} {#5} } { \um_to_usv:nn {#4} {#5} } -} -\cs_new:Npn \um_set_mathalphabet_pos:Nnnn #1#2#3#4 { - \cs_if_exist:cT { \um_to_usv:nn {#4}{#2} } { + } +\cs_new:Nn \um_set_mathalphabet_pos:Nnnn + { + \cs_if_exist:cT { \um_to_usv:nn {#4}{#2} } + { \clist_map_inline:nn {#3} { \um_set_mathalphabet_char:Nnnn #1 {##1} {#4} {#2} } - } -} -\cs_new:Nn \um_set_mathalphabet_numbers:Nnn { + } + } +\cs_new:Nn \um_set_mathalphabet_numbers:Nnn + { \clist_map_inline:nn {#2} { \um_set_mathalph_range:nNnnn {10} #1 {##1} {#3} {num} } -} -\cs_new:Nn \um_set_mathalphabet_Latin:Nnn { + } +\cs_new:Nn \um_set_mathalphabet_Latin:Nnn + { \clist_map_inline:nn {#2} { \um_set_mathalph_range:nNnnn {26} #1 {##1} {#3} {Latin} } -} -\cs_new:Nn \um_set_mathalphabet_latin:Nnn { - \clist_map_inline:nn {#2} { + } +\cs_new:Nn \um_set_mathalphabet_latin:Nnn + { + \clist_map_inline:nn {#2} + { \um_set_mathalph_range:nNnnn {26} #1 {##1} {#3} {latin} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {h} - } -} -\cs_new:Nn \um_set_mathalphabet_Greek:Nnn { - \clist_map_inline:nn {#2} { + } + } +\cs_new:Nn \um_set_mathalphabet_Greek:Nnn + { + \clist_map_inline:nn {#2} + { \um_set_mathalph_range:nNnnn {25} #1 {##1} {#3} {Greek} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varTheta} - } -} -\cs_new:Nn \um_set_mathalphabet_greek:Nnn { - \clist_map_inline:nn {#2} { + } + } +\cs_new:Nn \um_set_mathalphabet_greek:Nnn + { + \clist_map_inline:nn {#2} + { \um_set_mathalph_range:nNnnn {25} #1 {##1} {#3} {greek} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varepsilon} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {vartheta} @@ -1191,127 +1251,172 @@ \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varphi} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varrho} \um_set_mathalphabet_char:Nnnn #1 {##1} {#3} {varpi} - } -} -\cs_new:Nn \um_config_up_num:n { + } + } +\cs_new:Nn \um_config_up_num:n + { \um_map_chars_numbers:nn {up}{#1} \um_set_mathalphabet_numbers:Nnn \mathup {up}{#1} -} + } + \cs_new:Nn \um_config_up_Latin:n - { - \bool_if:NTF \g_um_literal_bool { \um_map_chars_Latin:nn {up} {#1} } - { + { + \bool_if:NTF \g_um_literal_bool { \um_map_chars_Latin:nn {up} {#1} } + { \bool_if:NT \g_um_upLatin_bool { \um_map_chars_Latin:nn {up,it} {#1} } - } - \um_set_mathalphabet_Latin:Nnn \mathup {up,it}{#1} -} -\cs_new:Nn \um_config_up_latin:n { + } + \um_set_mathalphabet_Latin:Nnn \mathup {up,it} {#1} + } + +\cs_new:Nn \um_config_up_latin:n + { \bool_if:NTF \g_um_literal_bool { \um_map_chars_latin:nn {up} {#1} } - { - \bool_if:NT \g_um_uplatin_bool { + { + \bool_if:NT \g_um_uplatin_bool + { \um_map_chars_latin:nn {up,it} {#1} \um_map_single:nnn {h} {up,it} {#1} \um_map_single:nnn {dotlessi} {up,it} {#1} \um_map_single:nnn {dotlessj} {up,it} {#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathup {up,it}{#1} -} -\cs_new:Nn \um_config_up_Greek:n { + } + +\cs_new:Nn \um_config_up_Greek:n + { \bool_if:NTF \g_um_literal_bool { \um_map_chars_Greek:nn {up}{#1} } - { + { \bool_if:NT \g_um_upGreek_bool { \um_map_chars_Greek:nn {up,it}{#1} } - } + } \um_set_mathalphabet_Greek:Nnn \mathup {up,it}{#1} -} -\cs_new:Nn \um_config_up_greek:n { + } + +\cs_new:Nn \um_config_up_greek:n + { \bool_if:NTF \g_um_literal_bool { \um_map_chars_greek:nn {up} {#1} } - { - \bool_if:NT \g_um_upgreek_bool { + { + \bool_if:NT \g_um_upgreek_bool + { \um_map_chars_greek:nn {up,it} {#1} - } - } + } + } \um_set_mathalphabet_greek:Nnn \mathup {up,it} {#1} -} -\cs_new:Nn \um_config_up_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { + } + +\cs_new:Nn \um_config_up_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{up}{up} - }{ - \bool_if:NT \g_um_upNabla_bool { + } + { + \bool_if:NT \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{up,it}{up} - } - } - \bool_if:NTF \g_um_literal_partial_bool { + } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{up}{up} - }{ - \bool_if:NT \g_um_uppartial_bool { + } + { + \bool_if:NT \g_um_uppartial_bool + { \um_map_single:nnn {partial}{up,it}{up} - } - } + } + } \um_set_mathalphabet_pos:Nnnn \mathup {partial} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathup {Nabla} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathup {dotlessi} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathup {dotlessj} {up,it} {#1} -} -\cs_new:Nn \um_config_it_Latin:n { + } +\cs_new:Nn \um_config_it_Latin:n + { \bool_if:NTF \g_um_literal_bool { \um_map_chars_Latin:nn {it} {#1} } - { + { \bool_if:NF \g_um_upLatin_bool { \um_map_chars_Latin:nn {up,it} {#1} } - } + } \um_set_mathalphabet_Latin:Nnn \mathit {up,it}{#1} -} -\cs_new:Nn \um_config_it_latin:n { - \bool_if:NTF \g_um_literal_bool { + } + +\cs_new:Nn \um_config_it_latin:n + { + \bool_if:NTF \g_um_literal_bool + { \um_map_chars_latin:nn {it} {#1} \um_map_single:nnn {h}{it}{#1} - }{ - \bool_if:NF \g_um_uplatin_bool { + } + { + \bool_if:NF \g_um_uplatin_bool + { \um_map_chars_latin:nn {up,it} {#1} \um_map_single:nnn {h}{up,it}{#1} \um_map_single:nnn {dotlessi}{up,it}{#1} \um_map_single:nnn {dotlessj}{up,it}{#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathit {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathit {dotlessi} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathit {dotlessj} {up,it} {#1} -} -\cs_new:Nn \um_config_it_Greek:n { - \bool_if:NTF \g_um_literal_bool { \um_map_chars_Greek:nn {it}{#1} - }{ + } + +\cs_new:Nn \um_config_it_Greek:n + { + \bool_if:NTF \g_um_literal_bool + { + \um_map_chars_Greek:nn {it}{#1} + } + { \bool_if:NF \g_um_upGreek_bool { \um_map_chars_Greek:nn {up,it}{#1} } - } + } \um_set_mathalphabet_Greek:Nnn \mathit {up,it}{#1} -} -\cs_new:Nn \um_config_it_greek:n { - \bool_if:NTF \g_um_literal_bool { \um_map_chars_greek:nn {it} {#1} } - { + } + +\cs_new:Nn \um_config_it_greek:n + { + \bool_if:NTF \g_um_literal_bool + { + \um_map_chars_greek:nn {it} {#1} + } + { \bool_if:NF \g_um_upgreek_bool { \um_map_chars_greek:nn {it,up} {#1} } - } + } \um_set_mathalphabet_greek:Nnn \mathit {up,it} {#1} -} -\cs_new:Nn \um_config_it_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { + } + +\cs_new:Nn \um_config_it_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{it}{it} - }{ - \bool_if:NF \g_um_upNabla_bool { + } + { + \bool_if:NF \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{up,it}{it} - } - } - \bool_if:NTF \g_um_literal_partial_bool { + } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{it}{it} - }{ - \bool_if:NF \g_um_uppartial_bool { + } + { + \bool_if:NF \g_um_uppartial_bool + { \um_map_single:nnn {partial}{up,it}{it} - } - } + } + } \um_set_mathalphabet_pos:Nnnn \mathit {partial} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathit {Nabla} {up,it}{#1} -} -\cs_new:Nn \um_config_bb_latin:n { + } +\cs_new:Nn \um_config_bb_latin:n + { \um_set_mathalphabet_latin:Nnn \mathbb {up,it}{#1} -} -\cs_new:Nn \um_config_bb_Latin:n { + } + +\cs_new:Nn \um_config_bb_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathbb {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbb {C} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {H} {up,it} {#1} @@ -1320,25 +1425,32 @@ \um_set_mathalphabet_pos:Nnnn \mathbb {Q} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {R} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {Z} {up,it} {#1} -} -\cs_new:Nn \um_config_bb_num:n { + } + +\cs_new:Nn \um_config_bb_num:n + { \um_set_mathalphabet_numbers:Nnn \mathbb {up}{#1} -} -\cs_new:Nn \um_config_bb_misc:n { + } + +\cs_new:Nn \um_config_bb_misc:n + { \um_set_mathalphabet_pos:Nnnn \mathbb {Pi} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {pi} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {Gamma} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {gamma} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbb {summation} {up} {#1} -} -\cs_new:Nn \um_config_bbit_misc:n { + } + +\cs_new:Nn \um_config_bbit_misc:n + { \um_set_mathalphabet_pos:Nnnn \mathbbit {D} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbbit {d} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbbit {e} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbbit {i} {up,it} {#1} \um_set_mathalphabet_pos:Nnnn \mathbbit {j} {up,it} {#1} -} -\cs_new:Nn \um_config_scr_Latin:n { + } +\cs_new:Nn \um_config_scr_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathscr {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {B}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {E}{up,it}{#1} @@ -1348,14 +1460,17 @@ \um_set_mathalphabet_pos:Nnnn \mathscr {L}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {M}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {R}{up,it}{#1} -} -\cs_new:Nn \um_config_scr_latin:n { + } + +\cs_new:Nn \um_config_scr_latin:n + { \um_set_mathalphabet_latin:Nnn \mathscr {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {e}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {g}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathscr {o}{up,it}{#1} -} -\cs_new:Nn \um_config_cal_Latin:n { + } +\cs_new:Nn \um_config_cal_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathcal {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathcal {B}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathcal {E}{up,it}{#1} @@ -1365,495 +1480,665 @@ \um_set_mathalphabet_pos:Nnnn \mathcal {L}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathcal {M}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathcal {R}{up,it}{#1} -} -\cs_new:Nn \um_config_frak_Latin:n { + } +\cs_new:Nn \um_config_frak_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathfrak {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathfrak {C}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathfrak {H}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathfrak {I}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathfrak {R}{up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathfrak {Z}{up,it}{#1} -} -\cs_new:Nn \um_config_frak_latin:n { + } +\cs_new:Nn \um_config_frak_latin:n + { \um_set_mathalphabet_latin:Nnn \mathfrak {up,it}{#1} -} -\cs_new:Nn \um_config_sfup_num:n { + } +\cs_new:Nn \um_config_sfup_num:n + { \um_set_mathalphabet_numbers:Nnn \mathsf {up}{#1} \um_set_mathalphabet_numbers:Nnn \mathsfup {up}{#1} -} -\cs_new:Nn \um_config_sfup_Latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } +\cs_new:Nn \um_config_sfup_Latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Latin:nn {sfup} {#1} \um_set_mathalphabet_Latin:Nnn \mathsf {up}{#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_Latin:nn {sfup,sfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Latin:Nnn \mathsfup {up,it}{#1} -} -\cs_new:Nn \um_config_sfup_latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } +\cs_new:Nn \um_config_sfup_latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_latin:nn {sfup} {#1} \um_set_mathalphabet_latin:Nnn \mathsf {up}{#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_latin:nn {sfup,sfit} {#1} \um_set_mathalphabet_latin:Nnn \mathsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathsfup {up,it}{#1} -} -\cs_new:Nn \um_config_sfit_Latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } +\cs_new:Nn \um_config_sfit_Latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Latin:nn {sfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathsf {it}{#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_Latin:nn {sfup,sfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Latin:Nnn \mathsfit {up,it}{#1} -} -\cs_new:Nn \um_config_sfit_latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } +\cs_new:Nn \um_config_sfit_latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_latin:nn {sfit} {#1} \um_set_mathalphabet_latin:Nnn \mathsf {it}{#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_latin:nn {sfup,sfit} {#1} \um_set_mathalphabet_latin:Nnn \mathsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathsfit {up,it}{#1} -} -\cs_new:Nn \um_config_tt_num:n { + } +\cs_new:Nn \um_config_tt_num:n + { \um_set_mathalphabet_numbers:Nnn \mathtt {up}{#1} -} -\cs_new:Nn \um_config_tt_Latin:n { + } +\cs_new:Nn \um_config_tt_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathtt {up,it}{#1} -} -\cs_new:Nn \um_config_tt_latin:n { + } +\cs_new:Nn \um_config_tt_latin:n + { \um_set_mathalphabet_latin:Nnn \mathtt {up,it}{#1} -} -\cs_new:Nn \um_config_bfit_Latin:n { - \bool_if:NF \g_um_bfupLatin_bool { + } +\cs_new:Nn \um_config_bfit_Latin:n + { + \bool_if:NF \g_um_bfupLatin_bool + { \um_map_chars_Latin:nn {bfup,bfit} {#1} - } + } \um_set_mathalphabet_Latin:Nnn \mathbfit {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_Latin:nn {bfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbf {it}{#1} - }{ - \bool_if:NF \g_um_bfupLatin_bool { + } + { + \bool_if:NF \g_um_bfupLatin_bool + { \um_map_chars_Latin:nn {bfup,bfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfit_latin:n { - \bool_if:NF \g_um_bfuplatin_bool { + } + } + } + +\cs_new:Nn \um_config_bfit_latin:n + { + \bool_if:NF \g_um_bfuplatin_bool + { \um_map_chars_latin:nn {bfup,bfit} {#1} - } + } \um_set_mathalphabet_latin:Nnn \mathbfit {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_latin:nn {bfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbf {it}{#1} - }{ - \bool_if:NF \g_um_bfuplatin_bool { + } + { + \bool_if:NF \g_um_bfuplatin_bool + { \um_map_chars_latin:nn {bfup,bfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfit_Greek:n { + } + } + } + +\cs_new:Nn \um_config_bfit_Greek:n + { \um_set_mathalphabet_Greek:Nnn \mathbfit {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_Greek:nn {bfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbf {it}{#1} - }{ - \bool_if:NF \g_um_bfupGreek_bool { + } + { + \bool_if:NF \g_um_bfupGreek_bool + { \um_map_chars_Greek:nn {bfup,bfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfit_greek:n { + } + } + } + +\cs_new:Nn \um_config_bfit_greek:n + { \um_set_mathalphabet_greek:Nnn \mathbfit {up,it} {#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_greek:nn {bfit} {#1} \um_set_mathalphabet_greek:Nnn \mathbf {it} {#1} - }{ - \bool_if:NF \g_um_bfupgreek_bool { + } + { + \bool_if:NF \g_um_bfupgreek_bool + { \um_map_chars_greek:nn {bfit,bfup} {#1} \um_set_mathalphabet_greek:Nnn \mathbf {up,it} {#1} - } - } -} -\cs_new:Nn \um_config_bfit_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { - \um_map_single:nnn {Nabla}{bfit}{#1} - }{ - \bool_if:NF \g_um_upNabla_bool { - \um_map_single:nnn {Nabla}{bfup,bfit}{#1} - } - } - \bool_if:NTF \g_um_literal_partial_bool { - \um_map_single:nnn {partial}{bfit}{#1} - }{ - \bool_if:NF \g_um_uppartial_bool { - \um_map_single:nnn {partial}{bfup,bfit}{#1} - } - } + } + } + } + +\cs_new:Nn \um_config_bfit_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{bfit}{#1} } + { + \bool_if:NF \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{bfup,bfit}{#1} } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{bfit}{#1} } + { + \bool_if:NF \g_um_uppartial_bool + { \um_map_single:nnn {partial}{bfup,bfit}{#1} } + } \um_set_mathalphabet_pos:Nnnn \mathbfit {partial} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfit {Nabla} {up,it}{#1} - \bool_if:NTF \g_um_literal_partial_bool { + \bool_if:NTF \g_um_literal_partial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {partial} {it}{#1} - }{ - \bool_if:NF \g_um_uppartial_bool { + } + { + \bool_if:NF \g_um_uppartial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {partial} {up,it}{#1} - } - } - \bool_if:NTF \g_um_literal_Nabla_bool { + } + } + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {Nabla} {it}{#1} - }{ - \bool_if:NF \g_um_upNabla_bool { + } + { + \bool_if:NF \g_um_upNabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {Nabla} {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfup_num:n { + } + } + } +\cs_new:Nn \um_config_bfup_num:n + { \um_set_mathalphabet_numbers:Nnn \mathbf {up}{#1} \um_set_mathalphabet_numbers:Nnn \mathbfup {up}{#1} -} -\cs_new:Nn \um_config_bfup_Latin:n { - \bool_if:NT \g_um_bfupLatin_bool { + } + +\cs_new:Nn \um_config_bfup_Latin:n + { + \bool_if:NT \g_um_bfupLatin_bool + { \um_map_chars_Latin:nn {bfup,bfit} {#1} - } + } \um_set_mathalphabet_Latin:Nnn \mathbfup {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_Latin:nn {bfup} {#1} \um_set_mathalphabet_Latin:Nnn \mathbf {up}{#1} - }{ - \bool_if:NT \g_um_bfupLatin_bool { + } + { + \bool_if:NT \g_um_bfupLatin_bool + { \um_map_chars_Latin:nn {bfup,bfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfup_latin:n { - \bool_if:NT \g_um_bfuplatin_bool { + } + } + } + +\cs_new:Nn \um_config_bfup_latin:n + { + \bool_if:NT \g_um_bfuplatin_bool + { \um_map_chars_latin:nn {bfup,bfit} {#1} - } + } \um_set_mathalphabet_latin:Nnn \mathbfup {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_latin:nn {bfup} {#1} \um_set_mathalphabet_latin:Nnn \mathbf {up}{#1} - }{ - \bool_if:NT \g_um_bfuplatin_bool { + } + { + \bool_if:NT \g_um_bfuplatin_bool + { \um_map_chars_latin:nn {bfup,bfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfup_Greek:n { + } + } + } +\cs_new:Nn \um_config_bfup_Greek:n + { \um_set_mathalphabet_Greek:Nnn \mathbfup {up,it}{#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_Greek:nn {bfup}{#1} \um_set_mathalphabet_Greek:Nnn \mathbf {up}{#1} - }{ - \bool_if:NT \g_um_bfupGreek_bool { + } + { + \bool_if:NT \g_um_bfupGreek_bool + { \um_map_chars_Greek:nn {bfup,bfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbf {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfup_greek:n { + } + } + } + +\cs_new:Nn \um_config_bfup_greek:n + { \um_set_mathalphabet_greek:Nnn \mathbfup {up,it} {#1} - \bool_if:NTF \g_um_bfliteral_bool { + \bool_if:NTF \g_um_bfliteral_bool + { \um_map_chars_greek:nn {bfup} {#1} \um_set_mathalphabet_greek:Nnn \mathbf {up} {#1} - }{ - \bool_if:NT \g_um_bfupgreek_bool { + } + { + \bool_if:NT \g_um_bfupgreek_bool + { \um_map_chars_greek:nn {bfup,bfit} {#1} \um_set_mathalphabet_greek:Nnn \mathbf {up,it} {#1} - } - } -} -\cs_new:Nn \um_config_bfup_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { + } + } + } + +\cs_new:Nn \um_config_bfup_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{bfup}{#1} - }{ - \bool_if:NT \g_um_upNabla_bool { + } + { + \bool_if:NT \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{bfup,bfit}{#1} - } - } - \bool_if:NTF \g_um_literal_partial_bool { + } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{bfup}{#1} - }{ - \bool_if:NT \g_um_uppartial_bool { + } + { + \bool_if:NT \g_um_uppartial_bool + { \um_map_single:nnn {partial}{bfup,bfit}{#1} - } - } + } + } \um_set_mathalphabet_pos:Nnnn \mathbfup {partial} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfup {Nabla} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfup {digamma} {up}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfup {Digamma} {up}{#1} \um_set_mathalphabet_pos:Nnnn \mathbf {digamma} {up}{#1} \um_set_mathalphabet_pos:Nnnn \mathbf {Digamma} {up}{#1} - \bool_if:NTF \g_um_literal_partial_bool { + \bool_if:NTF \g_um_literal_partial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {partial} {up}{#1} - }{ - \bool_if:NT \g_um_uppartial_bool { + } + { + \bool_if:NT \g_um_uppartial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {partial} {up,it}{#1} - } - } - \bool_if:NTF \g_um_literal_Nabla_bool { + } + } + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {Nabla} {up}{#1} - }{ - \bool_if:NT \g_um_upNabla_bool { + } + { + \bool_if:NT \g_um_upNabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbf {Nabla} {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bffrak_Latin:n { + } + } + } +\cs_new:Nn \um_config_bffrak_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathbffrak {up,it}{#1} -} -\cs_new:Nn \um_config_bffrak_latin:n { + } + +\cs_new:Nn \um_config_bffrak_latin:n + { \um_set_mathalphabet_latin:Nnn \mathbffrak {up,it}{#1} -} -\cs_new:Nn \um_config_bfscr_Latin:n { + } +\cs_new:Nn \um_config_bfscr_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathbfscr {up,it}{#1} -} -\cs_new:Nn \um_config_bfscr_latin:n { + } +\cs_new:Nn \um_config_bfscr_latin:n + { \um_set_mathalphabet_latin:Nnn \mathbfscr {up,it}{#1} -} -\cs_new:Nn \um_config_bfcal_Latin:n { + } +\cs_new:Nn \um_config_bfcal_Latin:n + { \um_set_mathalphabet_Latin:Nnn \mathbfcal {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfup_num:n { + } +\cs_new:Nn \um_config_bfsfup_num:n + { \um_set_mathalphabet_numbers:Nnn \mathbfsf {up}{#1} \um_set_mathalphabet_numbers:Nnn \mathbfsfup {up}{#1} -} -\cs_new:Nn \um_config_bfsfup_Latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } +\cs_new:Nn \um_config_bfsfup_Latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Latin:nn {bfsfup} {#1} \um_set_mathalphabet_Latin:Nnn \mathbfsf {up}{#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_Latin:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Latin:Nnn \mathbfsfup {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfup_latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfup_latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_latin:nn {bfsfup} {#1} \um_set_mathalphabet_latin:Nnn \mathbfsf {up}{#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_latin:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathbfsfup {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfup_Greek:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfup_Greek:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Greek:nn {bfsfup}{#1} \um_set_mathalphabet_Greek:Nnn \mathbfsf {up}{#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_Greek:nn {bfsfup,bfsfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Greek:Nnn \mathbfsfup {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfup_greek:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfup_greek:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_greek:nn {bfsfup} {#1} \um_set_mathalphabet_greek:Nnn \mathbfsf {up} {#1} - }{ - \bool_if:NT \g_um_upsans_bool { + } + { + \bool_if:NT \g_um_upsans_bool + { \um_map_chars_greek:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_greek:Nnn \mathbfsf {up,it} {#1} - } - } + } + } \um_set_mathalphabet_greek:Nnn \mathbfsfup {up,it} {#1} -} -\cs_new:Nn \um_config_bfsfup_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { + } +\cs_new:Nn \um_config_bfsfup_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{bfsfup}{#1} - }{ - \bool_if:NT \g_um_upNabla_bool { + } + { + \bool_if:NT \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{bfsfup,bfsfit}{#1} - } - } - \bool_if:NTF \g_um_literal_partial_bool { + } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{bfsfup}{#1} - }{ - \bool_if:NT \g_um_uppartial_bool { + } + { + \bool_if:NT \g_um_uppartial_bool + { \um_map_single:nnn {partial}{bfsfup,bfsfit}{#1} - } - } + } + } \um_set_mathalphabet_pos:Nnnn \mathbfsfup {partial} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfsfup {Nabla} {up,it}{#1} - \bool_if:NTF \g_um_literal_partial_bool { + \bool_if:NTF \g_um_literal_partial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {partial} {up}{#1} - }{ - \bool_if:NT \g_um_uppartial_bool { + } + { + \bool_if:NT \g_um_uppartial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {partial} {up,it}{#1} - } - } - \bool_if:NTF \g_um_literal_Nabla_bool { + } + } + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {Nabla} {up}{#1} - }{ - \bool_if:NT \g_um_upNabla_bool { + } + { + \bool_if:NT \g_um_upNabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {Nabla} {up,it}{#1} - } - } -} -\cs_new:Nn \um_config_bfsfit_Latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + } + } +\cs_new:Nn \um_config_bfsfit_Latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Latin:nn {bfsfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbfsf {it}{#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_Latin:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_Latin:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Latin:Nnn \mathbfsfit {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfit_latin:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfit_latin:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_latin:nn {bfsfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbfsf {it}{#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_latin:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_latin:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_latin:Nnn \mathbfsfit {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfit_Greek:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfit_Greek:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_Greek:nn {bfsfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbfsf {it}{#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_Greek:nn {bfsfup,bfsfit}{#1} \um_set_mathalphabet_Greek:Nnn \mathbfsf {up,it}{#1} - } - } + } + } \um_set_mathalphabet_Greek:Nnn \mathbfsfit {up,it}{#1} -} -\cs_new:Nn \um_config_bfsfit_greek:n { - \bool_if:NTF \g_um_sfliteral_bool { + } + +\cs_new:Nn \um_config_bfsfit_greek:n + { + \bool_if:NTF \g_um_sfliteral_bool + { \um_map_chars_greek:nn {bfsfit} {#1} \um_set_mathalphabet_greek:Nnn \mathbfsf {it} {#1} - }{ - \bool_if:NF \g_um_upsans_bool { + } + { + \bool_if:NF \g_um_upsans_bool + { \um_map_chars_greek:nn {bfsfup,bfsfit} {#1} \um_set_mathalphabet_greek:Nnn \mathbfsf {up,it} {#1} - } - } + } + } \um_set_mathalphabet_greek:Nnn \mathbfsfit {up,it} {#1} -} -\cs_new:Nn \um_config_bfsfit_misc:n { - \bool_if:NTF \g_um_literal_Nabla_bool { + } + +\cs_new:Nn \um_config_bfsfit_misc:n + { + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_map_single:nnn {Nabla}{bfsfit}{#1} - }{ - \bool_if:NF \g_um_upNabla_bool { + } + { + \bool_if:NF \g_um_upNabla_bool + { \um_map_single:nnn {Nabla}{bfsfup,bfsfit}{#1} - } - } - \bool_if:NTF \g_um_literal_partial_bool { + } + } + \bool_if:NTF \g_um_literal_partial_bool + { \um_map_single:nnn {partial}{bfsfit}{#1} - }{ - \bool_if:NF \g_um_uppartial_bool { + } + { + \bool_if:NF \g_um_uppartial_bool + { \um_map_single:nnn {partial}{bfsfup,bfsfit}{#1} - } - } + } + } \um_set_mathalphabet_pos:Nnnn \mathbfsfit {partial} {up,it}{#1} \um_set_mathalphabet_pos:Nnnn \mathbfsfit {Nabla} {up,it}{#1} - \bool_if:NTF \g_um_literal_partial_bool { + \bool_if:NTF \g_um_literal_partial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {partial} {it}{#1} - }{ - \bool_if:NF \g_um_uppartial_bool { + } + { + \bool_if:NF \g_um_uppartial_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {partial} {up,it}{#1} - } - } - \bool_if:NTF \g_um_literal_Nabla_bool { + } + } + \bool_if:NTF \g_um_literal_Nabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {Nabla} {it}{#1} - }{ - \bool_if:NF \g_um_upNabla_bool { + } + { + \bool_if:NF \g_um_upNabla_bool + { \um_set_mathalphabet_pos:Nnnn \mathbfsf {Nabla} {up,it}{#1} - } - } -} -\cs_new:Npn \um_symbol_setup: { - \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 { - \exp_not:n {\_um_sym:nnn{##1}{##2}{##3}} - } -} + } + } + } +\cs_new:Npn \um_symbol_setup: + { + \cs_set:Npn \UnicodeMathSymbol ##1##2##3##4 + { + \exp_not:n { \_um_sym:nnn {##1} {##2} {##3} } + } + } \CatchFileEdef \g_um_mathtable_tl {unicode-math-table.tex} {\um_symbol_setup:} \cs_new:Nn \um_input_math_symbol_table: {\g_um_mathtable_tl} \group_begin: \char_set_catcode_other:N \^ - \cs_gset:Npn \um_cs_set_eq_active_char:Nw #1 = "#2 \q_nil { - \tex_lowercase:D { - \tl_rescan:nn { + \cs_gset:Npn \um_cs_set_eq_active_char:Nw #1 = "#2 \q_nil + { + \tex_lowercase:D + { + \tl_rescan:nn + { \ExplSyntaxOn \char_set_catcode_other:N \{ \char_set_catcode_other:N \} \char_set_catcode_other:N \& \char_set_catcode_other:N \% \char_set_catcode_other:N \$ - }{ + } + { \cs_gset_eq:NN #1 ^^^^^#2 - } - } - } - \cs_new:Npn \um_active_char_set:wc "#1 \q_nil #2 { - \tex_lowercase:D { + } + } + } + \cs_new:Npn \um_active_char_set:wc "#1 \q_nil #2 + { + \tex_lowercase:D + { \tl_rescan:nn { \ExplSyntaxOn } { \cs_gset_protected_nopar:Npx ^^^^^#1 { \exp_not:c {#2} } } - } - } + } + } \group_end: \AtBeginDocument{\um_define_math_chars:} -\cs_new:Nn \um_define_math_chars: { +\cs_new:Nn \um_define_math_chars: + { \group_begin: \char_set_catcode_math_superscript:N \^ - \cs_set:Npn \_um_sym:nnn ##1##2##3 { + \cs_set:Npn \_um_sym:nnn ##1##2##3 + { \bool_if:nF { \cs_if_eq_p:NN ##3 \mathaccent || \cs_if_eq_p:NN ##3 \mathopen || \cs_if_eq_p:NN ##3 \mathclose || \cs_if_eq_p:NN ##3 \mathover || \cs_if_eq_p:NN ##3 \mathunder || - \cs_if_eq_p:NN ##3 \mathbotaccent } { + \cs_if_eq_p:NN ##3 \mathbotaccent } + { \um_cs_set_eq_active_char:Nw ##2 = ##1 \q_nil \ignorespaces } - } + } \char_set_catcode_other:N \# \um_input_math_symbol_table: \group_end: -} + } \group_begin: \lccode`\*=`\\ \char_set_catcode_escape:N \| \char_set_catcode_other:N \\ - |lowercase{ - |AtBeginDocument{ + |lowercase + { + |AtBeginDocument + { |let|backslash=* - } - } + } + } |group_end: \AtBeginDocument { \um_load_lm_if_necessary: } \cs_new:Nn \um_load_lm_if_necessary: @@ -1865,21 +2150,27 @@ } } \cs_new:Nn \um_arg_i_before_egroup:n {#1\egroup} -\cs_new:Nn \um_superscript:n { +\cs_new:Nn \um_superscript:n + { ^\bgroup #1 \peek_meaning_remove:NTF ^ \um_arg_i_before_egroup:n \egroup -} + } \muskip_new:N \g_um_primekern_muskip \muskip_gset:Nn \g_um_primekern_muskip { -\thinmuskip/2 }% arbitrary \int_new:N \l_um_primecount_int -\cs_new:Nn \um_nprimes:Nn { - \um_superscript:n { +\cs_new:Nn \um_nprimes:Nn + { + \um_superscript:n + { #1 \prg_replicate:nn {#2-1} { \mskip \g_um_primekern_muskip #1 } - } -} -\cs_new:Nn \um_nprimes_select:nn { - \int_case:nnn {#2}{ + } + } + +\cs_new:Nn \um_nprimes_select:nn + { + \int_case:nnn {#2} + { {1} { \um_superscript:n {#1} } {2} { \um_glyph_if_exist:nTF {"2033} @@ -1896,12 +2187,15 @@ { \um_superscript:n {\um_prime_quad_mchar} } { \um_nprimes:Nn #1 {#2} } } - }{ + } + { \um_nprimes:Nn #1 {#2} - } -} -\cs_new:Nn \um_nbackprimes_select:nn { - \int_case:nnn {#2}{ + } + } +\cs_new:Nn \um_nbackprimes_select:nn + { + \int_case:nnn {#2} + { {1} { \um_superscript:n {#1} } {2} { \um_glyph_if_exist:nTF {"2036} @@ -1913,157 +2207,201 @@ { \um_superscript:n {\um_backprime_triple_mchar} } { \um_nprimes:Nn #1 {#2} } } - }{ + } + { \um_nprimes:Nn #1 {#2} - } -} -\cs_new:Npn \um_scan_prime: { + } + } +\cs_new:Npn \um_scan_prime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_zero:N \l_um_primecount_int \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_dprime: { + } +\cs_new:Npn \um_scan_dprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_set:Nn \l_um_primecount_int {1} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_trprime: { + } +\cs_new:Npn \um_scan_trprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_set:Nn \l_um_primecount_int {2} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_qprime: { + } +\cs_new:Npn \um_scan_qprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_set:Nn \l_um_primecount_int {3} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_sup_prime: { + } +\cs_new:Npn \um_scan_sup_prime: + { \int_zero:N \l_um_primecount_int \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_sup_dprime: { + } +\cs_new:Npn \um_scan_sup_dprime: + { \int_set:Nn \l_um_primecount_int {1} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_sup_trprime: { + } +\cs_new:Npn \um_scan_sup_trprime: + { \int_set:Nn \l_um_primecount_int {2} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Npn \um_scan_sup_qprime: { + } +\cs_new:Npn \um_scan_sup_qprime: + { \int_set:Nn \l_um_primecount_int {3} \um_scanprime_collect:N \um_prime_single_mchar -} -\cs_new:Nn \um_scanprime_collect:N { + } +\cs_new:Nn \um_scanprime_collect:N + { \int_incr:N \l_um_primecount_int - \peek_meaning_remove:NTF ' { - \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_prime: { - \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2032 { - \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_dprime: { + \peek_meaning_remove:NTF ' + { \um_scanprime_collect:N #1 } + { + \peek_meaning_remove:NTF \um_scan_prime: + { \um_scanprime_collect:N #1 } + { + \peek_meaning_remove:NTF ^^^^2032 + { \um_scanprime_collect:N #1 } + { + \peek_meaning_remove:NTF \um_scan_dprime: + { \int_incr:N \l_um_primecount_int \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2033 { + } + { + \peek_meaning_remove:NTF ^^^^2033 + { \int_incr:N \l_um_primecount_int \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_trprime: { + } + { + \peek_meaning_remove:NTF \um_scan_trprime: + { \int_add:Nn \l_um_primecount_int {2} \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2034 { + } + { + \peek_meaning_remove:NTF ^^^^2034 + { \int_add:Nn \l_um_primecount_int {2} \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_qprime: { + } + { + \peek_meaning_remove:NTF \um_scan_qprime: + { \int_add:Nn \l_um_primecount_int {3} \um_scanprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2057 { + } + { + \peek_meaning_remove:NTF ^^^^2057 + { \int_add:Nn \l_um_primecount_int {3} \um_scanprime_collect:N #1 - }{ + } + { \um_nprimes_select:nn {#1} {\l_um_primecount_int} - } - } - } - } - } - } - } - } - } -} -\cs_new:Npn \um_scan_backprime: { + } + } + } + } + } + } + } + } + } + } +\cs_new:Npn \um_scan_backprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_zero:N \l_um_primecount_int \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Npn \um_scan_backdprime: { + } +\cs_new:Npn \um_scan_backdprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_set:Nn \l_um_primecount_int {1} \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Npn \um_scan_backtrprime: { + } +\cs_new:Npn \um_scan_backtrprime: + { \cs_set_eq:NN \um_superscript:n \use:n \int_set:Nn \l_um_primecount_int {2} \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Npn \um_scan_sup_backprime: { + } +\cs_new:Npn \um_scan_sup_backprime: + { \int_zero:N \l_um_primecount_int \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Npn \um_scan_sup_backdprime: { + } +\cs_new:Npn \um_scan_sup_backdprime: + { \int_set:Nn \l_um_primecount_int {1} \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Npn \um_scan_sup_backtrprime: { + } +\cs_new:Npn \um_scan_sup_backtrprime: + { \int_set:Nn \l_um_primecount_int {2} \um_scanbackprime_collect:N \um_backprime_single_mchar -} -\cs_new:Nn \um_scanbackprime_collect:N { + } +\cs_new:Nn \um_scanbackprime_collect:N + { \int_incr:N \l_um_primecount_int - \peek_meaning_remove:NTF ` { + \peek_meaning_remove:NTF ` + { \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_backprime: { + } + { + \peek_meaning_remove:NTF \um_scan_backprime: + { \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2035 { + } + { + \peek_meaning_remove:NTF ^^^^2035 + { \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_backdprime: { + } + { + \peek_meaning_remove:NTF \um_scan_backdprime: + { \int_incr:N \l_um_primecount_int \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2036 { + } + { + \peek_meaning_remove:NTF ^^^^2036 + { \int_incr:N \l_um_primecount_int \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF \um_scan_backtrprime: { + } + { + \peek_meaning_remove:NTF \um_scan_backtrprime: + { \int_add:Nn \l_um_primecount_int {2} \um_scanbackprime_collect:N #1 - }{ - \peek_meaning_remove:NTF ^^^^2037 { + } + { + \peek_meaning_remove:NTF ^^^^2037 + { \int_add:Nn \l_um_primecount_int {2} \um_scanbackprime_collect:N #1 - }{ + } + { \um_nbackprimes_select:nn {#1} {\l_um_primecount_int} - } - } - } - } - } - } - } -} + } + } + } + } + } + } + } + } \AtBeginDocument{\um_define_prime_commands: \um_define_prime_chars:} -\cs_new:Nn \um_define_prime_commands: { +\cs_new:Nn \um_define_prime_commands: + { \cs_set_eq:NN \prime \um_prime_single_mchar \cs_set_eq:NN \dprime \um_prime_double_mchar \cs_set_eq:NN \trprime \um_prime_triple_mchar @@ -2071,7 +2409,7 @@ \cs_set_eq:NN \backprime \um_backprime_single_mchar \cs_set_eq:NN \backdprime \um_backprime_double_mchar \cs_set_eq:NN \backtrprime \um_backprime_triple_mchar -} + } \group_begin: \char_set_catcode_active:N \' \char_set_catcode_active:N \` @@ -2082,7 +2420,8 @@ \char_set_catcode_active:n {"2035} \char_set_catcode_active:n {"2036} \char_set_catcode_active:n {"2037} - \cs_gset:Nn \um_define_prime_chars: { + \cs_gset:Nn \um_define_prime_chars: + { \cs_set_eq:NN ' \um_scan_sup_prime: \cs_set_eq:NN ^^^^2032 \um_scan_sup_prime: \cs_set_eq:NN ^^^^2033 \um_scan_sup_dprime: @@ -2092,70 +2431,76 @@ \cs_set_eq:NN ^^^^2035 \um_scan_sup_backprime: \cs_set_eq:NN ^^^^2036 \um_scan_sup_backdprime: \cs_set_eq:NN ^^^^2037 \um_scan_sup_backtrprime: - } + } \group_end: \AtBeginDocument{\um_redefine_radical:} \cs_new:Nn \um_redefine_radical: { - \@ifpackageloaded { amsmath } { } { - \cs_set_nopar:Npn \r@@t ##1 ##2 { - \hbox_set:Nn \l_tmpa_box { + \@ifpackageloaded { amsmath } { } + { + \cs_set_nopar:Npn \r@@t ##1 ##2 + { + \hbox_set:Nn \l_tmpa_box + { \c_math_toggle_token \m@th ##1 \sqrtsign { ##2 } \c_math_toggle_token - } - \um_mathstyle_scale:Nnn ##1 { \kern } { - \fontdimen 63 \l_um_font - } - \box_move_up:nn { + } + \um_mathstyle_scale:Nnn ##1 { \kern } + { \fontdimen 63 \l_um_font } + \box_move_up:nn + { (\box_ht:N \l_tmpa_box - \box_dp:N \l_tmpa_box) * \number \fontdimen 65 \l_um_font / 100 - } { - \box_use:N \rootbox - } - \um_mathstyle_scale:Nnn ##1 { \kern } { - \fontdimen 64 \l_um_font - } + } + { \box_use:N \rootbox } + \um_mathstyle_scale:Nnn ##1 { \kern } + { \fontdimen 64 \l_um_font } \box_use_clear:N \l_tmpa_box - } - } + } + } } -\cs_new:Nn \um_fontdimen_to_percent:nn { +\cs_new:Nn \um_fontdimen_to_percent:nn + { \strip@pt\dimexpr\fontdimen#1#2*65536/100\relax -} + } \cs_new:Nn \um_fontdimen_to_scale:nn - { - \um_fontdimen_to_percent:nn {#1} {#2} \dimexpr \f@size pt\relax - } -\cs_new:Nn \um_mathstyle_scale:Nnn { + { + \um_fontdimen_to_percent:nn {#1} {#2} \dimexpr \f@size pt\relax + } +\cs_new:Nn \um_mathstyle_scale:Nnn + { \ifx#1\scriptstyle - #2\um_fontdimen_to_percent:nn{10}\l_um_font#3 + #2 \um_fontdimen_to_percent:nn {10} \l_um_font #3 \else \ifx#1\scriptscriptstyle - #2\um_fontdimen_to_percent:nn{11}\l_um_font#3 + #2 \um_fontdimen_to_percent:nn {11} \l_um_font #3 \else - #2#3 + #2 #3 \fi \fi -} + } \prop_new:N \g_um_supers_prop \prop_new:N \g_um_subs_prop \group_begin: -\cs_new:Nn \um_setup_active_superscript:nn { +\cs_new:Nn \um_setup_active_superscript:nn + { \prop_gput:Nxn \g_um_supers_prop {\meaning #1} {#2} \char_set_catcode_active:N #1 \char_gmake_mathactive:N #1 - \scantokens{ - \cs_gset:Npn #1 { + \scantokens + { + \cs_gset:Npn #1 + { \tl_set:Nn \l_um_ss_chain_tl {#2} \cs_set_eq:NN \um_sub_or_super:n \sp \tl_set:Nn \l_um_tmpa_tl {supers} \um_scan_sscript: - } - } -} + } + } + } \um_setup_active_superscript:nn {^^^^2070} {0} \um_setup_active_superscript:nn {^^^^00b9} {1} \um_setup_active_superscript:nn {^^^^00b2} {2} @@ -2173,19 +2518,22 @@ \um_setup_active_superscript:nn {^^^^207e} {)} \um_setup_active_superscript:nn {^^^^2071} {i} \um_setup_active_superscript:nn {^^^^207f} {n} -\cs_new:Nn \um_setup_active_subscript:nn { +\cs_new:Nn \um_setup_active_subscript:nn + { \prop_gput:Nxn \g_um_subs_prop {\meaning #1} {#2} \char_set_catcode_active:N #1 \char_gmake_mathactive:N #1 - \scantokens{ - \cs_gset:Npn #1 { + \scantokens + { + \cs_gset:Npn #1 + { \tl_set:Nn \l_um_ss_chain_tl {#2} \cs_set_eq:NN \um_sub_or_super:n \sb \tl_set:Nn \l_um_tmpa_tl {subs} \um_scan_sscript: - } - } -} + } + } + } \um_setup_active_subscript:nn {^^^^2080} {0} \um_setup_active_subscript:nn {^^^^2081} {1} \um_setup_active_subscript:nn {^^^^2082} {2} @@ -2215,30 +2563,37 @@ \um_setup_active_subscript:nn {^^^^1d69} {\phi} \um_setup_active_subscript:nn {^^^^1d6a} {\chi} \group_end: -\cs_new:Npn \um_scan_sscript: { - \um_scan_sscript:TF { +\cs_new:Npn \um_scan_sscript: + { + \um_scan_sscript:TF + { \um_scan_sscript: - }{ + } + { \um_sub_or_super:n {\l_um_ss_chain_tl} - } -} -\cs_new:Npn \um_scan_sscript:TF #1#2 { + } + } +\cs_new:Npn \um_scan_sscript:TF #1#2 + { \tl_set:Nx \__peek_true_aux:w { \exp_not:n{ #1 } } \tl_set_eq:NN \__peek_true:w \__peek_true_remove:w \tl_set:Nx \__peek_false:w { \exp_not:n { \group_align_safe_end: #2 } } \group_align_safe_begin: \peek_after:Nw \um_peek_execute_branches_ss: -} -\cs_new:Npn \um_peek_execute_branches_ss: { - \bool_if:nTF { + } +\cs_new:Npn \um_peek_execute_branches_ss: + { + \bool_if:nTF + { \token_if_eq_catcode_p:NN \l_peek_token \c_group_begin_token || \token_if_eq_catcode_p:NN \l_peek_token \c_group_end_token || \token_if_eq_meaning_p:NN \l_peek_token \c_space_token - } - { \__peek_false:w } - { \um_peek_execute_branches_ss_aux: } -} -\cs_new:Npn \um_peek_execute_branches_ss_aux: { + } + { \__peek_false:w } + { \um_peek_execute_branches_ss_aux: } + } +\cs_new:Npn \um_peek_execute_branches_ss_aux: + { \prop_if_in:cxTF {g_um_\l_um_tmpa_tl _prop} {\meaning\l_peek_token} { @@ -2248,21 +2603,26 @@ \__peek_true:w } { \__peek_false:w } -} -\cs_new:Npn \um_define_active_frac:Nw #1 #2/#3 { + } +\cs_new:Npn \um_define_active_frac:Nw #1 #2/#3 + { \char_set_catcode_active:N #1 \char_gmake_mathactive:N #1 - \tl_rescan:nn { + \tl_rescan:nn + { \catcode`\_=11\relax \catcode`\:=11\relax - }{ - \cs_gset:Npx #1 { + } + { + \cs_gset:Npx #1 + { \bool_if:NTF \l_um_smallfrac_bool {\exp_not:N\tfrac} {\exp_not:N\frac} {#2} {#3} - } - } -} -\cs_new:Npn \um_setup_active_frac: { + } + } + } +\cs_new:Npn \um_setup_active_frac: + { \group_begin: \um_define_active_frac:Nw ^^^^2189 0/3 \um_define_active_frac:Nw ^^^^2152 1/{10} @@ -2284,7 +2644,7 @@ \um_define_active_frac:Nw ^^^^215a 5/6 \um_define_active_frac:Nw ^^^^215e 7/8 \group_end: -} + } \um_setup_active_frac: \def\to{\rightarrow} \def\le{\leq} @@ -2309,73 +2669,91 @@ \def\backepsilon{\upbackepsilon} \def\eth{\matheth} \def\smallint{{\textstyle\int}\limits} -\@ifpackageloaded{amsmath}{ +\@ifpackageloaded{amsmath} + { % define their own colon, perhaps I should just steal it. (It does look much better.) -}{ - \cs_set_protected:Npn \colon { + } + { + \cs_set_protected:Npn \colon + { \bool_if:NTF \g_um_literal_colon_bool {:} { \mathpunct{:} } - } -} + } + } \def\mathrm{\mathup} \let\mathfence\mathord \def\digamma{\updigamma} \def\Digamma{\upDigamma} \def\operator@font{\um_switchto_mathup:} -\cs_new_protected_nopar:Npn \um_check_and_fix:NNnnnn #1 #2 #3 #4 #5 #6 { - \cs_if_exist:NT #1 { - \token_if_macro:NTF #1 { +\cs_new_protected_nopar:Nn \um_check_and_fix:NNnnnn + { + \cs_if_exist:NT #1 + { + \token_if_macro:NTF #1 + { \group_begin: #2 \um_tmpa:w #3 { #4 } - \cs_if_eq:NNTF #1 \um_tmpa:w { + \cs_if_eq:NNTF #1 \um_tmpa:w + { \msg_info:nnx { unicode-math } { patch-macro } { \token_to_str:N #1 } \group_end: #2 #1 #3 { #6 } - } { + } + { \msg_warning:nnxxx { unicode-math } { wrong-meaning } { \token_to_str:N #1 } { \token_to_meaning:N #1 } { \token_to_meaning:N \um_tmpa:w } \group_end: - } - } { + } + } + { \msg_warning:nnx { unicode-math } { macro-expected } { \token_to_str:N #1 } - } - } -} -\cs_new_protected_nopar:Npn \um_check_and_fix:NNnnn #1 #2 #3 #4 #5 { + } + } + } +\cs_new_protected_nopar:Nn \um_check_and_fix:NNnnn + { \um_check_and_fix:NNnnnn #1 #2 { #3 } { #4 } { #5 } { #5 } -} -\cs_new_protected_nopar:Npn \um_check_and_fix_luatex:NNnnn #1 #2 #3 #4 #5 { - \luatex_if_engine:T { + } +\cs_new_protected_nopar:Nn \um_check_and_fix_luatex:NNnnn + { + \luatex_if_engine:T + { \um_check_and_fix:NNnnn #1 #2 { #3 } { #4 } { #5 } - } -} + } + } \cs_generate_variant:Nn \um_check_and_fix_luatex:NNnnn { c } -\AtEndOfPackageFile * {url} { +\AtEndOfPackageFile * {url} + { \tl_put_left:Nn \Url@FormatString { \um_switchto_mathup: } - \tl_put_right:Nn \UrlSpecials { + \tl_put_right:Nn \UrlSpecials + { \do\`{\mathchar`\`} \do\'{\mathchar`\'} \do\${\mathchar`\$} \do\&{\mathchar`\&} - } -} -\AtEndOfPackageFile * {amsmath} { - \tl_remove_once:Nn \@begindocumenthook { + } + } +\AtEndOfPackageFile * {amsmath} + { + \tl_remove_once:Nn \@begindocumenthook + { \mathchardef\std@minus\mathcode`\-\relax \mathchardef\std@equal\mathcode`\=\relax - } + } \def\std@minus{\Umathcharnum\Umathcodenum`\-\relax} \def\std@equal{\Umathcharnum\Umathcodenum`\=\relax} \cs_set:Npn \@cdots {\mathinner{\cdots}} \cs_set_eq:NN \dotsb@ \cdots - \def \resetMathstrut@ {% + \def \resetMathstrut@ + {% \setbox\z@\hbox{$($}%) \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@ - } - \um_check_and_fix:NNnnn \subarray \cs_set:Npn { #1 } { + } + \um_check_and_fix:NNnnn \subarray \cs_set:Npn { #1 } + { \vcenter \bgroup \Let@ @@ -2391,16 +2769,18 @@ $ \m@th \scriptstyle ## $ \hfil \crcr - } { + } + { \vcenter \c_group_begin_token \Let@ \restore@math@cr \default@tag - \skip_set:Nn \baselineskip { + \skip_set:Nn \baselineskip + { \um_stack_num_up:N \scriptstyle + \um_stack_denom_down:N \scriptstyle - } + } \lineskip \um_stack_vgap:N \scriptstyle \lineskiplimit \lineskip \ialign @@ -2413,39 +2793,47 @@ \c_math_toggle_token \hfil \crcr - } - \um_check_and_fix_luatex:NNnnn \plainroot@ \cs_set_nopar:Npn { #1 \of #2 } { - \setbox \rootbox \hbox { + } + \um_check_and_fix_luatex:NNnnn \plainroot@ \cs_set_nopar:Npn { #1 \of #2 } + { + \setbox \rootbox \hbox + { $ \m@th \scriptscriptstyle { #1 } $ - } + } \mathchoice { \r@@t \displaystyle { #2 } } { \r@@t \textstyle { #2 } }~ { \r@@t \scriptstyle { #2 } } { \r@@t \scriptscriptstyle { #2 } } \egroup - } { - \bool_if:nTF { + } + { + \bool_if:nTF + { \int_compare_p:nNn { \uproot@ } = { \c_zero } && \int_compare_p:nNn { \leftroot@ } = { \c_zero } - } { + } + { \luatexUroot \l_um_radical_sqrt_tl { #1 } { #2 } - } { - \hbox_set:Nn \rootbox { + } + { + \hbox_set:Nn \rootbox + { \c_math_toggle_token \m@th \scriptscriptstyle { #1 } \c_math_toggle_token - } + } \mathchoice { \r@@t \displaystyle { #2 } } { \r@@t \textstyle { #2 } } { \r@@t \scriptstyle { #2 } } { \r@@t \scriptscriptstyle { #2 } } - } + } \c_group_end_token - } - \um_check_and_fix:NNnnnn \r@@t \cs_set_nopar:Npn { #1 #2 } { + } + \um_check_and_fix:NNnnnn \r@@t \cs_set_nopar:Npn { #1 #2 } + { \setboxz@h { $ \m@th #1 \sqrtsign { #2 } $ } \dimen@ \ht\z@ \advance \dimen@ -\dp\z@ @@ -2457,63 +2845,76 @@ \mkern -10mu \mkern \leftroot@ mu \boxz@ - } { - \hbox_set:Nn \l_tmpa_box { + } + { + \hbox_set:Nn \l_tmpa_box + { \c_math_toggle_token \m@th #1 \mskip \uproot@ mu \c_math_toggle_token - } - \luatexUroot \l_um_radical_sqrt_tl { - \box_move_up:nn { \box_wd:N \l_tmpa_box } { - \hbox:n { + } + \luatexUroot \l_um_radical_sqrt_tl + { + \box_move_up:nn { \box_wd:N \l_tmpa_box } + { + \hbox:n + { \c_math_toggle_token \m@th \mkern -\leftroot@ mu \box_use:N \rootbox \mkern \leftroot@ mu \c_math_toggle_token - } - } - } { - #2 - } - } { - \hbox_set:Nn \l_tmpa_box { + } + } + } + { #2 } + } + { + \hbox_set:Nn \l_tmpa_box + { \c_math_toggle_token \m@th #1 \sqrtsign { #2 } \c_math_toggle_token - } - \hbox_set:Nn \l_tmpb_box { + } + \hbox_set:Nn \l_tmpb_box + { \c_math_toggle_token \m@th #1 \mskip \uproot@ mu \c_math_toggle_token - } + } \mkern -\leftroot@ mu - \um_mathstyle_scale:Nnn #1 { \kern } { + \um_mathstyle_scale:Nnn #1 { \kern } + { \fontdimen 63 \l_um_font - } - \box_move_up:nn { + } + \box_move_up:nn + { \box_wd:N \l_tmpb_box + (\box_ht:N \l_tmpa_box - \box_dp:N \l_tmpa_box) * \number \fontdimen 65 \l_um_font / 100 - } { + } + { \box_use:N \rootbox - } - \um_mathstyle_scale:Nnn #1 { \kern } { + } + \um_mathstyle_scale:Nnn #1 { \kern } + { \fontdimen 64 \l_um_font - } + } \mkern \leftroot@ mu \box_use_clear:N \l_tmpa_box - } -} -\AtEndOfPackageFile * {amsopn} { - \cs_set:Npn \newmcodes@ { + } + } +\AtEndOfPackageFile * {amsopn} + { + \cs_set:Npn \newmcodes@ + { \mathcode`\'39\scan_stop: \mathcode`\*42\scan_stop: \mathcode`\."613A\scan_stop: @@ -2523,72 +2924,92 @@ \mathcode`\-45\scan_stop: \mathcode`\/47\scan_stop: \mathcode`\:"603A\scan_stop: - } -} + } + } \cs_set:Npn \| {\Vert} \cs_set:Npn \mathellipsis {\mathinner{\unicodeellipsis}} \cs_set:Npn \cdots {\mathinner{\unicodecdots}} -\cs_new_protected_nopar:Nn \um_setup_accents: { - \cs_gset_protected_nopar:Npx \widehat { +\cs_new_protected_nopar:Nn \um_setup_accents: + { + \cs_gset_protected_nopar:Npx \widehat + { \um_accent:nnn {} { \um_symfont_tl } { "0302 } - } - \cs_gset_protected_nopar:Npx \widetilde { + } + \cs_gset_protected_nopar:Npx \widetilde + { \um_accent:nnn {} { \um_symfont_tl } { "0303 } - } - \cs_gset_protected_nopar:Npx \overleftarrow { + } + \cs_gset_protected_nopar:Npx \overleftarrow + { \um_accent:nnn {} { \um_symfont_tl } { "20D6 } - } - \cs_gset_protected_nopar:Npx \overrightarrow { + } + \cs_gset_protected_nopar:Npx \overrightarrow + { \um_accent:nnn {} { \um_symfont_tl } { "20D7 } - } - \cs_gset_protected_nopar:Npx \overleftrightarrow { + } + \cs_gset_protected_nopar:Npx \overleftrightarrow + { \um_accent:nnn {} { \um_symfont_tl } { "20E1 } - } - \cs_gset_protected_nopar:Npx \wideutilde { + } + \cs_gset_protected_nopar:Npx \wideutilde + { \um_accent:nnn {bottom} { \um_symfont_tl } { "0330 } - } - \cs_gset_protected_nopar:Npx \underrightharpoondown { + } + \cs_gset_protected_nopar:Npx \underrightharpoondown + { \um_accent:nnn {bottom} { \um_symfont_tl } { "20EC } - } - \cs_gset_protected_nopar:Npx \underleftharpoondown { + } + \cs_gset_protected_nopar:Npx \underleftharpoondown + { \um_accent:nnn {bottom} { \um_symfont_tl } { "20ED } - } - \cs_gset_protected_nopar:Npx \underleftarrow { + } + \cs_gset_protected_nopar:Npx \underleftarrow + { \um_accent:nnn {bottom} { \um_symfont_tl } { "20EE } - } - \cs_gset_protected_nopar:Npx \underrightarrow { + } + \cs_gset_protected_nopar:Npx \underrightarrow + { \um_accent:nnn {bottom} { \um_symfont_tl } { "20EF } - } - \cs_gset_protected_nopar:Npx \underleftrightarrow { + } + \cs_gset_protected_nopar:Npx \underleftrightarrow + { \um_accent:nnn {bottom} { \um_symfont_tl } { "034D } - } -} + } + } \cs_set_eq:NN \um_text_slash: \slash -\cs_set_protected:Npn \slash { +\cs_set_protected:Npn \slash + { \mode_if_math:TF {\mathslash} {\um_text_slash:} -} + } \tl_new:N \l_not_token_name_tl -\cs_new:Npn \not_newnot:N #1 { +\cs_new:Npn \not_newnot:N #1 + { \tl_set:Nx \l_not_token_name_tl { \token_to_str:N #1 } - \exp_args:Nx \tl_if_empty:nF { \tl_tail:V \l_not_token_name_tl } { + \exp_args:Nx \tl_if_empty:nF { \tl_tail:V \l_not_token_name_tl } + { \tl_set:Nx \l_not_token_name_tl { \tl_tail:V \l_not_token_name_tl } - } - \cs_if_exist:cTF { n \l_not_token_name_tl } { + } + \cs_if_exist:cTF { n \l_not_token_name_tl } + { \use:c { n \l_not_token_name_tl } - } { - \cs_if_exist:cTF { not \l_not_token_name_tl } { + } + { + \cs_if_exist:cTF { not \l_not_token_name_tl } + { \use:c { not \l_not_token_name_tl } - } { + } + { \not_oldnot: #1 %\l_not_token_name_tl - } - } -} + } + } + } -\cs_new_protected_nopar:Nn \um_setup_negations: { - \cs_set_eq:NN \not_oldnot: \not - \cs_set_eq:NN \not \not_newnot:N +\cs_set_eq:NN \not_oldnot: \not +\cs_set_eq:NN \not \not_newnot:N +\cs_new_protected_nopar:Nn \um_setup_negations: + { \cs_gset:cpn { not= } { \neq } \cs_gset:cpn { not< } { \nless } \cs_gset:cpn { not> } { \ngtr } @@ -2599,20 +3020,22 @@ \cs_gset:Npn \nge { \ngeq } \cs_gset:Npn \ngreater { \ngtr } \cs_gset:Npn \nforksnot { \forks } -} -\AtEndOfPackageFile * { mathtools } { + } +\AtEndOfPackageFile * { mathtools } + { \newfam \g_um_empty_fam \um_check_and_fix:NNnnn \MT_cramped_internal:Nn \cs_set_nopar:Npn { #1 #2 } - { - \sbox \z@ { + { + \sbox \z@ + { $ \m@th #1 \nulldelimiterspace = \z@ \radical \z@ { #2 } $ - } + } \ifx #1 \displaystyle \dimen@ = \fontdimen 8 \textfont 3 \advance \dimen@ .25 \fontdimen 5 \textfont 2 @@ -2632,9 +3055,10 @@ \advance \dimen@ -\ht\z@ \ht\z@ = -\dimen@ \box\z@ - } - { - \hbox_set:Nn \l_tmpa_box { + } + { + \hbox_set:Nn \l_tmpa_box + { \color@setgroup \c_math_toggle_token \m@th @@ -2643,45 +3067,51 @@ \XeTeXradical \g_um_empty_fam \c_zero { #2 } \c_math_toggle_token \color@endgroup - } - \box_set_ht:Nn \l_tmpa_box { + } + \box_set_ht:Nn \l_tmpa_box + { \box_ht:N \l_tmpa_box - \um_radical_vgap:N #1 - } + } \box_use_clear:N \l_tmpa_box - } -\AtEndOfPackageFile * { mathtools } { - \let\MToverbracket =\overbracket - \let\MTunderbracket=\underbracket + } +\AtEndOfPackageFile * { mathtools } + { + \cs_set_eq:NN \MToverbracket \overbracket + \cs_set_eq:NN \MTunderbracket \underbracket - \AtBeginDocument { - \msg_warning:nn { unicode-math } { mathtools-overbracket } + \AtBeginDocument + { + \msg_warning:nn { unicode-math } { mathtools-overbracket } -\def\downbracketfill#1#2{% +\def\downbracketfill#1#2 + {% \edef\l_MT_bracketheight_fdim{.27ex}% \downbracketend{#1}{#2} \leaders \vrule \@height #1 \@depth \z@ \hfill \downbracketend{#1}{#2}% - } -\def\upbracketfill#1#2{% + } +\def\upbracketfill#1#2 + {% \edef\l_MT_bracketheight_fdim{.27ex}% \upbracketend{#1}{#2} \leaders \vrule \@height \z@ \@depth #1 \hfill \upbracketend{#1}{#2}% - } + } \let\Uoverbracket =\overbracket \let\Uunderbracket=\underbracket \let\overbracket =\MToverbracket \let\underbracket =\MTunderbracket - } -} + } + } \msg_warning:nn { unicode-math } { mathtools-colon } \NewDocumentCommand \dblcolon { } { \Colon } \NewDocumentCommand \coloneqq { } { \coloneq } \NewDocumentCommand \Coloneqq { } { \Coloneq } \NewDocumentCommand \eqqcolon { } { \eqcolon } -} -\AtEndOfPackageFile * { colonequals } { + } +\AtEndOfPackageFile * { colonequals } + { \msg_warning:nn { unicode-math } { colonequals } \RenewDocumentCommand \ratio { } { \mathratio } \RenewDocumentCommand \coloncolon { } { \Colon } @@ -2689,5 +3119,5 @@ \RenewDocumentCommand \colonequals { } { \coloneq } \RenewDocumentCommand \equalscolon { } { \eqcolon } \RenewDocumentCommand \coloncolonequals { } { \Coloneq } -} + } \ExplSyntaxOff diff --git a/Master/texmf-dist/tex/latex/unicode-math/unicode-math.lua b/Master/texmf-dist/tex/latex/unicode-math/unicode-math.lua deleted file mode 100644 index 66c830792bc..00000000000 --- a/Master/texmf-dist/tex/latex/unicode-math/unicode-math.lua +++ /dev/null @@ -1,57 +0,0 @@ --- --- This is file `unicode-math.lua', --- generated with the docstrip utility. --- --- The original source files were: --- --- unicode-math.dtx (with options: `lua') --- Copyright 2006-2013 Will Robertson <will.robertson@latex-project.org> --- Copyright 2010-2013 Philipp Stephani <st_philipp@yahoo.de> --- Copyright 2012-2013 Khaled Hosny <khaledhosny@eglug.org> --- --- This package is free software and may be redistributed and/or modified under --- the conditions of the LaTeX Project Public License, version 1.3c or higher --- (your choice): <http://www.latex-project.org/lppl/>. --- --- This work is "maintained" by Will Robertson. -local err, warn, info, log = luatexbase.provides_module({ - name = "unicode-math", - date = "2013/05/04", - version = 0.3, - description = "Unicode math typesetting for LuaLaTeX", - author = "Khaled Hosny, Will Robertson, Philipp Stephani", - licence = "LPPL v1.3+" -}) -if luaotfload and luaotfload.module and luaotfload.module.version < 2 then - local function set_sscale_dimens(fontdata) - local mc = fontdata.MathConstants - if mc then - fontdata.parameters[10] = mc.ScriptPercentScaleDown or 70 - fontdata.parameters[11] = mc.ScriptScriptPercentScaleDown or 50 - end - end - luatexbase.add_to_callback("luaotfload.patch_font", set_sscale_dimens, "unicode_math.set_sscale_dimens") - local function patch_cambria_domh(fontdata) - local mc = fontdata.MathConstants - if mc and fontdata.psname == "CambriaMath" then - -- keeping backward compatibility with luaotfload v1 - local units_per_em - local metadata = fontdata.shared and fontdata.shared.rawdata.metadata - if metadata and metadata.units_per_em then - units_per_em = metadata.units_per_em - elseif fontdata.parameters.units then - units_per_em = fontdata.parameters.units - elseif fontdata.units then - units_per_em = fontdata.units - else - units_per_em = 1000 - end - local sz = fontdata.parameters.size or fontdata.size - local mh = 2800 / units_per_em * sz - if mc.DisplayOperatorMinHeight < mh then - mc.DisplayOperatorMinHeight = mh - end - end - end - luatexbase.add_to_callback("luaotfload.patch_font", patch_cambria_domh, "cambria.domh") -end diff --git a/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty b/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty index 5071282d3dd..87163c8219e 100644 --- a/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty +++ b/Master/texmf-dist/tex/latex/unicode-math/unicode-math.sty @@ -17,7 +17,7 @@ %% %% This work is "maintained" by Will Robertson. \ProvidesPackage{unicode-math} - [2013/05/04 v0.7e Unicode maths in XeLaTeX and LuaLaTeX] + [2014/06/30 v0.7f Unicode maths in XeLaTeX and LuaLaTeX] \usepackage{ifxetex,ifluatex} \ifxetex \ifdim\number\XeTeXversion\XeTeXrevision in<0.9998in% @@ -46,6 +46,23 @@ \RequirePackage{catchfile} \RequirePackage{fix-cm} % avoid some warnings \RequirePackage{filehook}[2011/01/03] +\def\@DeclareMathSizes #1#2#3#4#5{% + \@defaultunits\dimen@ #2pt\relax\@nnil + \if $#3$% + \expandafter\let\csname S@\strip@pt\dimen@\endcsname\math@fontsfalse + \else + \@defaultunits\dimen@ii #3pt\relax\@nnil + \@defaultunits\@tempdima #4pt\relax\@nnil + \@defaultunits\@tempdimb #5pt\relax\@nnil + \toks@{#1}% + \expandafter\xdef\csname S@\strip@pt\dimen@\endcsname{% + \gdef\noexpand\tf@size{\strip@pt\dimen@ii}% + \gdef\noexpand\sf@size{\strip@pt\@tempdima}% + \gdef\noexpand\ssf@size{\strip@pt\@tempdimb}% + \the\toks@ + }% + \fi +} \ExplSyntaxOn \cs_generate_variant:Nn \tl_put_right:Nn {cx} \cs_generate_variant:Nn \seq_if_in:NnTF {NV} @@ -57,6 +74,8 @@ \cs:w #3 \exp_after:wN \cs_end: \cs:w #4 \cs_end: } +\cs_generate_variant:Nn \fontspec_set_family:Nnn {Nx} +\cs_generate_variant:Nn \fontspec_set_fontface:NNnn {NNx} \bool_new:N \l_um_ot_math_bool \bool_new:N \l_um_init_bool \bool_new:N \l_um_implicit_alph_bool @@ -100,8 +119,37 @@ \cs_generate_variant:Nn \um_glyph_if_exist:nTF {c} \cs_generate_variant:Nn \um_glyph_if_exist:nT {c} \cs_generate_variant:Nn \um_glyph_if_exist:nF {c} -\cs_generate_variant:Nn \fontspec_set_family:Nnn {Nx} -\cs_generate_variant:Nn \fontspec_set_fontface:NNnn {NNx} +\cs_set:Npn \um_set_mathcode:nnnn #1#2#3#4 { + \Umathcode \int_eval:n {#1} = + \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#4} \scan_stop: +} +\cs_set:Npn \um_set_mathcode:nnn #1#2#3 { + \Umathcode \int_eval:n {#1} = + \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#1} \scan_stop: +} +\cs_set:Npn \um_set_mathchar:NNnn #1#2#3#4 { + \Umathchardef #1 = + \mathchar@type#2 \csname sym#3\endcsname \int_eval:n {#4} \scan_stop: +} +\cs_new:Nn \um_set_delcode:nnn { + \Udelcode#2 = \csname sym#1\endcsname #3 \scan_stop: +} +\cs_new:Nn \um_radical:nn { + \Uradical \csname sym#1\endcsname #2 \scan_stop: +} +\cs_new:Nn \um_delimiter:Nnn { + \Udelimiter \mathchar@type#1 \csname sym#2\endcsname #3 \scan_stop: +} +\cs_new:Nn \um_accent:nnn { + \Umathaccent #1~ \mathchar@type\mathaccent \use:c { sym #2 } #3 \scan_stop: +} +\cs_generate_variant:Nn \um_set_mathchar:NNnn {c} +\cs_new:Nn \char_gmake_mathactive:N { + \global\mathcode `#1 = "8000 \scan_stop: +} +\cs_new:Nn \char_gmake_mathactive:n { + \global\mathcode #1 = "8000 \scan_stop: +} \DeclareDocumentCommand \unimathsetup {m} { \keys_set:nn {unicode-math} {#1} @@ -325,11 +373,11 @@ } \msg_new:nnn { unicode-math } { mathtools-overbracket } { Using~ \token_to_str:N \overbracket\ and~ - \token_to_str:N \underbracke\ from~ + \token_to_str:N \underbracket\ from~ `mathtools'~ package.\\ \\ Use~ \token_to_str:N \Uoverbracket\ and~ - \token_to_str:N \Uunderbracke\ for~ + \token_to_str:N \Uunderbracket\ for~ original~ `unicode-math'~ definition. } \msg_new:nnn { unicode-math } { mathtools-colon } { |