From 43a7c68eac5fee730a757f094f20793e77c301e0 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 29 Dec 2021 21:35:30 +0000 Subject: mathfont (29dec21) git-svn-id: svn://tug.org/texlive/trunk@61440 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/mathfont/README.txt | 138 +- .../doc/latex/mathfont/mathfont_code.pdf | Bin 280910 -> 381683 bytes .../doc/latex/mathfont/mathfont_doc_patch.tex | 60 +- .../doc/latex/mathfont/mathfont_equations.tex | 154 +++ .../latex/mathfont/mathfont_example_cormorant.pdf | Bin 0 -> 48599 bytes .../latex/mathfont/mathfont_example_cormorant.tex | 89 ++ .../latex/mathfont/mathfont_example_kelvinch.pdf | Bin 0 -> 70870 bytes .../latex/mathfont/mathfont_example_kelvinch.tex | 82 ++ .../doc/latex/mathfont/mathfont_example_roboto.pdf | Bin 0 -> 47734 bytes .../doc/latex/mathfont/mathfont_example_roboto.tex | 86 ++ .../doc/latex/mathfont/mathfont_example_typey.pdf | Bin 0 -> 39136 bytes .../doc/latex/mathfont/mathfont_example_typey.tex | 95 ++ .../doc/latex/mathfont/mathfont_heading.tex | 166 ++- .../doc/latex/mathfont/mathfont_index_warning.tex | 70 - .../doc/latex/mathfont/mathfont_symbol_list.pdf | Bin 321737 -> 185186 bytes .../doc/latex/mathfont/mathfont_symbol_list.tex | 1352 +++++++++++--------- .../doc/latex/mathfont/mathfont_user_guide.pdf | Bin 240025 -> 114809 bytes .../doc/latex/mathfont/mathfont_user_guide.tex | 357 +++--- 18 files changed, 1690 insertions(+), 959 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/mathfont/mathfont_equations.tex create mode 100644 Master/texmf-dist/doc/latex/mathfont/mathfont_example_cormorant.pdf create mode 100644 Master/texmf-dist/doc/latex/mathfont/mathfont_example_cormorant.tex create mode 100644 Master/texmf-dist/doc/latex/mathfont/mathfont_example_kelvinch.pdf create mode 100644 Master/texmf-dist/doc/latex/mathfont/mathfont_example_kelvinch.tex create mode 100644 Master/texmf-dist/doc/latex/mathfont/mathfont_example_roboto.pdf create mode 100644 Master/texmf-dist/doc/latex/mathfont/mathfont_example_roboto.tex create mode 100644 Master/texmf-dist/doc/latex/mathfont/mathfont_example_typey.pdf create mode 100644 Master/texmf-dist/doc/latex/mathfont/mathfont_example_typey.tex delete mode 100644 Master/texmf-dist/doc/latex/mathfont/mathfont_index_warning.tex (limited to 'Master/texmf-dist/doc') diff --git a/Master/texmf-dist/doc/latex/mathfont/README.txt b/Master/texmf-dist/doc/latex/mathfont/README.txt index bedf4d70352..b5a8f78c16e 100644 --- a/Master/texmf-dist/doc/latex/mathfont/README.txt +++ b/Master/texmf-dist/doc/latex/mathfont/README.txt @@ -1,51 +1,111 @@ -This README file contains information about the LaTeX2e package -"mathfont" installation version 1.6. Besides this README, the -installation contains the following files: +LaTeX package mathfont version 2.0 installation information. -1. mathfont_code.dtx: the primary file. Typeset this file with -LaTeX to generate mathfont.sty and complete the installation. +This file is README.txt from version 2.0 of the free and +open-source LaTeX package "mathfont," to be used with the +XeTeX or LuaTeX engines. The package is designed to adapt +text fonts for use in math mode, and if you typeset your +document with LuaLaTeX, mathfont adds resizable delimiters, +big operators, and a MathConstants table to your font. -2. mathfont_code.pdf: documentation of the package code. +Besides this file, the installation contains the following +items: -3. mathfont_symbol_list.pdf: a typeset list of symbols that -mathfont can act on. + (1) mathfont_code.dtx: the primary file. Run this file + through LaTeX to generate mathfont.sty and complete + the installation. -4. mathfont_user_guide.pdf: user-level documentation. + (2) mathfont_code.pdf: documentation of the package code. + (3) mathfont_symbol_list.pdf: a list of symbols that + mathfont provides access to. + (4) mathfont_user_guide.pdf: a user guide. + (5) four files called mathfont_example_.pdf: + example files showing mathfont in action. -Copyright 2018-2019 by Conrad Kosowsky - -This file may be distributed and modified under the terms of the -LaTeX Public Project License, version 1.3c or any later version. -The most recent version of this license is available online at - - https://www.latex-project.org/lppl/. - -This work has the LPPL status "maintained," and the current -maintainer is the package author, Conrad Kosowsky. He can be -reached at kosowsky.latex@gmail.com. The work consists of the -following items: - - (1) the base file mathfont_code.dtx; - - (2) the package code contained in mathfont.sty; - - (3) the derived files mathfont_symbol_list.tex, -mathfont_user_guide.tex, mathfont_heading.tex, and -mathfont_doc_patch.tex, and mathfont_index_warning.tex; +To install mathfont automatically, update your TeXLive or +MacTeX distribution or use a package manager such as tlmgr. +To install mathfont manually, run mathfont_code.dtx through +LaTeX and move the derived file mathfont.sty to a directory +searchable by TeX. - (4) the pdf documentation files mathfont_code.pdf, -mathfont_symbol_list.pdf, and mathfont_user_guide.pdf; +Copyright 2018-2021 by Conrad Kosowsky + +This file may be distributed and modified under the terms +of the LaTeX Public Project License, version 1.3c or any +later version. The most recent version of this license is +available online at + + https://www.latex-project.org/lppl/. + +This Work has the LPPL status "maintained," and the current +maintainer is the package author, Conrad Kosowsky. He can +be reached at kosowsky.latex@gmail.com. The Work consists +of the following items: + + (1) the base file: + mathfont_code.dtx + + (2) the package file: + mathfont.sty + + (3) the derived files: + mathfont_doc_patch.tex + mathfont_equations.tex + mathfont_example_cormorant.tex + mathfont_example_kelvinch.tex + mathfont_example_roboto.tex + mathfont_example_typey.tex + mathfont_heading.tex + mathfont_symbol_list.tex + mathfont_user_guide.tex + + (4) the pdf documentation files: + mathfont_code.pdf, + mathfont_example_cormorant.pdf + mathfont_example_kelvinch.pdf + mathfont_example_roboto.pdf + mathfont_example_typey.pdf + mathfont_symbol_list.pdf + mathfont_user_guide.pdf (5) all other files created through the configuration -process including mathfont_code.ind; and - - (6) this README.txt file. - -For more information, see the original mathfont.dtx file. To -install mathfont on your computer, run mathfont_code.dtx through -LaTeX and place the derived file mathfont.sty in a directory -searchable by TeX. + process + + (6) the associated README.txt file + +THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS +OR IMPLIED WARRANTY, INCLUDING THE IMPLIED WARRANTIES +OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +IF THE SOFTWARE IS DEFECTIVE, YOU AGREE TO ASSUME THE +COST FOR ANY REPAIR OR CORRECTION. + +BY USING OR DISTRIBUTING THIS SOFTWARE, YOU AGREE +TO RELEASE THE PACKAGE AUTHOR FROM ANY LIABILITY FOR +DAMAGES ARISING OUT OF YOUR USE OF THE SOFTWARE. YOU +AGREE TO DO SO TO THE MAXIMUM EXTENT ALLOWED UNDER +APPLICABLE LAW AND EVEN IF THE PACKAGE AUTHOR HAS +BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +See also the "No Warranty" section of the LaTeX Project +Public License. In releasing the package author from +liability, you also release from liability any third +parties who distribute the software under the terms +of the LaTeX Project Public License. Derivative works +based on this package may come with their own license or +terms of use, and the package author is not responsible +for any third-party software. + +The Work does not include any fonts, and the installation +does not contain any font files. The fonts Bona Nova, +Cormorant, Crimson, Kelvinch, Overpass, STIXGeneral, and +Typey McTypeface have released under the SIL Open Font +License and are used pursuant to that license. The font +Roboto has been released under the Apache License and is +used pursuant to that license. + +For more information, see mathfont_code.dtx. + +Happy TeXing! diff --git a/Master/texmf-dist/doc/latex/mathfont/mathfont_code.pdf b/Master/texmf-dist/doc/latex/mathfont/mathfont_code.pdf index f2e7a0ccb95..2872bf268f7 100644 Binary files a/Master/texmf-dist/doc/latex/mathfont/mathfont_code.pdf and b/Master/texmf-dist/doc/latex/mathfont/mathfont_code.pdf differ diff --git a/Master/texmf-dist/doc/latex/mathfont/mathfont_doc_patch.tex b/Master/texmf-dist/doc/latex/mathfont/mathfont_doc_patch.tex index 3f4d09dfd5c..206dd1f6f1c 100644 --- a/Master/texmf-dist/doc/latex/mathfont/mathfont_doc_patch.tex +++ b/Master/texmf-dist/doc/latex/mathfont/mathfont_doc_patch.tex @@ -6,42 +6,48 @@ %% %% mathfont_code.dtx (with options: `doc') %% -%% This file is file from version 1.6 of the LaTeX package "mathfont," -%% to be used in conjunction with the XeTeX or LuaTeX engines. +%% This file is from version 2.0 of the free and open-source +%% LaTeX package "mathfont," to be used with the XeTeX or +%% LuaTeX engines. (As of version 2.0, LuaTeX is recommended.) %% -%% Copyright 2018-2019 by Conrad Kosowsky +%% Copyright 2018-2021 by Conrad Kosowsky %% -%% This file may be distributed and modified under the terms of the -%% LaTeX Public Project License, version 1.3c or any later version. -%% The most recent version of this license is available online at +%% This file may be distributed and modified under the terms +%% of the LaTeX Public Project License, version 1.3c or any +%% later version. The most recent version of this license is +%% available online at %% -%% https://www.latex-project.org/lppl/. +%% https://www.latex-project.org/lppl/. %% -%% This work has the LPPL status "maintained," and the current -%% maintainer is the package author, Conrad Kosowsky. He can be -%% reached at kosowsky.latex@gmail.com. The work consists of the -%% following items: +%% This Work has the LPPL status "maintained," and the current +%% maintainer is the package author, Conrad Kosowsky. He can +%% be reached at kosowsky.latex@gmail.com. %% -%% (1) the base file mathfont_code.dtx; +%% THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS +%% OR IMPLIED WARRANTY, INCLUDING THE IMPLIED WARRANTIES +%% OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +%% IF THE SOFTWARE IS DEFECTIVE, YOU AGREE TO ASSUME THE +%% COST FOR ANY REPAIR OR CORRECTION. %% -%% (2) the package code contained in mathfont.sty; +%% BY USING OR DISTRIBUTING THIS SOFTWARE, YOU AGREE +%% TO RELEASE THE PACKAGE AUTHOR FROM ANY LIABILITY FOR +%% DAMAGES ARISING OUT OF YOUR USE OF THE SOFTWARE. YOU +%% AGREE TO DO SO TO THE MAXIMUM EXTENT ALLOWED UNDER +%% APPLICABLE LAW AND EVEN IF THE PACKAGE AUTHOR HAS +%% BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. %% -%% (3) the derived files mathfont_symbol_list.tex, -%% mathfont_user_guide.tex, mathfont_heading.tex, and -%% mathfont_doc_patch.tex; +%% See also the "No Warranty" section of the LaTeX Project +%% Public License. In releasing the package author from +%% liability, you also release from liability any third +%% parties who distribute the software under the terms +%% of the LaTeX Project Public License. Derivative works +%% based on this package may come with their own license or +%% terms of use, and the package author is not responsible +%% for any third-party software. %% -%% (4) the pdf documentation files mathfont_code.pdf, -%% mathfont_symbol_list.pdf, and mathfont_user_guide.pdf; +%% For more information, see the mathfont_code.dtx. %% -%% (5) all other files created through the configuration process -%% such as mathfont.idx and mathfont.ind; and -%% -%% (6) the associated README.txt file. -%% -%% For more information, see the original mathfont.dtx file. To -%% install mathfont on your computer, run mathfont_code.dtx through -%% LaTeX and place the derived file mathfont.sty in a directory -%% searchable by TeX. +%% Happy TeXing! %% \let\?\SpecialUsageIndex diff --git a/Master/texmf-dist/doc/latex/mathfont/mathfont_equations.tex b/Master/texmf-dist/doc/latex/mathfont/mathfont_equations.tex new file mode 100644 index 00000000000..d63e2972553 --- /dev/null +++ b/Master/texmf-dist/doc/latex/mathfont/mathfont_equations.tex @@ -0,0 +1,154 @@ +%% +%% This is file `mathfont_equations.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mathfont_code.dtx (with options: `equations') +%% +%% This file is from version 2.0 of the free and open-source +%% LaTeX package "mathfont," to be used with the XeTeX or +%% LuaTeX engines. (As of version 2.0, LuaTeX is recommended.) +%% +%% Copyright 2018-2021 by Conrad Kosowsky +%% +%% This file may be distributed and modified under the terms +%% of the LaTeX Public Project License, version 1.3c or any +%% later version. The most recent version of this license is +%% available online at +%% +%% https://www.latex-project.org/lppl/. +%% +%% This Work has the LPPL status "maintained," and the current +%% maintainer is the package author, Conrad Kosowsky. He can +%% be reached at kosowsky.latex@gmail.com. +%% +%% THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS +%% OR IMPLIED WARRANTY, INCLUDING THE IMPLIED WARRANTIES +%% OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +%% IF THE SOFTWARE IS DEFECTIVE, YOU AGREE TO ASSUME THE +%% COST FOR ANY REPAIR OR CORRECTION. +%% +%% BY USING OR DISTRIBUTING THIS SOFTWARE, YOU AGREE +%% TO RELEASE THE PACKAGE AUTHOR FROM ANY LIABILITY FOR +%% DAMAGES ARISING OUT OF YOUR USE OF THE SOFTWARE. YOU +%% AGREE TO DO SO TO THE MAXIMUM EXTENT ALLOWED UNDER +%% APPLICABLE LAW AND EVEN IF THE PACKAGE AUTHOR HAS +%% BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +%% +%% See also the "No Warranty" section of the LaTeX Project +%% Public License. In releasing the package author from +%% liability, you also release from liability any third +%% parties who distribute the software under the terms +%% of the LaTeX Project Public License. Derivative works +%% based on this package may come with their own license or +%% terms of use, and the package author is not responsible +%% for any third-party software. +%% +%% For more information, see the mathfont_code.dtx. +%% +%% Happy TeXing! +%% +\begin{multicols}{2} +\let\medskip\relax + +Black-Scholes Equation +\[ +\frac{\partial V}{\partial t}+\frac12\sigma^2S^2\frac{\partial^2V}{\partial S^2}= + rV-rS\frac{\partial V}{\partial X} +\] +\medskip + +Cardano's Formula/Cubic Formula +\begin{align*} +t_i&=\omega_i\sqrt[3]{-\frac q2+\sqrt{\frac{q^2}4+\frac{p^3}{27}}}\\ + &\qquad\qquad{}+\omega_i^2\sqrt[3]{-\frac q2-\sqrt{\frac{q^2}4+\frac{p^3}{27}}} +\end{align*} +\medskip + +Einstein's Field Equation (General Relativity) +\[ +R_{\mu\nu}-\frac12Rg_{\mu\nu}+\Lambda g_{\mu\nu}=\frac{8\pi G}{c^4}T_{\mu\nu} +\] +\medskip + +First Isomorphism Theorem +\[ +\phi(X)\cong X/\ker(\phi) +\] +\medskip + +Gauss-Bonnet Formula +\[ +\int_MK\ dA+\int_{\partial M}k_g\ ds=2\pi\chi(M) +\] +\medskip + +Maxwell's Equations +\begin{align*} +\nabla\bullet\mathbf E&=\frac\rho{\epsilon_0}& +\nabla\bullet\mathbf B&=0\\ +\nabla\times\mathbf E&=-\frac{\partial\mathbf B}{\partial t}& +\nabla\times\mathbf B&=\mu_0\left(\mathbf J+ + \epsilon_0\frac{\partial\mathbf E}{\partial t}\right) +\end{align*} +\medskip + +Michaelis-Menten Model +\[ +v=\frac{d[P]}{dt}=V\frac{[S]}{K_M+[S]} +\] + +%% next column begins here + +Navier-Stokes Equation +\begin{align*} +\frac{\partial}{\partial t}(\rho\mathbf{u})+\nabla\bullet + (\rho \mathbf{u}\otimes \mathbf{u})={} + &{-}\nabla\bar p+\mu\nabla^2\mathbf{u}\\ + &+\frac13\mu\nabla(\nabla\bullet u)+ + \rho\mathbf{g} +\end{align*} +\medskip + +Quadratic Formula +\[ +x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} +\] +\medskip + +Ramanujan's Approximation for $\Gamma$ +\[ +\Gamma(1+x)\approx\sqrt\pi\,x^xe^{-x}\,\sqrt[6]{8x^3+4x^2+x+\frac1{30}} +\] +\medskip + +Residue Theorem +\[ +\frac1{2i\pi}\int_{\gamma}f(z)\ dz=\sum_{k=1}^n\Res_{a_k}(f) +\] +\medskip + +Riemann Zeta Function +\begin{align*} +\zeta(z)&=\sum_{i=1}^\infty\frac1{z^i} + =\frac1{\Gamma(z)}\int_0^\infty\frac{x^{z-1}}{e^x-1}\ dx\\ + &=2^z\pi^{z-1}\sin\left(\frac{\pi z}2\right)\,\Gamma(1-z)\,\zeta(1-z) +\end{align*} +\medskip + +Schrodinger Equation +\[ +i\hbar\frac d{dt}|\Psi(t)\fakerangle=\hat H|\Psi(t)\fakerangle +\] +\medskip + +Lorentz Transformation (Special Relativity) +\[ +t'=\left(t-\frac{vx}{c^2}\right)\frac1{\sqrt{1-\frac{v^2}{c^2}}} +\] + +\end{multicols} +\endinput +%% +%% End of file `mathfont_equations.tex'. diff --git a/Master/texmf-dist/doc/latex/mathfont/mathfont_example_cormorant.pdf b/Master/texmf-dist/doc/latex/mathfont/mathfont_example_cormorant.pdf new file mode 100644 index 00000000000..5c86d9e601d Binary files /dev/null and b/Master/texmf-dist/doc/latex/mathfont/mathfont_example_cormorant.pdf differ diff --git a/Master/texmf-dist/doc/latex/mathfont/mathfont_example_cormorant.tex b/Master/texmf-dist/doc/latex/mathfont/mathfont_example_cormorant.tex new file mode 100644 index 00000000000..cd79821b1a4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/mathfont/mathfont_example_cormorant.tex @@ -0,0 +1,89 @@ +%% +%% This is file `mathfont_example_cormorant.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mathfont_code.dtx (with options: `cormorant') +%% +%% This file is from version 2.0 of the free and open-source +%% LaTeX package "mathfont," to be used with the XeTeX or +%% LuaTeX engines. (As of version 2.0, LuaTeX is recommended.) +%% +%% Copyright 2018-2021 by Conrad Kosowsky +%% +%% This file may be distributed and modified under the terms +%% of the LaTeX Public Project License, version 1.3c or any +%% later version. The most recent version of this license is +%% available online at +%% +%% https://www.latex-project.org/lppl/. +%% +%% This Work has the LPPL status "maintained," and the current +%% maintainer is the package author, Conrad Kosowsky. He can +%% be reached at kosowsky.latex@gmail.com. +%% +%% THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS +%% OR IMPLIED WARRANTY, INCLUDING THE IMPLIED WARRANTIES +%% OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +%% IF THE SOFTWARE IS DEFECTIVE, YOU AGREE TO ASSUME THE +%% COST FOR ANY REPAIR OR CORRECTION. +%% +%% BY USING OR DISTRIBUTING THIS SOFTWARE, YOU AGREE +%% TO RELEASE THE PACKAGE AUTHOR FROM ANY LIABILITY FOR +%% DAMAGES ARISING OUT OF YOUR USE OF THE SOFTWARE. YOU +%% AGREE TO DO SO TO THE MAXIMUM EXTENT ALLOWED UNDER +%% APPLICABLE LAW AND EVEN IF THE PACKAGE AUTHOR HAS +%% BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +%% +%% See also the "No Warranty" section of the LaTeX Project +%% Public License. In releasing the package author from +%% liability, you also release from liability any third +%% parties who distribute the software under the terms +%% of the LaTeX Project Public License. Derivative works +%% based on this package may come with their own license or +%% terms of use, and the package author is not responsible +%% for any third-party software. +%% +%% For more information, see the mathfont_code.dtx. +%% +%% Happy TeXing! +%% +\documentclass[12pt]{article} +\makeatletter +\usepackage[margin=1in]{geometry} +\usepackage{innerscript} +\usepackage{multicol} +\usepackage{amsmath} +\DeclareMathOperator{\Res}{Res} +\usepackage{mathfont} +\DeclareFontFamily{TU}{Cormorant}{} +\DeclareFontShape{TU}{Cormorant}{m}{n} + {<->"Cormorant Medium:\M@default@otf@features;-liga"}{} +\DeclareFontShape{TU}{Cormorant}{m}{it} + {<->"Cormorant Medium Italic:\M@default@otf@features"}{} +\mathfont[greeklower=upright,greekupper]{Crimson} +\mathfont[diacritics]{Bona Nova} +\setfont{Cormorant} +\RuleThicknessFactor{600} +\DeclareMathSymbol{\nabla}{\mathord}{Mupright0}{"2207} +\DeclareMathSymbol{\nabla}{\mathord}{Mupright0}{"2207} +\parindent=0pt\relax +\begin{document} + +\let\footnote\@gobble +\def\showabstract{0} +\let\textsf\relax +\let\ttfamily\relax +\def\documentname{Example---Cormorant} + +\input mathfont_heading.tex + +This is Cormorant with Crimson for Greek characters and Bona Nova for diacritics. Testing. Testing. Brown foxes quickly jump over dazzling does and harts. This document shows an example of mathfont in action. Unfortunately, there are many more equations in the world than I have space for here. Nevertheless, I hope I hit some of the highlights. Happy \TeX ing! + +\input{mathfont_equations.tex} + +\end{document} +\endinput +%% +%% End of file `mathfont_example_cormorant.tex'. diff --git a/Master/texmf-dist/doc/latex/mathfont/mathfont_example_kelvinch.pdf b/Master/texmf-dist/doc/latex/mathfont/mathfont_example_kelvinch.pdf new file mode 100644 index 00000000000..43e7a1009f9 Binary files /dev/null and b/Master/texmf-dist/doc/latex/mathfont/mathfont_example_kelvinch.pdf differ diff --git a/Master/texmf-dist/doc/latex/mathfont/mathfont_example_kelvinch.tex b/Master/texmf-dist/doc/latex/mathfont/mathfont_example_kelvinch.tex new file mode 100644 index 00000000000..214a2fc35df --- /dev/null +++ b/Master/texmf-dist/doc/latex/mathfont/mathfont_example_kelvinch.tex @@ -0,0 +1,82 @@ +%% +%% This is file `mathfont_example_kelvinch.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mathfont_code.dtx (with options: `kelvinch') +%% +%% This file is from version 2.0 of the free and open-source +%% LaTeX package "mathfont," to be used with the XeTeX or +%% LuaTeX engines. (As of version 2.0, LuaTeX is recommended.) +%% +%% Copyright 2018-2021 by Conrad Kosowsky +%% +%% This file may be distributed and modified under the terms +%% of the LaTeX Public Project License, version 1.3c or any +%% later version. The most recent version of this license is +%% available online at +%% +%% https://www.latex-project.org/lppl/. +%% +%% This Work has the LPPL status "maintained," and the current +%% maintainer is the package author, Conrad Kosowsky. He can +%% be reached at kosowsky.latex@gmail.com. +%% +%% THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS +%% OR IMPLIED WARRANTY, INCLUDING THE IMPLIED WARRANTIES +%% OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +%% IF THE SOFTWARE IS DEFECTIVE, YOU AGREE TO ASSUME THE +%% COST FOR ANY REPAIR OR CORRECTION. +%% +%% BY USING OR DISTRIBUTING THIS SOFTWARE, YOU AGREE +%% TO RELEASE THE PACKAGE AUTHOR FROM ANY LIABILITY FOR +%% DAMAGES ARISING OUT OF YOUR USE OF THE SOFTWARE. YOU +%% AGREE TO DO SO TO THE MAXIMUM EXTENT ALLOWED UNDER +%% APPLICABLE LAW AND EVEN IF THE PACKAGE AUTHOR HAS +%% BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +%% +%% See also the "No Warranty" section of the LaTeX Project +%% Public License. In releasing the package author from +%% liability, you also release from liability any third +%% parties who distribute the software under the terms +%% of the LaTeX Project Public License. Derivative works +%% based on this package may come with their own license or +%% terms of use, and the package author is not responsible +%% for any third-party software. +%% +%% For more information, see the mathfont_code.dtx. +%% +%% Happy TeXing! +%% +\documentclass[12pt]{article} +\makeatletter +\usepackage[margin=1in]{geometry} +\usepackage{innerscript} +\usepackage{multicol} +\usepackage{amsmath} +\DeclareMathOperator{\Res}{Res} +\usepackage{mathfont} +\mathfont[radical]{Crimson} +\setfont{Kelvinch} +\IntegralItalicFactor{500} +\SurdHorizontalFactor{900} +\parindent=0pt\relax +\begin{document} + +\let\footnote\@gobble +\def\showabstract{0} +\let\textsf\relax +\let\ttfamily\relax +\def\documentname{Example---Kelvinch} + +\input mathfont_heading.tex + +This is Kelvinch with Crimson for the radical signs. Testing. Testing. Brown foxes quickly jump over dazzling does and harts. This document shows an example of mathfont in action. Unfortunately, there are many more equations in the world than I have space for here. Nevertheless, I hope I hit some of the highlights. Happy \TeX ing! + +\input{mathfont_equations.tex} + +\end{document} +\endinput +%% +%% End of file `mathfont_example_kelvinch.tex'. diff --git a/Master/texmf-dist/doc/latex/mathfont/mathfont_example_roboto.pdf b/Master/texmf-dist/doc/latex/mathfont/mathfont_example_roboto.pdf new file mode 100644 index 00000000000..66ec5982b5d Binary files /dev/null and b/Master/texmf-dist/doc/latex/mathfont/mathfont_example_roboto.pdf differ diff --git a/Master/texmf-dist/doc/latex/mathfont/mathfont_example_roboto.tex b/Master/texmf-dist/doc/latex/mathfont/mathfont_example_roboto.tex new file mode 100644 index 00000000000..42a7a742b18 --- /dev/null +++ b/Master/texmf-dist/doc/latex/mathfont/mathfont_example_roboto.tex @@ -0,0 +1,86 @@ +%% +%% This is file `mathfont_example_roboto.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mathfont_code.dtx (with options: `roboto') +%% +%% This file is from version 2.0 of the free and open-source +%% LaTeX package "mathfont," to be used with the XeTeX or +%% LuaTeX engines. (As of version 2.0, LuaTeX is recommended.) +%% +%% Copyright 2018-2021 by Conrad Kosowsky +%% +%% This file may be distributed and modified under the terms +%% of the LaTeX Public Project License, version 1.3c or any +%% later version. The most recent version of this license is +%% available online at +%% +%% https://www.latex-project.org/lppl/. +%% +%% This Work has the LPPL status "maintained," and the current +%% maintainer is the package author, Conrad Kosowsky. He can +%% be reached at kosowsky.latex@gmail.com. +%% +%% THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS +%% OR IMPLIED WARRANTY, INCLUDING THE IMPLIED WARRANTIES +%% OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +%% IF THE SOFTWARE IS DEFECTIVE, YOU AGREE TO ASSUME THE +%% COST FOR ANY REPAIR OR CORRECTION. +%% +%% BY USING OR DISTRIBUTING THIS SOFTWARE, YOU AGREE +%% TO RELEASE THE PACKAGE AUTHOR FROM ANY LIABILITY FOR +%% DAMAGES ARISING OUT OF YOUR USE OF THE SOFTWARE. YOU +%% AGREE TO DO SO TO THE MAXIMUM EXTENT ALLOWED UNDER +%% APPLICABLE LAW AND EVEN IF THE PACKAGE AUTHOR HAS +%% BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +%% +%% See also the "No Warranty" section of the LaTeX Project +%% Public License. In releasing the package author from +%% liability, you also release from liability any third +%% parties who distribute the software under the terms +%% of the LaTeX Project Public License. Derivative works +%% based on this package may come with their own license or +%% terms of use, and the package author is not responsible +%% for any third-party software. +%% +%% For more information, see the mathfont_code.dtx. +%% +%% Happy TeXing! +%% +\documentclass[12pt]{article} +\makeatletter +\usepackage[margin=1in]{geometry} +\usepackage{innerscript} +\usepackage{multicol} +\usepackage{amsmath} +\DeclareMathOperator{\Res}{Res} +\usepackage{mathfont} +\mathfont[radical]{Overpass} +\setfont{Roboto} +\mathfont[]{STIXGeneral} +\DeclareSymbolFont{Mupright2}{TU}{STIXGeneral}{m}{n} +\DeclareMathSymbol{\otimes}{\mathbin}{Mupright2}{"2297} +\RuleThicknessFactor{1900} +\IntegralItalicFactor{500} +\SurdHorizontalFactor{800} +\parindent=0pt\relax +\begin{document} + +\let\footnote\@gobble +\def\showabstract{0} +\let\textsf\relax +\let\ttfamily\relax +\def\documentname{Example---Roboto} + +\input mathfont_heading.tex + +This is Roboto with Overpass for the radical signs and STIXGeneral for the tensor product. Testing. Testing. Brown foxes quickly jump over dazzling does and harts. This document shows an example of mathfont in action. Unfortunately, there are many more equations in the world than I have space for here. Nevertheless, I hope I hit some of the highlights. Happy \TeX ing! + +\input{mathfont_equations.tex} + +\end{document} +\endinput +%% +%% End of file `mathfont_example_roboto.tex'. diff --git a/Master/texmf-dist/doc/latex/mathfont/mathfont_example_typey.pdf b/Master/texmf-dist/doc/latex/mathfont/mathfont_example_typey.pdf new file mode 100644 index 00000000000..364d67688a7 Binary files /dev/null and b/Master/texmf-dist/doc/latex/mathfont/mathfont_example_typey.pdf differ diff --git a/Master/texmf-dist/doc/latex/mathfont/mathfont_example_typey.tex b/Master/texmf-dist/doc/latex/mathfont/mathfont_example_typey.tex new file mode 100644 index 00000000000..4adcd610956 --- /dev/null +++ b/Master/texmf-dist/doc/latex/mathfont/mathfont_example_typey.tex @@ -0,0 +1,95 @@ +%% +%% This is file `mathfont_example_typey.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mathfont_code.dtx (with options: `typey') +%% +%% This file is from version 2.0 of the free and open-source +%% LaTeX package "mathfont," to be used with the XeTeX or +%% LuaTeX engines. (As of version 2.0, LuaTeX is recommended.) +%% +%% Copyright 2018-2021 by Conrad Kosowsky +%% +%% This file may be distributed and modified under the terms +%% of the LaTeX Public Project License, version 1.3c or any +%% later version. The most recent version of this license is +%% available online at +%% +%% https://www.latex-project.org/lppl/. +%% +%% This Work has the LPPL status "maintained," and the current +%% maintainer is the package author, Conrad Kosowsky. He can +%% be reached at kosowsky.latex@gmail.com. +%% +%% THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS +%% OR IMPLIED WARRANTY, INCLUDING THE IMPLIED WARRANTIES +%% OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +%% IF THE SOFTWARE IS DEFECTIVE, YOU AGREE TO ASSUME THE +%% COST FOR ANY REPAIR OR CORRECTION. +%% +%% BY USING OR DISTRIBUTING THIS SOFTWARE, YOU AGREE +%% TO RELEASE THE PACKAGE AUTHOR FROM ANY LIABILITY FOR +%% DAMAGES ARISING OUT OF YOUR USE OF THE SOFTWARE. YOU +%% AGREE TO DO SO TO THE MAXIMUM EXTENT ALLOWED UNDER +%% APPLICABLE LAW AND EVEN IF THE PACKAGE AUTHOR HAS +%% BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +%% +%% See also the "No Warranty" section of the LaTeX Project +%% Public License. In releasing the package author from +%% liability, you also release from liability any third +%% parties who distribute the software under the terms +%% of the LaTeX Project Public License. Derivative works +%% based on this package may come with their own license or +%% terms of use, and the package author is not responsible +%% for any third-party software. +%% +%% For more information, see the mathfont_code.dtx. +%% +%% Happy TeXing! +%% +\documentclass[12pt]{article} +\makeatletter +\usepackage[margin=1in]{geometry} +\usepackage{innerscript} +\usepackage{multicol} +\usepackage{amsmath} +\DeclareMathOperator{\Res}{Res} +\usepackage{mathfont} +\mathfont[radical]{Crimson} +\DeclareFontFamily{TU}{Typey}{} +\DeclareFontShape{TU}{Typey}{m}{n} + {<->"Typey McTypeface:\M@default@otf@features"}{} +\DeclareFontShape{TU}{Typey}{m}{it} + {<->"Typey McTypeface/I:\M@default@otf@features"}{} +\DeclareFontShape{TU}{Typey}{b}{n} + {<->"Typey McTypeface:\M@default@otf@features;embolden=6"}{} +\DeclareFontShape{TU}{Typey}{b}{it} + {<->"Typey McTypeface/I:\M@default@otf@features;embolden=6"}{} +\setfont{Typey} +\mathfont[]{STIXGeneral} +\DeclareSymbolFont{Mroman2}{TU}{STIXGeneral}{m}{n} +\DeclareMathSymbol{\otimes}{\mathbin}{Mroman2}{"2297} +\RuleThicknessFactor{1300} +\SurdHorizontalFactor{860} +\parindent=0pt\relax +\begin{document} + +\let\footnote\@gobble +\def\showabstract{0} +\let\textsf\relax +\let\ttfamily\relax +\def\documentname{Example---Typey McTypeface} + +\input mathfont_heading.tex + +This is Typey McTypeface with Crimson for the radical signs and STIXGeneral for the tensor product. Testing. Testing. Brown foxes quickly jump over dazzling does and harts. This document shows mathfont in action. Unfortunately, there are many more equations in the world than I have space for here. Nevertheless, I hope I hit some of the highlights. Happy \TeX ing! + +\let\bullet\cdot +\input{mathfont_equations.tex} + +\end{document} +\endinput +%% +%% End of file `mathfont_example_typey.tex'. diff --git a/Master/texmf-dist/doc/latex/mathfont/mathfont_heading.tex b/Master/texmf-dist/doc/latex/mathfont/mathfont_heading.tex index 3a0c576d19d..436dc2ff375 100644 --- a/Master/texmf-dist/doc/latex/mathfont/mathfont_heading.tex +++ b/Master/texmf-dist/doc/latex/mathfont/mathfont_heading.tex @@ -6,96 +6,127 @@ %% %% mathfont_code.dtx (with options: `heading') %% -%% This file is file from version 1.6 of the LaTeX package "mathfont," -%% to be used in conjunction with the XeTeX or LuaTeX engines. +%% This file is from version 2.0 of the free and open-source +%% LaTeX package "mathfont," to be used with the XeTeX or +%% LuaTeX engines. (As of version 2.0, LuaTeX is recommended.) %% -%% Copyright 2018-2019 by Conrad Kosowsky +%% Copyright 2018-2021 by Conrad Kosowsky %% -%% This file may be distributed and modified under the terms of the -%% LaTeX Public Project License, version 1.3c or any later version. -%% The most recent version of this license is available online at +%% This file may be distributed and modified under the terms +%% of the LaTeX Public Project License, version 1.3c or any +%% later version. The most recent version of this license is +%% available online at %% -%% https://www.latex-project.org/lppl/. +%% https://www.latex-project.org/lppl/. %% -%% This work has the LPPL status "maintained," and the current -%% maintainer is the package author, Conrad Kosowsky. He can be -%% reached at kosowsky.latex@gmail.com. The work consists of the -%% following items: +%% This Work has the LPPL status "maintained," and the current +%% maintainer is the package author, Conrad Kosowsky. He can +%% be reached at kosowsky.latex@gmail.com. %% -%% (1) the base file mathfont_code.dtx; +%% THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS +%% OR IMPLIED WARRANTY, INCLUDING THE IMPLIED WARRANTIES +%% OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +%% IF THE SOFTWARE IS DEFECTIVE, YOU AGREE TO ASSUME THE +%% COST FOR ANY REPAIR OR CORRECTION. %% -%% (2) the package code contained in mathfont.sty; +%% BY USING OR DISTRIBUTING THIS SOFTWARE, YOU AGREE +%% TO RELEASE THE PACKAGE AUTHOR FROM ANY LIABILITY FOR +%% DAMAGES ARISING OUT OF YOUR USE OF THE SOFTWARE. YOU +%% AGREE TO DO SO TO THE MAXIMUM EXTENT ALLOWED UNDER +%% APPLICABLE LAW AND EVEN IF THE PACKAGE AUTHOR HAS +%% BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. %% -%% (3) the derived files mathfont_symbol_list.tex, -%% mathfont_user_guide.tex, mathfont_heading.tex, and -%% mathfont_doc_patch.tex; +%% See also the "No Warranty" section of the LaTeX Project +%% Public License. In releasing the package author from +%% liability, you also release from liability any third +%% parties who distribute the software under the terms +%% of the LaTeX Project Public License. Derivative works +%% based on this package may come with their own license or +%% terms of use, and the package author is not responsible +%% for any third-party software. %% -%% (4) the pdf documentation files mathfont_code.pdf, -%% mathfont_symbol_list.pdf, and mathfont_user_guide.pdf; +%% For more information, see the mathfont_code.dtx. %% -%% (5) all other files created through the configuration process -%% such as mathfont.idx and mathfont.ind; and -%% -%% (6) the associated README.txt file. -%% -%% For more information, see the original mathfont.dtx file. To -%% install mathfont on your computer, run mathfont_code.dtx through -%% LaTeX and place the derived file mathfont.sty in a directory -%% searchable by TeX. +%% Happy TeXing! %% -\def\packagedate{December 2019} -\def\packageversion{1.6} +\def\packagedate{December 2021} +\def\packageversion{2.0} + \let\@@section\section -\let\@sectionname\relax -\def\@tempsec#1{\penalty-1000\@@section{#1}\penalty0\gdef\@sectionname{#1}} -\def\@tempsecstar#1{\@@section*{#1}\gdef\@sectionname{#1}} -\def\section{\@ifstar\@tempsecstar\@tempsec} +\def\section{\@ifstar\star@sect\no@star@sect} +\def\star@sect#1{\@@section*{#1}\section@name{#1}} +\def\no@star@sect#1{\@@section{#1}\section@name{#1}} +\def\section@name#1{\expandafter + \def\csname section@\thesection\endcsname{#1}} +\def\sectionname{\csname section@\thesection\endcsname} + \def\@oddhead{\ifnum\count0>1\relax - \rlap{\textit{\@sectionname}}\hfil + \rlap{\textit{\sectionname}}\hfil \hbox to 0pt{\hss\documentname\hss}\hfil \llap{\the\count0}\fi} \def\@evenhead{\ifnum\count0>1\relax \rlap{\the\count0}\hfil \hbox to 0pt{\hss\documentname\hss}\hfil - \llap{\textit{\@sectionname}}\fi} + \llap{\textit{\sectionname}}\fi} \def\@oddfoot{\hfil\ifnum\count0=1\relax1\fi\hfil} \let\@evenfoot\@empty -\DeclareRobustCommand\XeTeX{X\kern-0.1em +\pretolerance=20 +\hyphenpenalty=10 +\exhyphenpenalty=5 +\brokenpenalty=0 +\clubpenalty=5 +\widowpenalty=5 +\finalhyphendemerits=300 +\doublehyphendemerits=500 + +\protected\def\XeTeX{X\kern-0.1em \raise-0.5ex\hbox{\rotatebox[origin=c]{180}{E}}\kern-0.15em \TeX} -\DeclareRobustCommand\XeLaTeX{X\kern-0.1em +\protected\def\XeLaTeX{X\kern-0.1em \raise-0.5ex\hbox{\rotatebox[origin=c]{180}{E}}\kern-0.13em \LaTeX} \bgroup \count@\catcode`\| \catcode`\|=12\relax - \gdef\indexpage#1{\index{#1|textit}} - \catcode`\|\count@ + \gdef\indexpage#1{\index{#1|usage}} \egroup -\edef\fontspeccommand{\noexpand\protect\expandafter\noexpand\csname fontspeccommand \endcsname} +\protected\def\usage#1{\textit{#1}} \bgroup \catcode`\_=12 - \expandafter\gdef\csname fontspeccommand \endcsname{% - \texttt{\string\fontspec_set_family:Nnn}} + \protected\gdef\fontspeccommand{\texttt{\string\fontspec_set_family:Nnn}} + \protected\gdef\fontspecbool{\texttt{\string\g__fontspec_math_bool}} \egroup -\renewcommand\topfraction{1} -\renewcommand\bottomfraction{1} +\def\topfraction{1} +\def\bottomfraction{1} \newenvironment{code} - {\strut\vadjust\bgroup\medskip\parindent=4em\relax\indent\strut\ignorespaces} + {\strut\vadjust\bgroup\medskip\parindent\z@\leftskip2em\relax + \noindent\strut\ignorespaces} {\strut\par\medskip\egroup\hfill\break\strut\ignorespacesafterend} -\def\argtext#1{\ensuremath{\langle$\textit{#1}$\rangle}} \def\vrb#1{\expandafter\texttt\expandafter{\string#1}} \parskip=0pt -\def\makechar#1{\noindent\hbox to 0.4in{$#1{}$\hfil}\vrb#1\par} -\def\makeaccent#1{\noindent\hbox to 0.4in{$#1 a$\hfil}\vrb#1\par} -\def\blockheader#1#2#3{\smallskip\bigskip\centerline{#2 Characters (\texttt{#1})} - \penalty\@M{\noindent\hfil\fontsize{9pt}{12pt}\selectfont - \strut Rendered in #3\par}\penalty\@M - \smallskip\hrule height 0.5pt\penalty\@M\smallskip} +\def\charexample#1{\hbox to \hsize{\hbox to 0.4in{$#1$\hfil}\vrb#1\hfil}} +\def\accentexample#1{\hbox to \hsize{\hbox to 0.4in{$#1 a$\hfil}\vrb#1\hfil}} +\def\delimexample#1{\hbox to \hsize{% + \hbox to 0.8in{$#1\big#1\Big#1\bigg#1\Bigg#1$\hfil}\vrb#1\hfil}} +\def\luadelimexample#1{\hbox{\vbox{\hbox to 0.8in{% + $#1\big#1\Big#1\bigg#1\Bigg#1$\hfil}\hrule width 0pt height 0pt\relax}% + \hbox to \dimexpr\hsize-0.8in{\vbox{\vss + \hbox{\vrb#1} + \hbox{\quad(Lua\TeX only)} + \vss}\hfil}}} +\def\operatorexample#1{\hbox to \hsize{% + \hbox to 0.4in{$#1$\hfil}% + \hbox to 0.4in{$\displaystyle#1$\hfil}\vrb#1\hfil}\smallskip} +\def\blockheader#1#2{% + \bigskip\medskip + \penalty-9000 + \hbox{\fbox{\hbox to \dimexpr\hsize-2\fboxrule-2\fboxsep\relax{% + \hfil#2 Characters (Keyword \texttt{#1})\strut\hfil}}} + \medskip} \def\upperalphabet{ABCDEFGHIJKLMNOPQRSTUVWXY} \def\loweralphabet{abcdefghijklmnopqrstuvwxy} \def\digits{0123456789} @@ -107,27 +138,38 @@ \noindent\printchars\loweralphabet\hbox to 0.6em{$\@tempstyle{z}$\hss}\par} {\large\parindent=0pt\leftskip=0pt plus 1 fil\rightskip=0pt plus 1fil\parfillskip=0pt -{\strut\Large Package \textsf{mathfont} v.\ \packageversion\ \documentname\let\thefootnote\relax\footnote{Acknowledgements: Thanks to Lyric Bingham for her work checking my unicode hex values. Thanks to Herbert Voss and Andreas Zidak for pointing out bugs in previous versions of \textsf{mathfont}.}\global\advance\c@footnote\m@ne}\par +{\strut\Large Package \textsf{mathfont} v.\ \packageversion\ \documentname\let\thefootnote\relax\footnote{Acknowledgements: Thanks to Lyric Bingham for her work checking my unicode hex values. Thanks to Herbert Voss and Andreas Zidak for pointing out bugs in previous versions of \textsf{mathfont}. Thanks to Jean-Fran\c cois Burnol for pointing out an error in the documentation in reference to their \textsf{mathastext} package.}\global\advance\c@footnote\m@ne}\par {\strut Conrad Kosowsky}\par {\strut\packagedate}\par {\strut\ttfamily kosowsky.latex@gmail.com}\par} \bigskip -\begin{figure}[h] +\ifnum\showabstract=1\relax + \hrule height \p@\hbox{\vrule width \p@\kern-\p@\relax\vbox{\medskip -{\leftskip=7em\rightskip=7em -\noindent\strut For easy, off-the-shelf use, type the following in your document preamble and compile using \XeLaTeX\ or Lua\LaTeX:\par} +{\leftskip=1.4in\rightskip=1.4in +\noindent\strut For easy, off-the-shelf use, type the following in your preamble and compile with \XeLaTeX\ or Lua\LaTeX:\par \medskip -\vbox{\noindent\hfil{|\usepackage[|\argtext{font name}|]{mathfont}|}\hfil} +\vbox{\noindent\hfil{|\usepackage[|\meta{font name}|]{mathfont}|}\hfil} +\medskip +\noindent As of version 2.0, using Lua\LaTeX\ is recommended.\par} \medskip}\kern-\p@\vrule width \p@}\hrule height \p@ -\end{figure} - -\begin{abstract} -The \textsf{mathfont} package provides a flexible interface for changing the font of math-mode characters. The package allows the user to specify a default unicode font for each of six basic classes of Latin and Greek characters, and it provides additional support for unicode math and alphanumeric symbols, including punctuation. Crucially, \textsf{mathfont} is compatible with both \XeLaTeX\ and Lua\LaTeX, and it provides several font-loading commands that allow the user to change fonts locally or for individual characters within math mode. -\end{abstract} \bigskip + +{\small + +\centerline{\bfseries Overview\strut} +\smallskip + +\leftskip=0.5in\relax +\rightskip=0.5in\relax +\noindent The \textsf{mathfont} package adapts unicode text fonts for math mode. The package allows the user to specify a default unicode font for different classes of math symbols, and it provides tools to change the font locally for math alphabet characters. When typesetting with Lua\TeX, \textsf{mathfont} adds resizable delimiters, big operators, and a MathConstants table to text fonts.\par} + +\bigskip\bigskip\nointerlineskip +\centerline{\vrule height 0.5pt width 2.5in}\bigskip\medskip +\fi \endinput %% %% End of file `mathfont_heading.tex'. diff --git a/Master/texmf-dist/doc/latex/mathfont/mathfont_index_warning.tex b/Master/texmf-dist/doc/latex/mathfont/mathfont_index_warning.tex deleted file mode 100644 index 8ada1c04dd3..00000000000 --- a/Master/texmf-dist/doc/latex/mathfont/mathfont_index_warning.tex +++ /dev/null @@ -1,70 +0,0 @@ -%% -%% This is file `mathfont_index_warning.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% mathfont_code.dtx (with options: `idxwarning') -%% -%% This file is file from version 1.6 of the LaTeX package "mathfont," -%% to be used in conjunction with the XeTeX or LuaTeX engines. -%% -%% Copyright 2018-2019 by Conrad Kosowsky -%% -%% This file may be distributed and modified under the terms of the -%% LaTeX Public Project License, version 1.3c or any later version. -%% The most recent version of this license is available online at -%% -%% https://www.latex-project.org/lppl/. -%% -%% This work has the LPPL status "maintained," and the current -%% maintainer is the package author, Conrad Kosowsky. He can be -%% reached at kosowsky.latex@gmail.com. The work consists of the -%% following items: -%% -%% (1) the base file mathfont_code.dtx; -%% -%% (2) the package code contained in mathfont.sty; -%% -%% (3) the derived files mathfont_symbol_list.tex, -%% mathfont_user_guide.tex, mathfont_heading.tex, and -%% mathfont_doc_patch.tex; -%% -%% (4) the pdf documentation files mathfont_code.pdf, -%% mathfont_symbol_list.pdf, and mathfont_user_guide.pdf; -%% -%% (5) all other files created through the configuration process -%% such as mathfont.idx and mathfont.ind; and -%% -%% (6) the associated README.txt file. -%% -%% For more information, see the original mathfont.dtx file. To -%% install mathfont on your computer, run mathfont_code.dtx through -%% LaTeX and place the derived file mathfont.sty in a directory -%% searchable by TeX. -%% -\begingroup -\bigskip -\hrule height \p@\hbox{\vrule width \p@\kern-\p@\relax\vbox{\bigskip -{\leftskip=12pt\rightskip=12pt\parindent=0pt - -\hfil WARNING\hfil - -\medskip - -It looks like you obtained a copy of |mathfont_code.pdf| without the index. To produce documentation with index, do the following: (1) run |mathfont_code.dtx| through \LaTeX\ to produce the |idx| file; (2) while in the directory containing |mathfont_code.dtx|, type - -\medskip - -\hfil|makeindex -s gind.ist mathfont_code.idx|\hfil - -\medskip - -in the command line; and (3) rerun |mathfont_code.dtx| through \LaTeX\ to recreate the full documentation. - -}\bigskip}\kern-\p@\vrule width \p@}\hrule height \p@ -\bigskip -\endgroup -\endinput -%% -%% End of file `mathfont_index_warning.tex'. diff --git a/Master/texmf-dist/doc/latex/mathfont/mathfont_symbol_list.pdf b/Master/texmf-dist/doc/latex/mathfont/mathfont_symbol_list.pdf index 8bb0bd0a429..e870ea3f895 100644 Binary files a/Master/texmf-dist/doc/latex/mathfont/mathfont_symbol_list.pdf and b/Master/texmf-dist/doc/latex/mathfont/mathfont_symbol_list.pdf differ diff --git a/Master/texmf-dist/doc/latex/mathfont/mathfont_symbol_list.tex b/Master/texmf-dist/doc/latex/mathfont/mathfont_symbol_list.tex index 9580adaa20d..b53e12a23e0 100644 --- a/Master/texmf-dist/doc/latex/mathfont/mathfont_symbol_list.tex +++ b/Master/texmf-dist/doc/latex/mathfont/mathfont_symbol_list.tex @@ -6,708 +6,856 @@ %% %% mathfont_code.dtx (with options: `chars') %% -%% This file is file from version 1.6 of the LaTeX package "mathfont," -%% to be used in conjunction with the XeTeX or LuaTeX engines. +%% This file is from version 2.0 of the free and open-source +%% LaTeX package "mathfont," to be used with the XeTeX or +%% LuaTeX engines. (As of version 2.0, LuaTeX is recommended.) %% -%% Copyright 2018-2019 by Conrad Kosowsky +%% Copyright 2018-2021 by Conrad Kosowsky %% -%% This file may be distributed and modified under the terms of the -%% LaTeX Public Project License, version 1.3c or any later version. -%% The most recent version of this license is available online at +%% This file may be distributed and modified under the terms +%% of the LaTeX Public Project License, version 1.3c or any +%% later version. The most recent version of this license is +%% available online at %% -%% https://www.latex-project.org/lppl/. +%% https://www.latex-project.org/lppl/. %% -%% This work has the LPPL status "maintained," and the current -%% maintainer is the package author, Conrad Kosowsky. He can be -%% reached at kosowsky.latex@gmail.com. The work consists of the -%% following items: +%% This Work has the LPPL status "maintained," and the current +%% maintainer is the package author, Conrad Kosowsky. He can +%% be reached at kosowsky.latex@gmail.com. %% -%% (1) the base file mathfont_code.dtx; +%% THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS +%% OR IMPLIED WARRANTY, INCLUDING THE IMPLIED WARRANTIES +%% OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +%% IF THE SOFTWARE IS DEFECTIVE, YOU AGREE TO ASSUME THE +%% COST FOR ANY REPAIR OR CORRECTION. %% -%% (2) the package code contained in mathfont.sty; +%% BY USING OR DISTRIBUTING THIS SOFTWARE, YOU AGREE +%% TO RELEASE THE PACKAGE AUTHOR FROM ANY LIABILITY FOR +%% DAMAGES ARISING OUT OF YOUR USE OF THE SOFTWARE. YOU +%% AGREE TO DO SO TO THE MAXIMUM EXTENT ALLOWED UNDER +%% APPLICABLE LAW AND EVEN IF THE PACKAGE AUTHOR HAS +%% BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. %% -%% (3) the derived files mathfont_symbol_list.tex, -%% mathfont_user_guide.tex, mathfont_heading.tex, and -%% mathfont_doc_patch.tex; +%% See also the "No Warranty" section of the LaTeX Project +%% Public License. In releasing the package author from +%% liability, you also release from liability any third +%% parties who distribute the software under the terms +%% of the LaTeX Project Public License. Derivative works +%% based on this package may come with their own license or +%% terms of use, and the package author is not responsible +%% for any third-party software. %% -%% (4) the pdf documentation files mathfont_code.pdf, -%% mathfont_symbol_list.pdf, and mathfont_user_guide.pdf; +%% For more information, see the mathfont_code.dtx. %% -%% (5) all other files created through the configuration process -%% such as mathfont.idx and mathfont.ind; and -%% -%% (6) the associated README.txt file. -%% -%% For more information, see the original mathfont.dtx file. To -%% install mathfont on your computer, run mathfont_code.dtx through -%% LaTeX and place the derived file mathfont.sty in a directory -%% searchable by TeX. +%% Happy TeXing! %% \documentclass[12pt,twoside]{article} \makeatletter -\let\@@imath\imath -\let\@@jmath\jmath \usepackage[margin=72.27pt]{geometry} +\usepackage{tabularx} +\usepackage{booktabs} \usepackage{multicol} \usepackage{graphicx} \usepackage{mathfont} -\mathfont[greekupper]{Courier New} -\mathfont[greeklower,delimiters,bigops]{Times New Roman} -\mathfont[agreekupper,extsymbols,bb,cal,frak,bcal,bfrak]{Symbola} -\mathfont[agreeklower=roman]{Didot Bold} -\mathfont[hebrew]{New Peninim MT} -\mathfont[cyrillicupper]{EB Garamond} -\mathfont[cyrilliclower=roman]{Comic Sans MS} -\mathfont[symbols]{Arial} -\mathfont[arrows,extbigops]{STIXGeneral} -\mathfont[diacritics,lower]{Baskerville} -\usepackage{shortvrb} +\mathfont[agreeklower=upright,agreekupper]{Crimson} +\mathfont[hebrew]{Coelacanth} +\mathfont[\M@normalkeys,\M@letterlikekeys]{STIXGeneral} +\usepackage{shortvrb,doc} \MakeShortVerb{|} -\pretolerance=20 -\hyphenpenalty=10 -\exhyphenpenalty=5 -\brokenpenalty=0 -\finalhyphendemerits=300 -\doublehyphendemerits=500 \raggedcolumns \parskip=0pt \smallskipamount=2pt plus 1pt minus 1pt \multicolsep=0pt \premulticols=0pt +\fboxrule=1pt +\CharmLine{8747 1200 1700 * * * * * * * * * * * * * * + * * * * * * * * * * * * * * * * * * * * } +\CharmLine{8748 1200 1700 * * * * * * * * * * * * * * + * * * * * * * * * * * * * * * * * * * * } +\CharmLine{8749 1200 1700 * * * * * * * * * * * * * * + * * * * * * * * * * * * * * * * * * * * } +\CharmLine{8750 1200 1700 * * * * * * * * * * * * * * + * * * * * * * * * * * * * * * * * * * * } +\CharmLine{8751 1200 1700 * * * * * * * * * * * * * * + * * * * * * * * * * * * * * * * * * * * } +\CharmLine{8752 1200 1700 * * * * * * * * * * * * * * + * * * * * * * * * * * * * * * * * * * * } \begin{document} \def\documentname{Symbol List} +\def\showabstract{1} \input mathfont_heading.tex -The \textsf{mathfont} package acts on some 300 alphanumeric characters and 500 general math symbols, and this document lists all such symbols besides Latin characters and Arabic numerals. The characters are organized by keyword, and when the user calls |\mathfont| on one of the keyword classes below, the package acts on every control sequence listed under that keyword. It changes the math-mode font of the character-commands that already exist in \LaTeX, and for the control sequences that do not exist in \LaTeX, it defines them to be new characters for use in math mode. Unlike most character-providing packages, \textsf{mathfont} does not provide extra symbols by default, and users can access additional control sequences only once they act |\mathfont| on some keyword-option. Of course, typesetting these symbols depends on having a font that contains them, and most major unicode fonts lack many or most of the symbols in this document. Choose your font wisely! Finally, as stated in the user guide, the \texttt{delimiters}, \texttt{bigops}, and |\big|\argtext{symbol} (such as |\bigvee|) characters do not in general change size in different mathematical contexts. I hope to address this limitation in future package updates. For documentation of user-level commands, see |mathfont_user_guide.pdf|, and for version history and code implementation, see |mathfont_code.pdf|. Both documentation files are included with the \textsf{mathfont} installation and available on \textsc{ctan}. +The \textsf{mathfont} package provides tools to access several hundred characters for math typesetting, and this document lists these symbols along with the control sequences to access them. To get access to the symbols from a section of this document, call |\mathfont| with the keyword-option for that section and the name of a font that contains those symbols. The package does not define any math symbols until you call |\mathfont| or |\setfont| (or load \textsf{mathfont} with a font name as package option), and if you see a symbol or control sequence here that is not part of standard \LaTeX, you will not be able to access it until you call |\mathfont| on the corresponding keyword. Further, \textsf{mathfont} does not come with or load any fonts by itself, so you are responsible for the fonts. Not all fonts contain all math symbols, so choose your font wisely!\footnote{Besides letters and digits, most unicode text fonts should contain diacritics, delimiters, and the basic math characters in the keyword |symbols|. Text fonts will often contain square root and basic operator symbols, but they may not be suitable for math typesetting. Greek characters are hit or miss, and it is unusual for English text fonts to contain Cyrillic, Hebrew, ancient Greek, arrows, letterlike characters, or any extended (keywords |extbigops| and |extsymbols|) set of symbols. After you load \textsf{mathfont}, \TeX\ will print a message to the terminal if you try to typeset a missing character from some font.} This document shows ancient Greek in Crimson, Hebrew in Coelacanth, and all other math characters in STIXGeneral. + +\begin{figure}[t] +\centerline{\bfseries Table 1: Characters Defined by Multiple Keywords\strut} +\begin{tabularx}\textwidth{XXX}\toprule +Character & Keywords & Default Font\\\midrule +\vrb\increment & \texttt{greekupper} & \texttt{symbols}\\ + & \texttt{symbols} & \\\midrule +\vrb\nabla & \texttt{greekupper} & \texttt{(ext)symbols}\\ + & \texttt{symbols} with Lua\TeX & \\ + & \texttt{extsymbols} with \XeTeX & \\\midrule +\expandafter\vrb\string| & \texttt{symbols} & \texttt{symbols} normally\\ + & \texttt{delimiters} with Lua\TeX & \texttt{delimiters} after |\left|, \hfil\penalty0|\right|, etc.\\\midrule +\vrb\simeq\ and \vrb\cong & \texttt{symbols} & \texttt{extsymbols} \\ + & \texttt{extsymbols} & \\\bottomrule +\end{tabularx} +\end{figure} + +As of version 2.0, \textsf{mathfont} artificially adds resizable delimiters and big operator characters to text fonts when you complile with Lua\LaTeX. In this case, square root symbols will automatically resize, big operators will appear larger in |\displaystyle|, and you can use |\left|, |\right|, and |\big|, etc.\ with characters from the keyword |delimiters|. If you use \XeTeX, \textsf{mathfont} will not create large variants of characters, and your unicode math symbols will all be the same size as they appear in the font. In this case, you may be best off sticking with the Computer Modern defaults for resizable characters provided they don't clash with the rest of your document. Throughout this document, anything labeled ``Lua\TeX\ only'' means that \textsf{mathfont} provides this functionality only if you enable Lua-based font adjustments. If you load \textsf{mathfont} with the |no-adjust| option, you will not be able to access these features the same as if you compile with \XeTeX. -This document does not contain tables for the keywords |upper|, |lower|, and |digits|. The first of these keywords contains all capital Latin letters, and the second contains all lower-case Latin letters as well as the ``mathematical i'' $\@@imath$ coded with |\imath| and ``mathematical j'' $\@@jmath$ coded with |\jmath|. The |digits| category contains the digits 0 through 9. Unlike the \LaTeX\ kernel, \textsf{mathfont} declares both |\imath| and |\jmath| as math alphabet characters, so the package's local font-change commands will adjust the font of these two symbols. +A few characters appear multiple times in this list. When that happens, it means that \textsf{mathfont} defines the control sequence for multiple keywords. If you call |\mathfont| for only one of those keywords, your symbol will appear in the font associated with that keyword. If you call |\mathfont| on multiple keywords, the package uses the font associated with the default keyword/font for that character. Table~1 lists the default keyword for each command that appears multiple times in this document. If you need unicode encoding slot numbers for character metric adjustments, each symbol corresponds to its standard unicode encoding value, with the exception of the fake angle brackets. When you typeset with Lua\TeX, \textsf{mathfont} artificially adds |\fakelangle|, |\fakerangle|, |\fakellangle|, and |\fakerrangle| to the font in encoding slots 1,044,508--1,044,511 respectively. + +\bigskip\centerline{\vrule height 0.5pt width 2.5in}\medskip\smallskip \catcode`\|=12 -\parskip=1pt -\blockheader{diacritics}{Accent}{Baskerville} +\blockheader{lower}{Lower-Case Latin} \begin{multicols}{3} -\makeaccent{\acute} -\makeaccent{\aacute} -\makeaccent{\dot} -\makeaccent{\ddot} -\makeaccent{\grave} -\makeaccent{\breve} -\makeaccent{\hat} -\makeaccent{\check} -\makeaccent{\bar} -\makeaccent{\mathring} -\makeaccent{\tilde} +\charexample a +\charexample b +\charexample c +\charexample d +\charexample e +\charexample f +\charexample g +\charexample h +\charexample i +\charexample j +\charexample k +\charexample l +\charexample m +\charexample n +\charexample o +\charexample p +\charexample q +\charexample r +\charexample s +\charexample t +\charexample u +\charexample v +\charexample w +\charexample x +\charexample y +\charexample z +\charexample\hbar +\charexample\imath +\charexample\jmath \end{multicols} -\blockheader{greekupper}{Upper-Case Greek}{Courier New} +\blockheader{upper}{Upper-Case Latin} \begin{multicols}{3} -\makechar{\Alpha} -\makechar{\Beta} -\makechar{\Gamma} -\makechar{\Delta} -\makechar{\Epsilon} -\makechar{\Zeta} -\makechar{\Eta} -\makechar{\Theta} -\makechar{\Iota} -\makechar{\Kappa} -\makechar{\Lambda} -\makechar{\Mu} -\makechar{\Nu} -\makechar{\Xi} -\makechar{\Omicron} -\makechar{\Pi} -\makechar{\Rho} -\makechar{\Sigma} -\makechar{\Tau} -\makechar{\Upsilon} -\makechar{\Phi} -\makechar{\Chi} -\makechar{\Psi} -\makechar{\Omega} -\makechar{\varTheta} +\charexample A +\charexample B +\charexample C +\charexample D +\charexample E +\charexample F +\charexample G +\charexample H +\charexample I +\charexample J +\charexample K +\charexample L +\charexample M +\charexample N +\charexample O +\charexample P +\charexample Q +\charexample R +\charexample S +\charexample T +\charexample U +\charexample V +\charexample W +\charexample X +\charexample Y +\charexample Z \end{multicols} -\blockheader{greeklower}{Lower-Case Greek}{Times New Roman} +\blockheader{diacritics}{Accent} \begin{multicols}{3} -\makechar{\alpha} -\makechar{\beta} -\makechar{\gamma} -\makechar{\delta} -\makechar{\epsilon} -\makechar{\zeta} -\makechar{\eta} -\makechar{\theta} -\makechar{\iota} -\makechar{\kappa} -\makechar{\lambda} -\makechar{\mu} -\makechar{\nu} -\makechar{\xi} -\makechar{\omicron} -\makechar{\pi} -\makechar{\rho} -\makechar{\sigma} -\makechar{\tau} -\makechar{\upsilon} -\makechar{\phi} -\makechar{\chi} -\makechar{\psi} -\makechar{\omega} -\makechar{\varbeta} -\makechar{\varepsilon} -\makechar{\vartheta} -\makechar{\varrho} -\makechar{\varsigma} -\makechar{\varphi} +\accentexample\acute +\accentexample\aacute +\accentexample\dot +\accentexample\ddot +\accentexample\grave +\accentexample\breve +\accentexample\hat +\accentexample\check +\accentexample\bar +\accentexample\mathring +\accentexample\tilde \end{multicols} -\blockheader{agreekupper}{Upper-Case Ancient Greek}{Symbola} +\blockheader{digits}{Arabic Numeral} \begin{multicols}{3} -\makechar{\Heta} -\makechar{\Sampi} -\makechar{\Digamma} -\makechar{\Koppa} -\makechar{\Stigma} -\makechar{\Sho} -\makechar{\San} -\makechar{\varSampi} -\makechar{\varDigamma} -\makechar{\varKoppa} +\charexample0 +\charexample1 +\charexample2 +\charexample3 +\charexample4 +\charexample5 +\charexample6 +\charexample7 +\charexample8 +\charexample9 \end{multicols} -\blockheader{agreeklower}{Lower-Case Ancient Greek}{Didot Bold} +\blockheader{greekupper}{Upper-Case Greek} \begin{multicols}{3} -\makechar{\heta} -\makechar{\sampi} -\makechar{\digamma} -\makechar{\koppa} -\makechar{\stigma} -\makechar{\sho} -\makechar{\san} -\makechar{\varsampi} -\makechar{\vardigamma} -\makechar{\varkoppa} +\charexample\Alpha +\charexample\Beta +\charexample\Gamma +\charexample\Delta +\charexample\Epsilon +\charexample\Zeta +\charexample\Eta +\charexample\Theta +\charexample\Iota +\charexample\Kappa +\charexample\Lambda +\charexample\Mu +\charexample\Nu +\charexample\Xi +\charexample\Omicron +\charexample\Pi +\charexample\Rho +\charexample\Sigma +\charexample\Tau +\charexample\Upsilon +\charexample\Phi +\charexample\Chi +\charexample\Psi +\charexample\Omega +\charexample\varTheta +\charexample\increment +\charexample\nabla \end{multicols} -\blockheader{cyrillicupper}{Upper-Case Cyrillic}{EB Garamond} +\blockheader{greeklower}{Lower-Case Greek} \begin{multicols}{3} -\makechar{\cyrA} -\makechar{\cyrBe} -\makechar{\cyrVe} -\makechar{\cyrGhe} -\makechar{\cyrDe} -\makechar{\cyrIe} -\makechar{\cyrZhe} -\makechar{\cyrZe} -\makechar{\cyrI} -\makechar{\cyrKa} -\makechar{\cyrEl} -\makechar{\cyrEm} -\makechar{\cyrEn} -\makechar{\cyrO} -\makechar{\cyrPe} -\makechar{\cyrEr} -\makechar{\cyrEs} -\makechar{\cyrTe} -\makechar{\cyrU} -\makechar{\cyrEf} -\makechar{\cyrHa} -\makechar{\cyrTse} -\makechar{\cyrChe} -\makechar{\cyrSha} -\makechar{\cyrShcha} -\makechar{\cyrHard} -\makechar{\cyrYeru} -\makechar{\cyrSoft} -\makechar{\cyrE} -\makechar{\cyrYu} -\makechar{\cyrYa} -\makechar{\cyrvarI} +\charexample\alpha +\charexample\beta +\charexample\gamma +\charexample\delta +\charexample\epsilon +\charexample\zeta +\charexample\eta +\charexample\theta +\charexample\iota +\charexample\kappa +\charexample\lambda +\charexample\mu +\charexample\nu +\charexample\xi +\charexample\omicron +\charexample\pi +\charexample\rho +\charexample\sigma +\charexample\tau +\charexample\upsilon +\charexample\phi +\charexample\chi +\charexample\psi +\charexample\omega +\charexample\varbeta +\charexample\varepsilon +\charexample\varkappa +\charexample\vartheta +\charexample\varrho +\charexample\varsigma +\charexample\varphi \end{multicols} -\blockheader{cyrilliclower}{Lower-Case Cyrillic}{Comic Sans MS% - \footnote{Yes, you too can now create beautifully spaced mathematics in Comic Sans!}} +\blockheader{agreekupper}{Upper-Case Ancient Greek} \begin{multicols}{3} -\makechar{\cyra} -\makechar{\cyrbe} -\makechar{\cyrve} -\makechar{\cyrghe} -\makechar{\cyrde} -\makechar{\cyrie} -\makechar{\cyrzhe} -\makechar{\cyrze} -\makechar{\cyri} -\makechar{\cyrka} -\makechar{\cyrel} -\makechar{\cyrem} -\makechar{\cyren} -\makechar{\cyro} -\makechar{\cyrpe} -\makechar{\cyrer} -\makechar{\cyres} -\makechar{\cyrte} -\makechar{\cyru} -\makechar{\cyref} -\makechar{\cyrha} -\makechar{\cyrtse} -\makechar{\cyrche} -\makechar{\cyrsha} -\makechar{\cyrshcha} -\makechar{\cyrhard} -\makechar{\cyryeru} -\makechar{\cyrsoft} -\makechar{\cyre} -\makechar{\cyryu} -\makechar{\cyrya} -\makechar{\cyrvari} +\charexample\Heta +\charexample\Sampi +\charexample\Digamma +\charexample\Koppa +\charexample\Stigma +\charexample\Sho +\charexample\San +\charexample\varSampi +\charexample\varDigamma +\charexample\varKoppa \end{multicols} -\blockheader{hebrew}{Hebrew}{New Peninim MT} +\blockheader{agreeklower}{Lower-Case Ancient Greek} \begin{multicols}{3} -\makechar{\aleph} -\makechar{\beth} -\makechar{\gimel} -\makechar{\daleth} -\makechar{\he} -\makechar{\vav} -\makechar{\zayin} -\makechar{\het} -\makechar{\tet} -\makechar{\yod} -\makechar{\kaf} -\makechar{\lamed} -\makechar{\mem} -\makechar{\nun} -\makechar{\samekh} -\makechar{\ayin} -\makechar{\pe} -\makechar{\tsadi} -\makechar{\qof} -\makechar{\resh} -\makechar{\shin} -\makechar{\tav} -\makechar{\varkaf} -\makechar{\varmem} -\makechar{\varnun} -\makechar{\varpe} -\makechar{\vartsadi} +\charexample\heta +\charexample\sampi +\charexample\digamma +\charexample\koppa +\charexample\stigma +\charexample\sho +\charexample\san +\charexample\varsampi +\charexample\vardigamma +\charexample\varkoppa \end{multicols} -\blockheader{symbols}{Basic Math}{Arial} +\blockheader{cyrillicupper}{Upper-Case Cyrillic} \begin{multicols}{3} -\makechar{.} -\makechar{@} -\let\par\relax -\makechar{\#}\footnote{When it acts on \vrb\#, \vrb\%, and \vrb\&, \textsf{mathfont} redefines them as robust commands that expand to their usual \vrb\char\ definition in horizontal mode and a math symbol in math mode. This prevents any changes to their font outside of math mode and is how other commands such as \vrb\$ or \vrb\P\ function in both math mode and horizontal mode.}\@@par -\makechar{\$}\footnote{Technically, \textsf{mathfont} doesn't redefine \vrb\$, \vrb\P, \vrb\S, \vrb\pounds, \vrb\dag, or \vrb\ddag. The package recodes the character-command that these macros expand to when in math mode.}\@par -\makechar{\%} -\makechar{\&} -\makechar{\P} -\makechar{\S} -\makechar{\pounds} -\makechar{|} -\makechar{\neg} -\makechar{\infty} -\makechar{\partial} -\makechar{\mathbackslash} -\makechar{\degree} -\makechar{\increment} -\makechar{\hbar} -\makechar{'} -\makechar{"} -\let\par\relax -\makechar{\comma}\footnote{In addition to the comma and colon punctuation marks, the package defines \vrb\comma\ and \vrb\colon. The difference lies in the spacing. \TeX\ treats the comma and colon keystrokes as \vrb\mathpunct\ and \vrb\mathrel\ types respectively. The package codes the \vrb\comma\ and \vrb\colon\ control sequences as \vrb\mathord\ and \vrb\mathpunct\ types respectively, so both control sequence result in less space than the corresponding keystroke. I recommend using \vrb\comma\ to typeset commas in large real numbers and \vrb\colon\ to typeset colon punctuation marks, for example following a function or to indicate a subset specification.}\@par -\makechar{+} -\makechar{-} -\makechar{*} -\makechar{\times} -\makechar{/} -\makechar{\div} -\makechar{\pm} -\makechar{\bullet} -\makechar{\dag} -\makechar{\ddag} -\makechar{\cdot} -\makechar{\setminus} -\makechar{=} -\makechar{<} -\makechar{>} -\makechar{\leq} -\makechar{\geq} -\makechar{\sim} -\makechar{\approx} -\makechar{\equiv} -\makechar{\mid} -\makechar{\parallel} -\makechar{:} -\makechar{?} -\makechar{!} -\makechar{,} -\makechar{;} -\makechar{\colon} -\makechar{\mathellipsis} +\charexample\cyrA +\charexample\cyrBe +\charexample\cyrVe +\charexample\cyrGhe +\charexample\cyrDe +\charexample\cyrIe +\charexample\cyrZhe +\charexample\cyrZe +\charexample\cyrI +\charexample\cyrKa +\charexample\cyrEl +\charexample\cyrEm +\charexample\cyrEn +\charexample\cyrO +\charexample\cyrPe +\charexample\cyrEr +\charexample\cyrEs +\charexample\cyrTe +\charexample\cyrU +\charexample\cyrEf +\charexample\cyrHa +\charexample\cyrTse +\charexample\cyrChe +\charexample\cyrSha +\charexample\cyrShcha +\charexample\cyrHard +\charexample\cyrYeru +\charexample\cyrSoft +\charexample\cyrE +\charexample\cyrYu +\charexample\cyrYa +\charexample\cyrvarI \end{multicols} -\blockheader{extsymbols}{Extended Math}{Symbola} +\blockheader{cyrilliclower}{Lower-Case Cyrillic} \begin{multicols}{3} -\makechar{\wp} -\makechar{\Re} -\makechar{\Im} -\makechar{\ell} -\makechar{\forall} -\makechar{\exists} -\makechar{\emptyset} -\makechar{\nabla} -\makechar{\in} -\makechar{\ni} -\makechar{\mp} -\makechar{\angle} -\makechar{\top} -\makechar{\bot} -\makechar{\vdash} -\makechar{\dashv} -\makechar{\flat} -\makechar{\natural} -\makechar{\sharp} -\makechar{\fflat} -\makechar{\ssharp} -\let\par\relax -\makechar{\bclubsuit}\footnote{Also \vrb\clubsuit.}\@par -\makechar{\bdiamondsuit} -\makechar{\bheartsuit} -\let\par\relax -\makechar{\bspadesuit}\footnote{Also \vrb\spadesuit.}\@par -\makechar{\wclubsuit} -\let\par\relax -\makechar{\wdiamondsuit}\footnote{Also \vrb\diamondsuit.}\@@par -\makechar{\wheartsuit}\footnote{Also \vrb\heartsuit.}\@par -\makechar{\wspadesuit} -\makechar{\wedge} -\makechar{\vee} -\makechar{\cap} -\makechar{\cup} -\makechar{\sqcap} -\makechar{\sqcup} -\makechar{\amalg} -\makechar{\wr} -\makechar{\ast} -\makechar{\star} -\makechar{\diamond} -\makechar{\varcdot} -\makechar{\varsetminus} -\makechar{\oplus} -\makechar{\otimes} -\makechar{\ominus} -\makechar{\odiv} -\makechar{\oslash} -\makechar{\odot} -\makechar{\sqplus} -\makechar{\sqtimes} -\makechar{\sqminus} -\makechar{\sqdot} -\makechar{\in} -\makechar{\ni} -\makechar{\subset} -\makechar{\supset} -\makechar{\subseteq} -\makechar{\supseteq} -\makechar{\sqsubset} -\makechar{\sqsupset} -\makechar{\sqsubseteq} -\makechar{\sqsupseteq} -\makechar{\triangleleft} -\makechar{\triangleright} -\makechar{\trianglelefteq} -\makechar{\trianglerighteq} -\makechar{\propto} -\makechar{\bowtie} -\makechar{\hourglass} -\makechar{\therefore} -\makechar{\because} -\makechar{\ratio} -\makechar{\proportion} -\makechar{\ll} -\makechar{\gg} -\makechar{\lll} -\makechar{\ggg} -\makechar{\leqq} -\makechar{\geqq} -\makechar{\lapprox} -\makechar{\gapprox} -\makechar{\simeq} -\makechar{\eqsim} -\let\par\relax -\makechar{\simeqq}\footnote{Also \vrb\cong.}\@par -\makechar{\approxeq} -\makechar{\sssim} -\makechar{\seq} -\makechar{\doteq} -\makechar{\coloneq} -\makechar{\eqcolon} -\makechar{\ringeq} -\makechar{\arceq} -\makechar{\wedgeeq} -\makechar{\veeeq} -\makechar{\stareq} -\makechar{\triangleeq} -\makechar{\defeq} -\makechar{\qeq} -\makechar{\lsim} -\makechar{\gsim} -\makechar{\prec} -\makechar{\succ} -\makechar{\preceq} -\makechar{\succeq} -\makechar{\preceqq} -\makechar{\succeqq} -\makechar{\precsim} -\makechar{\succsim} -\makechar{\precapprox} -\makechar{\succapprox} -\makechar{\precprec} -\makechar{\succsucc} -\makechar{\asymp} -\makechar{\nin} -\makechar{\nni} -\makechar{\nsubset} -\makechar{\nsupset} -\makechar{\nsubseteq} -\makechar{\nsupseteq} -\makechar{\subsetneq} -\makechar{\supsetneq} -\makechar{\nsqsubseteq} -\makechar{\nsqsupseteq} -\makechar{\sqsubsetneq} -\makechar{\sqsupsetneq} -\makechar{\neq} -\makechar{\nl} -\makechar{\ng} -\makechar{\nleq} -\makechar{\ngeq} -\makechar{\lneq} -\makechar{\gneq} -\makechar{\lneqq} -\makechar{\gneqq} -\makechar{\ntriangleleft} -\makechar{\ntriangleright} -\makechar{\ntrianglelefteq} -\makechar{\ntrianglerighteq} -\makechar{\nsim} -\makechar{\napprox} -\makechar{\nsimeq} -\makechar{\nsimeqq} -\makechar{\simneqq} -\makechar{\nlsim} -\makechar{\ngsim} -\makechar{\lnsim} -\makechar{\gnsim} -\makechar{\lnapprox} -\makechar{\gnapprox} -\makechar{\nprec} -\makechar{\nsucc} -\makechar{\npreceq} -\makechar{\nsucceq} -\makechar{\precneq} -\makechar{\succneq} -\makechar{\precneqq} -\makechar{\succneqq} -\makechar{\precnsim} -\makechar{\succnsim} -\makechar{\precnapprox} -\makechar{\succnapprox} -\makechar{\nequiv} +\charexample\cyra +\charexample\cyrbe +\charexample\cyrve +\charexample\cyrghe +\charexample\cyrde +\charexample\cyrie +\charexample\cyrzhe +\charexample\cyrze +\charexample\cyri +\charexample\cyrka +\charexample\cyrel +\charexample\cyrem +\charexample\cyren +\charexample\cyro +\charexample\cyrpe +\charexample\cyrer +\charexample\cyres +\charexample\cyrte +\charexample\cyru +\charexample\cyref +\charexample\cyrha +\charexample\cyrtse +\charexample\cyrche +\charexample\cyrsha +\charexample\cyrshcha +\charexample\cyrhard +\charexample\cyryeru +\charexample\cyrsoft +\charexample\cyre +\charexample\cyryu +\charexample\cyrya +\charexample\cyrvari \end{multicols} -\blockheader{delimiters}{Delimiter}{Times New Roman} +\blockheader{hebrew}{Hebrew} \begin{multicols}{3} -\makechar{(} -\makechar{)} -\makechar{[} -\makechar{]} -\makechar{\leftbrace} -\makechar{\rightbrace} +\charexample\aleph +\charexample\beth +\charexample\gimel +\charexample\daleth +\charexample\he +\charexample\vav +\charexample\zayin +\charexample\het +\charexample\tet +\charexample\yod +\charexample\kaf +\charexample\lamed +\charexample\mem +\charexample\nun +\charexample\samekh +\charexample\ayin +\charexample\pe +\charexample\tsadi +\charexample\qof +\charexample\resh +\charexample\shin +\charexample\tav +\charexample\varkaf +\charexample\varmem +\charexample\varnun +\charexample\varpe +\charexample\vartsadi \end{multicols} -\blockheader{arrows}{Arrow}{STIXGeneral} +\medskip +\def\temp{; shown in \texttt{\vrb\big}, etc.\ sizes} +\blockheader{delimiters\aftergroup\temp}{Delimiter} +\medskip +\begin{multicols}{3} +\delimexample( +\delimexample) +\delimexample[ +\delimexample] +\delimexample{\{\ifmmode\else\space(Lua\TeX\ only)\fi} +\delimexample{\}\ifmmode\else\space(Lua\TeX\ only)\fi} +\delimexample{|\,\ifmmode\else\space(Lua\TeX\ only)\fi} +\delimexample\lguil +\delimexample\rguil +\delimexample\llguil +\delimexample\rrguil +\luadelimexample\fakelangle +\luadelimexample\fakerangle +\luadelimexample\fakellangle +\luadelimexample\fakerrangle +\hbox to \hsize{\hbox to 0.8in{$\leftbrace$\hfil}\vrb\leftbrace\hfil} +\hbox to \hsize{\hbox to 0.8in{$\rightbrace$\hfil}\vrb\rightbrace\hfil} +\end{multicols} +\medskip +\blockheader{radical}{Square Root} +\smallskip \begin{multicols}{2} -\let\par\relax -\makechar{\rightarrow}\footnote{Also \vrb\to.}\@par -\makechar{\nrightarrow} -\makechar{\Rightarrow} -\makechar{\nRightarrow} -\makechar{\Rrightarrow} -\makechar{\longrightarrow} -\makechar{\Longrightarrow} -\let\par\relax -\makechar{\rightbararrow}\footnote{Also \vrb\mapsto.}\@par -\makechar{\Rightbararrow} -\let\par\relax -\makechar{\longrightbararrow}\footnote{Also \vrb\longmapsto.}\@par -\makechar{\Longrightbararrow} -\makechar{\hookrightarrow} -\makechar{\rightdasharrow} -\makechar{\rightharpoonup} -\makechar{\rightharpoondown} -\makechar{\rightarrowtail} -\makechar{\rightoplusarrow} -\makechar{\rightwavearrow} -\makechar{\rightsquigarrow} -\makechar{\longrightsquigarrow} -\makechar{\looparrowright} -\makechar{\curvearrowright} -\makechar{\circlearrowright} -\makechar{\twoheadrightarrow} -\makechar{\rightarrowtobar} -\makechar{\rightwhitearrow} -\makechar{\rightrightarrows} -\makechar{\rightrightrightarrows} -\let\par\relax -\makechar{\leftarrow}\footnote{Also \vrb\from.}\@par -\makechar{\nleftarrow} -\makechar{\Leftarrow} -\makechar{\nLeftarrow} -\makechar{\Lleftarrow} -\makechar{\longleftarrow} -\makechar{\Longleftarrow} -\let\par\relax -\makechar{\leftbararrow}\footnote{Also \vrb\mapsfrom.}\@par -\makechar{\Leftbararrow} -\let\par\relax -\makechar{\longleftbararrow}\footnote{Also \vrb\longmapsfrom.}\@par -\makechar{\Longleftbararrow} -\makechar{\hookleftarrow} -\makechar{\leftdasharrow} -\makechar{\leftharpoonup} -\makechar{\leftharpoondown} -\makechar{\leftarrowtail} -\makechar{\leftoplusarrow} -\makechar{\leftwavearrow} -\makechar{\leftsquigarrow} -\makechar{\longleftsquigarrow} -\makechar{\looparrowleft} -\makechar{\curvearrowleft} -\makechar{\circlearrowleft} -\makechar{\twoheadleftarrow} -\makechar{\leftarrowtobar} -\makechar{\leftwhitearrow} -\makechar{\leftleftarrows} -\makechar{\leftleftleftarrows} -\makechar{\leftrightarrow} -\makechar{\Leftrightarrow} -\makechar{\nLeftrightarrow} -\makechar{\longleftrightarrow} -\makechar{\Longleftrightarrow} -\makechar{\leftrightwavearrow} -\makechar{\leftrightarrows} -\makechar{\leftrightharpoons} -\makechar{\leftrightarrowstobar} -\makechar{\rightleftarrows} -\makechar{\rightleftharpoons} -\makechar{\uparrow} -\makechar{\Uparrow} -\makechar{\Uuparrow} -\makechar{\upbararrow} -\makechar{\updasharrow} -\makechar{\upharpoonleft} -\makechar{\upharpoonright} -\makechar{\twoheaduparrow} -\makechar{\uparrowtobar} -\makechar{\upwhitearrow} -\makechar{\upwhitebararrow} -\makechar{\upuparrows} -\makechar{\downarrow} -\makechar{\Downarrow} -\makechar{\Ddownarrow} -\makechar{\downbararrow} -\makechar{\downdasharrow} -\makechar{\zigzagarrow} -\makechar{\downharpoonleft} -\makechar{\downharpoonright} -\makechar{\twoheaddownarrow} -\makechar{\downarrowtobar} -\makechar{\downwhitearrow} -\makechar{\downdownarrows} -\makechar{\updownarrow} -\makechar{\Updownarrow} -\makechar{\updownarrows} -\makechar{\downuparrows} -\makechar{\updownharpoons} -\makechar{\downupharpoons} -\makechar{\nearrow} -\makechar{\Nearrow} -\makechar{\nwarrow} -\makechar{\Nwarrow} -\makechar{\searrow} -\makechar{\Searrow} -\makechar{\swarrow} -\makechar{\Swarrow} -\makechar{\nwsearrow} -\makechar{\neswarrow} -\makechar{\lcirclearrow} -\makechar{\rcirclearrow} +\charexample\surd +\def\temp{ (Lua\TeX\ only)\hfill} +\charexample{\sqrt{\ifmmode\mkern 12mu\vphantom{1}\else\temp\fi}} \end{multicols} -\blockheader{bigops}{Big Operator}{Times New Roman} +\blockheader{bigops}{Big Operator} +\smallskip +\begin{multicols}{2} +\operatorexample\sum +\operatorexample\prod +\operatorexample\intop +\end{multicols} +\medskip +\blockheader{extbigops}{Extended Big Operators} +\smallskip \begin{multicols}{3} -\makechar{\sum} -\makechar{\prod} -\makechar{\intop} +\operatorexample\coprod +\operatorexample\bigvee +\operatorexample\bigwedge +\operatorexample\bigcap +\operatorexample\bigcup +\operatorexample\bigoplus +\operatorexample\bigotimes +\operatorexample\bigodot +\operatorexample\bigsqcap +\operatorexample\bigsqcup +\operatorexample\iint +\operatorexample\iiint +\operatorexample\oint +\operatorexample\oiint +\operatorexample\oiiint \end{multicols} -\blockheader{extbigops}{Extended Big Operators}{STIXGeneral} +\medskip +\blockheader{symbols}{Basic Math} \begin{multicols}{3} -\makechar{\coprod} -\makechar{\bigvee} -\makechar{\bigwedge} -\makechar{\bigcup} -\makechar{\bigcap} -\makechar{\iint} -\makechar{\iiint} -\makechar{\oint} -\makechar{\oiint} -\makechar{\oiiint} -\makechar{\bigoplus} -\makechar{\bigotimes} -\makechar{\bigodot} -\makechar{\bigsqcap} -\makechar{\bigsqcup} +\charexample. +\charexample @ +\let\par\relax +\charexample\# +\charexample\$ +\charexample\% +\charexample\& +\charexample\P +\charexample\S +\charexample\pounds +\charexample| +\charexample\neg +\charexample\infty +\charexample\partial +\charexample\mathbackslash +\charexample\degree +\charexample\increment +\def\temp{ (Lua\TeX only)} +\charexample{\nabla\ifmmode\else\temp\fi} +\charexample' +\charexample\prime +\charexample" +\charexample+ +\charexample- +\charexample* +\charexample\times +\charexample/ +\charexample\fractionslash +\charexample\div +\charexample\pm +\charexample\bullet +\charexample\dag +\charexample\ddag +\charexample\cdot +\charexample\setminus +\charexample= +\charexample< +\charexample> +\charexample\leq +\charexample\geq +\charexample\sim +\charexample\approx +\charexample\simeq +\charexample\equiv +\charexample\cong +\charexample\mid +\charexample\parallel +\charexample! +\charexample? +\charexample{,\ifmmode\else\phantom{\texttt{comma}} (as \rlap{\vrb\mathpunct)}\fi} +\charexample{\comma\ifmmode\else\space(as \vrb\mathord)\fi} +\charexample{:\ifmmode\else\phantom{\texttt{colon}} (as \vrb\mathrel)\fi} +\charexample{\colon\ifmmode\else\space(as \vrb\mathord)\fi} +\charexample; +\charexample\mathellipsis +\end{multicols} +\blockheader{symbols}{Lua\TeX-only (!) Operator} +\begin{multicols}{3} +\operatorexample\bigat +\operatorexample\bighash +\operatorexample\bigdollar +\operatorexample\bigpercent +\operatorexample\bigand +\operatorexample\bigplus +\operatorexample\bigp +\operatorexample\bigq +\operatorexample\bigS +\operatorexample\bigtimes +\operatorexample\bigdiv +\end{multicols} + +\blockheader{extsymbols}{Extended Math} +\begin{multicols}{3} +\charexample\wp +\charexample\Re +\charexample\Im +\charexample\ell +\charexample\forall +\charexample\exists +\charexample\emptyset +\charexample{\nabla\ifmmode\else\space(\XeTeX)\fi} +\charexample\in +\charexample\ni +\charexample\mp +\charexample\angle +\charexample\top +\charexample\bot +\charexample\vdash +\charexample\dashv +\charexample\flat +\charexample\natural +\charexample\sharp +\charexample\bclubsuit +\charexample\clubsuit +\charexample\bdiamondsuit +\charexample\bheartsuit +\charexample\bspadesuit +\charexample\spadesuit +\charexample\wclubsuit +\charexample\wdiamondsuit +\charexample\diamondsuit +\charexample\wheartsuit +\charexample\heartsuit +\charexample\wspadesuit +\charexample\wedge +\charexample\vee +\charexample\cap +\charexample\cup +\charexample\sqcap +\charexample\sqcup +\charexample\amalg +\charexample\wr +\charexample\ast +\charexample\star +\charexample\diamond +\charexample\varcdot +\charexample\varsetminus +\charexample\oplus +\charexample\otimes +\charexample\ominus +\charexample\odiv +\charexample\oslash +\charexample\odot +\charexample\sqplus +\charexample\sqtimes +\charexample\sqminus +\charexample\sqdot +\charexample\in +\charexample\ni +\charexample\subset +\charexample\supset +\charexample\subseteq +\charexample\supseteq +\charexample\sqsubset +\charexample\sqsupset +\charexample\sqsubseteq +\charexample\sqsupseteq +\charexample\triangleleft +\charexample\triangleright +\charexample\trianglelefteq +\charexample\trianglerighteq +\charexample\propto +\charexample\bowtie +\charexample\hourglass +\charexample\therefore +\charexample\because +\charexample\ratio +\charexample\proportion +\charexample\ll +\charexample\gg +\charexample\lll +\charexample\ggg +\charexample\leqq +\charexample\geqq +\charexample\lapprox +\charexample\gapprox +\charexample\simeq +\charexample\eqsim +\charexample\simeqq +\charexample\cong +\charexample\approxeq +\charexample\sssim +\charexample\seq +\charexample\doteq +\charexample\coloneq +\charexample\eqcolon +\charexample\ringeq +\charexample\arceq +\charexample\wedgeeq +\charexample\veeeq +\charexample\stareq +\charexample\triangleeq +\charexample\defeq +\charexample\qeq +\charexample\lsim +\charexample\gsim +\charexample\prec +\charexample\succ +\charexample\preceq +\charexample\succeq +\charexample\preceqq +\charexample\succeqq +\charexample\precsim +\charexample\succsim +\charexample\precapprox +\charexample\succapprox +\charexample\precprec +\charexample\succsucc +\charexample\asymp +\charexample\nin +\charexample\nni +\charexample\nsubset +\charexample\nsupset +\charexample\nsubseteq +\charexample\nsupseteq +\charexample\subsetneq +\charexample\supsetneq +\charexample\nsqsubseteq +\charexample\nsqsupseteq +\charexample\sqsubsetneq +\charexample\sqsupsetneq +\charexample\neq +\charexample\nl +\charexample\ng +\charexample\nleq +\charexample\ngeq +\charexample\lneq +\charexample\gneq +\charexample\lneqq +\charexample\gneqq +\charexample\ntriangleleft +\charexample\ntriangleright +\charexample\ntrianglelefteq +\charexample\ntrianglerighteq +\charexample\nsim +\charexample\napprox +\charexample\nsimeq +\charexample\nsimeqq +\charexample\simneqq +\charexample\nlsim +\charexample\ngsim +\charexample\lnsim +\charexample\gnsim +\charexample\lnapprox +\charexample\gnapprox +\charexample\nprec +\charexample\nsucc +\charexample\npreceq +\charexample\nsucceq +\charexample\precneq +\charexample\succneq +\charexample\precneqq +\charexample\succneqq +\charexample\precnsim +\charexample\succnsim +\charexample\precnapprox +\charexample\succnapprox +\charexample\nequiv +\end{multicols} + +\blockheader{arrows}{Arrow} +\begin{multicols}{2} +\charexample\rightarrow +\charexample\to +\charexample\nrightarrow +\charexample\Rightarrow +\charexample\nRightarrow +\charexample\Rrightarrow +\charexample\longrightarrow +\charexample\Longrightarrow +\charexample\rightbararrow +\charexample\mapsto +\charexample\Rightbararrow +\charexample\longrightbararrow +\charexample\longmapsto +\charexample\Longrightbararrow +\charexample\hookrightarrow +\charexample\rightdasharrow +\charexample\rightharpoonup +\charexample\rightharpoondown +\charexample\rightarrowtail +\charexample\rightoplusarrow +\charexample\rightwavearrow +\charexample\rightsquigarrow +\charexample\longrightsquigarrow +\charexample\looparrowright +\charexample\curvearrowright +\charexample\circlearrowright +\charexample\twoheadrightarrow +\charexample\rightarrowtobar +\charexample\rightwhitearrow +\charexample\rightrightarrows +\charexample\rightrightrightarrows +\charexample\leftarrow +\charexample\from +\charexample\nleftarrow +\charexample\Leftarrow +\charexample\nLeftarrow +\charexample\Lleftarrow +\charexample\longleftarrow +\charexample\Longleftarrow +\charexample\leftbararrow +\charexample\mapsfrom +\charexample\Leftbararrow +\charexample\longleftbararrow +\charexample\longmapsfrom +\charexample\Longleftbararrow +\charexample\hookleftarrow +\charexample\leftdasharrow +\charexample\leftharpoonup +\charexample\leftharpoondown +\charexample\leftarrowtail +\charexample\leftoplusarrow +\charexample\leftwavearrow +\charexample\leftsquigarrow +\charexample\longleftsquigarrow +\charexample\looparrowleft +\charexample\curvearrowleft +\charexample\circlearrowleft +\charexample\twoheadleftarrow +\charexample\leftarrowtobar +\charexample\leftwhitearrow +\charexample\leftleftarrows +\charexample\leftleftleftarrows +\charexample\leftrightarrow +\charexample\Leftrightarrow +\charexample\nLeftrightarrow +\charexample\longleftrightarrow +\charexample\Longleftrightarrow +\charexample\leftrightwavearrow +\charexample\leftrightarrows +\charexample\leftrightharpoons +\charexample\leftrightarrowstobar +\charexample\rightleftarrows +\charexample\rightleftharpoons +\charexample\uparrow +\charexample\Uparrow +\charexample\Uuparrow +\charexample\upbararrow +\charexample\updasharrow +\charexample\upharpoonleft +\charexample\upharpoonright +\charexample\twoheaduparrow +\charexample\uparrowtobar +\charexample\upwhitearrow +\charexample\upwhitebararrow +\charexample\upuparrows +\charexample\downarrow +\charexample\Downarrow +\charexample\Ddownarrow +\charexample\downbararrow +\charexample\downdasharrow +\charexample\zigzagarrow +\charexample\lightningboltarrow +\charexample\downharpoonleft +\charexample\downharpoonright +\charexample\twoheaddownarrow +\charexample\downarrowtobar +\charexample\downwhitearrow +\charexample\downdownarrows +\charexample\updownarrow +\charexample\Updownarrow +\charexample\updownarrows +\charexample\downuparrows +\charexample\updownharpoons +\charexample\downupharpoons +\charexample\nearrow +\charexample\Nearrow +\charexample\nwarrow +\charexample\Nwarrow +\charexample\searrow +\charexample\Searrow +\charexample\swarrow +\charexample\Swarrow +\charexample\nwsearrow +\charexample\neswarrow +\charexample\lcirclearrow +\charexample\rcirclearrow \end{multicols} -\blockheader{bb}{Blackboard Bold}{Symbola and Accessed with \vrb\mathbb} +\blockheader{bb}{Blackboard Bold} \letterlikechars\mathbb \hbox to 10em{\printchars\digits} -\blockheader{cal}{Calligraphic}{Symbola and Accessed with \vrb\mathcal} +\blockheader{cal}{Caligraphic} \letterlikechars\mathcal -\blockheader{frak}{Fraktur}{Symbola and Accessed with \vrb\mathfrak} +\blockheader{frak}{Fraktur} \letterlikechars\mathfrak -\blockheader{bcal}{Bold Calligraphic}{Symbola and Accessed with \vrb\mathbcal} +\blockheader{bcal}{Bold Calligraphic} \letterlikechars\mathbcal -\blockheader{bfrak}{Bold Fraktur}{Symbola and Accessed with \vrb\mathbfrak} +\blockheader{bfrak}{Bold Fraktur} \letterlikechars\mathbfrak diff --git a/Master/texmf-dist/doc/latex/mathfont/mathfont_user_guide.pdf b/Master/texmf-dist/doc/latex/mathfont/mathfont_user_guide.pdf index f18825134bd..9327d64bc22 100644 Binary files a/Master/texmf-dist/doc/latex/mathfont/mathfont_user_guide.pdf and b/Master/texmf-dist/doc/latex/mathfont/mathfont_user_guide.pdf differ diff --git a/Master/texmf-dist/doc/latex/mathfont/mathfont_user_guide.tex b/Master/texmf-dist/doc/latex/mathfont/mathfont_user_guide.tex index 61eb4efb753..d01b1971fb7 100644 --- a/Master/texmf-dist/doc/latex/mathfont/mathfont_user_guide.tex +++ b/Master/texmf-dist/doc/latex/mathfont/mathfont_user_guide.tex @@ -6,42 +6,48 @@ %% %% mathfont_code.dtx (with options: `user') %% -%% This file is file from version 1.6 of the LaTeX package "mathfont," -%% to be used in conjunction with the XeTeX or LuaTeX engines. +%% This file is from version 2.0 of the free and open-source +%% LaTeX package "mathfont," to be used with the XeTeX or +%% LuaTeX engines. (As of version 2.0, LuaTeX is recommended.) %% -%% Copyright 2018-2019 by Conrad Kosowsky +%% Copyright 2018-2021 by Conrad Kosowsky %% -%% This file may be distributed and modified under the terms of the -%% LaTeX Public Project License, version 1.3c or any later version. -%% The most recent version of this license is available online at +%% This file may be distributed and modified under the terms +%% of the LaTeX Public Project License, version 1.3c or any +%% later version. The most recent version of this license is +%% available online at %% -%% https://www.latex-project.org/lppl/. +%% https://www.latex-project.org/lppl/. %% -%% This work has the LPPL status "maintained," and the current -%% maintainer is the package author, Conrad Kosowsky. He can be -%% reached at kosowsky.latex@gmail.com. The work consists of the -%% following items: +%% This Work has the LPPL status "maintained," and the current +%% maintainer is the package author, Conrad Kosowsky. He can +%% be reached at kosowsky.latex@gmail.com. %% -%% (1) the base file mathfont_code.dtx; +%% THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS +%% OR IMPLIED WARRANTY, INCLUDING THE IMPLIED WARRANTIES +%% OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +%% IF THE SOFTWARE IS DEFECTIVE, YOU AGREE TO ASSUME THE +%% COST FOR ANY REPAIR OR CORRECTION. %% -%% (2) the package code contained in mathfont.sty; +%% BY USING OR DISTRIBUTING THIS SOFTWARE, YOU AGREE +%% TO RELEASE THE PACKAGE AUTHOR FROM ANY LIABILITY FOR +%% DAMAGES ARISING OUT OF YOUR USE OF THE SOFTWARE. YOU +%% AGREE TO DO SO TO THE MAXIMUM EXTENT ALLOWED UNDER +%% APPLICABLE LAW AND EVEN IF THE PACKAGE AUTHOR HAS +%% BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. %% -%% (3) the derived files mathfont_symbol_list.tex, -%% mathfont_user_guide.tex, mathfont_heading.tex, and -%% mathfont_doc_patch.tex; +%% See also the "No Warranty" section of the LaTeX Project +%% Public License. In releasing the package author from +%% liability, you also release from liability any third +%% parties who distribute the software under the terms +%% of the LaTeX Project Public License. Derivative works +%% based on this package may come with their own license or +%% terms of use, and the package author is not responsible +%% for any third-party software. %% -%% (4) the pdf documentation files mathfont_code.pdf, -%% mathfont_symbol_list.pdf, and mathfont_user_guide.pdf; +%% For more information, see the mathfont_code.dtx. %% -%% (5) all other files created through the configuration process -%% such as mathfont.idx and mathfont.ind; and -%% -%% (6) the associated README.txt file. -%% -%% For more information, see the original mathfont.dtx file. To -%% install mathfont on your computer, run mathfont_code.dtx through -%% LaTeX and place the derived file mathfont.sty in a directory -%% searchable by TeX. +%% Happy TeXing! %% \documentclass[12pt,twoside]{article} \makeatletter @@ -51,197 +57,230 @@ \usepackage{booktabs} \usepackage{graphicx} \usepackage{tabularx} -\usepackage{shortvrb} -\skip\footins=7pt +\usepackage{multirow} +\usepackage{hyperref} +\usepackage{enumitem} +\SetEnumitemKey{special}{topsep=\smallskipamount, + itemsep=\smallskipamount, + parsep=\z@,partopsep=\z@} +\setlist{special} +\usepackage{doc} \MakeShortVerb{|} -\hyphenpenalty=10 -\pretolerance=20 -\hyphenpenalty=10 -\exhyphenpenalty=5 -\brokenpenalty=0 -\clubpenalty=5 -\widowpenalty=5 -\finalhyphendemerits=300 -\doublehyphendemerits=500 -\renewcommand\textfraction{0.4} +\def\link#1{\href{#1}{\nolinkurl{#1}}} +\newcount\fig +\fig=1\relax +\c@topnumber\@ne + +\def\labelfig#1{\immediate\write\@auxout{\string\makelabel{#1}{\the\fig}}} +\def\makelabel#1#2{\expandafter\gdef\csname fig@#1\endcsname{#2}} + \begin{document} +\def\ref#1{\csname fig@#1\endcsname} \def\documentname{User Guide} +\def\showabstract{1} \input mathfont_heading.tex -Handling fonts in \TeX\ and \LaTeX\ is a notoriously difficult task. Donald Knuth originally designed \TeX\ to support fonts created with Metafont, and while subsequent versions of \TeX\ extended this functionality to postscript fonts, Plain \TeX's font-loading capabilities remain limited. Many, if not most, \LaTeX\ users are unfamiliar with the |fd| files that must be used in font declaration, and the minutiae of \TeX's |\font| primitive can be esoteric and confusing. \LaTeXe's New Font Selection System (\textsc{nfss}) implemented a straightforward syntax for loading and managing fonts, but \LaTeX\ macros overlaying a \TeX\ core face the same versatility issues as Plain \TeX\ itself. Fonts in math mode present a double challenge: after loading a font either in Plain \TeX\ or through the \textsc{nfss}, defining math symbols can be unintuitive for users who are unfamiliar with \TeX's |\mathcode| primitive. More recent engines such as Jonathan Kew's \XeTeX\ and Hans Hagen, et al.'s Lua\TeX\ significantly extend the font-loading capabilities of \TeX.\footnote{Information on \XeTeX\ is available at \texttt{https://tug.org/xetex/}, and information on Lua\TeX\ is available at the official website for Lua\TeX: \texttt{http://www.luatex.org/}.} Both support TrueType and OpenType font formats and provide many additional primitives for managing fonts, and the \textsf{fontspec} package by Will Robertson and Khaled Hosny acts as a front-end for the font management built into these two engines.\footnote{Will Robertson and Khaled Hosny, ``\textsf{fontspec}---Advanced font selection in \XeLaTeX\ and Lua\LaTeX,'' \texttt{https://ctan.org/pkg/fontspec}.} - -The \textsf{mathfont} package applies \textsf{fontspec}'s advances in font selection to mathematics typesetting, and this document explains the package's user-level commands. Section~1 presents the basic functionality and related packages. Section~2 explains how to use the default font-change commands, and users in a hurry will find the most important information here. Section~3 describes the local font-change commands, and section~4 discusses mathematical symbols and aspects of their implementation. Section~5 addresses error messages. For version history and code implementation, see |mathfont_code.pdf|, and for a list of all symbols accessible with \textsf{mathfont}, see |mathfont_symbol_list.pdf|. Both of these documentation files are included with the \textsf{mathfont} installation and are available on \textsc{ctan}. +Handling fonts in \TeX\ and \LaTeX\ is a notoriously difficult task because fonts are complicated objects.\footnote{The last 30 years have seen huge advances in loading fonts with \TeX. Donald Knuth originally designed \TeX\ to load fonts created with Metafont, and only more recent engines such as Jonathan Kew's \XeTeX\ and Hans Hagen, et al.'s Lua\TeX\ have extended \TeX's font-loading capabilities to unicode. \XeTeX\ supports OpenType and TrueType fonts natively, and Lua\TeX\ can load OpenType fonts through the \textsf{luaotfload} package. Information on \XeTeX\ is available at \link{https://tug.org/xetex/}, and information on Lua\TeX\ is available at the official website for Lua\TeX: \link{http://www.luatex.org/}. See also Ulrike Fischer, et al., ``\textsf{luaotfload}---OpenType `loader' for Plain \TeX\ and \LaTeX,'' \link{https://ctan.org/pkg/luaotfload}.} The \textsf{mathfont} package loads TrueType and OpenType fonts for use in math mode, and this document explains the package's user-level commands. For version history and code implementation, see |mathfont_code.pdf|, and for a list of all symbols accessible with \textsf{mathfont}, see |mathfont_symbol_list.pdf|. The \textsf{mathfont} installation also includes four example files, and all \textsf{mathfont} pdf documentation files are available on \textsc{ctan}. -\section{Basic Functionality} +\section{Loading and Basic Functionality} -The \textsf{mathfont} package uses \textsf{fontspec} as a back end to load fonts for use in math mode, and it provides two ways to do this: (1) changing the default font for certain classes of math-mode characters; and (2) defining new commands that change the font locally for the so-called ``math-alphabet'' characters. The package can change the default math-mode font used for Latin, Greek, Cyrillic, and Hebrew letters; Arabic numerals; roughly 300 unicode math symbols; and standard unicode alphanumeric characters. The package accepts any OpenType or TrueType font, and tables~1 and 2 display the specific classes of characters that \textsf{mathfont}'s default font-change command acts on. The default math-alphabet characters are Latin letters, Arabic numerals, upper-case Greek characters, and diacritics. When \textsf{mathfont} sets the default font for any of these four character classes, it preserves their math alphabet status, and when the package sets the default font for lower-case Greek, ancient Greek, Cyrillic, or Hebrew characters, it recodes each symbol in the class as math-alphabet type. At that point, the local font-change commands will act on any characters in those classes. +Loading fonts for math typesetting is more complicated than for regular text. First, the commands to select fonts for math mode, both in plain \TeX\ and in the \textsc{nfss}, are more complicated than the macros to select text fonts, and second, \TeX\ expects fonts for math to contain extra information that it uses to format equations.\footnote{Specifically, this extra information is a set of large variants, math-specific parameter values associated with individual characters, and a MathConstants table. Also, math fonts often use slightly wider bounding boxes for letters in math mode---the Computer Modern $f$ is a famous example. For this reason, \textsf{mathfont} also provides an interface to enlarge the bounding boxes of Latin letters when they appear in math mode. See section 4 for details.} Broadly speaking, we say that a \textit{math font} contains this extra information, whereas a \textit{text font} does not, and typesetting math with glyphs from one or more text fonts usually results in equations that are less aesthetically pleasing than using a properly prepared math font. The functionality of \textsf{mathfont} then is twofold: (1) provide a wrapper around the \textsc{nfss} commands for math typesetting that serves as a high-level interface; and (2) implement Lua\TeX\ callbacks that artificially convert text fonts into math fonts at loading.\footnote{Values for MathConstants table are different from but inspired by Ulrik Vieth, ``Understanding the \AE sthetics of Math Typesetting,'' (Bacho\TeX\ Conference, 2008) and Ulrik Vieth ``OpenType Math Illuminated,'' \textit{TUGboat} 30 (2009): 22--31. See also Bogus\l aw Jackowski, ``Appendix G Illuminated,'' \textit{TUGboat} 27 (2006): 83--90.} Please note that \textsf{mathfont} tries its best to get your fonts right, but if you run into trouble loading the correct font files, you should declare your font family and shapes in the \textsc{nfss} before setting any fonts with \textsf{mathfont}. Because unicode text fonts greatly outnumber unicode math fonts, I hope that my package will expand the set of fonts available for typesetting math in \LaTeX. -The package must be loaded with \XeLaTeX or Lua\LaTeX. It can be loaded with the standard |\usepackage| syntax, and it accepts one optional argument. It treats the argument as a font name and changes all main fonts to that option. Specifically, the package invokes both |\mathfont| and \textsf{fontspec}'s |\setmainfont|, and it defines the four local font-changing commands |\mathrm|, |\mathit|, |\mathbf|, and |\mathbfit| to produce text from the desired font in combinations of upright, italic, and bold styles according to the control sequences' last letters. \XeTeX\ users may run into trouble with fonts whose name contains multiple words because \LaTeX\ eats spaces during package-option parsing. In this case, you will have to load the package and separately declare |\setfont| in your preamble. The package loads \textsf{fontspec} with the |no-math| option if and only if the user has not already loaded \textsf{fontspec}. Users who want \textsf{fontspec} without |no-math| or with other options in place can manually load it before requiring \textsf{mathfont}. Regardless, I strongly recommend that \textsf{fontspec} be loaded with |no-math| because otherwise some font changes may not render properly. +You must use one of \XeLaTeX\ or Lua\LaTeX\ to typeset a document with \textsf{mathfont}. You can load \textsf{mathfont} with the standard |\usepackage{mathfont}| syntax, and the package accepts three optional arguments. If you use Lua\TeX, the options |adjust| or |no-adjust| will manually specify whether \textsf{mathfont} should adapt text fonts for math mode, and \textsf{mathfont} selects |adjust| by default. If you use \XeTeX, \textsf{mathfont} cannot adjust any font objects with Lua callbacks, and either of these package options will cause an error.\footnote{In particular, with \XeLaTeX\ \textsf{mathfont} does not add big operators or resizable delimiters. This means you will have to use the Computer Modern defaults, load a separate math font for resizable characters, or end up with a document where large operators and delimiters do not scale like they do normally.} For this reason, using Lua\TeX\ with \textsf{mathfont} is recommended as of version 2.0. If you load \textsf{mathfont} with any other optional argument, the package will interpret it as a font name and call |\setfont| (described in the next section) on your argument. Doing so selects that font for the text of your document and for the character classes in the upper section of Table~1. -During loading, \textsf{mathfont} redefines three \LaTeX\ internal macros to make symbol declaration compatible with unicode fonts, and default math-font changes work only with the redefinitions in place. Because the internal changes are relatively unobtrusive, \textsf{mathfont}'s adjustments almost certainly do not affect \LaTeX\ packages loaded later, and the package does not restore the commands automatically. Instead, |\restoremathinternals| returns the internal commands to their default definitions, and users who want the previous definitions should reset the kernel manually. The corollary is that |\mathfont| and |\setfont| work before |\restoremathinternals| but not after. As of version~1.6, the package optional arguments |packages|, |operators|, and |no-operators| are depreciated. Instead, \textsf{mathfont} offers |\restoremathinternals| as the only way to interact directly with the kernel.\footnote{To be clear, as of version~1.6, \textsf{mathfont} does not restore the \LaTeX\ kernel when the user loads other packages. Given the scope and nature of the changes, I determined that the convenience factor of being able to use \vrb\mathfont\ anywhere in the preamble outweighs the incredibly small risk of interfering with another package. As far as I can tell, the biggest change is using a different primitive to code math symbols, but even that will probably never affect practical applications. The test \expandafter\vrb\csname if\endcsname\vrb\mathchar\vrb\alpha\ succeeds both before and after calling \vrb\mathfont, even though afterwards \vrb\alpha\ is defined with \vrb\Umathchar\ instead.} For changes to big operators, use the |bigops| keyword in section~2. +The \textsf{mathfont} package is closely related to several other \LaTeX\ packages. The functionality is closest to that of \textsf{mathspec} by Andrew Gilbert Moschou, which is compatible with \XeTeX\ only and selects characters from text fonts for math.\footnote{Andrew Gilbert Moschou, ``\textsf{mathspec}---Specify arbitrary fonts for mathematics in \XeTeX,'' \link{https://ctan.org/pkg/mathspec}.} The \textsf{unicode-math} package is the standard \LaTeX\ package for loading actual unicode math fonts, and if you have a unicode font with proper math support, rather than a text font that you want to use for equations, consider using this package instead of \textsf{mathfont}.\footnote{Will Robertson, et al., ``\textsf{unicode-math}---Unicode mathematics support for XeTeX and LuaTeX,'' \link{https://ctan.org/pkg/unicode-math}.} Users who want to a text font for math with pdf\LaTeX\ should consider Jean-Fran\c cois Burnol's \textsf{mathastext} because \textsf{mathfont} is incompatible with pdf\TeX.\footnote{Jean-Fran\c cois Burnol, ``\textsf{mathastext}---Use the text font in maths mode,'' \link{https://ctan.org/pkg/mathastext}. In several previous versions of this documentation, I mischaracterized the approach of \textsf{mathastext} to \TeX's internal mathematics spacing. In fact, \textsf{mathastext} preserves and in some cases extends rules for space between various math-mode characters.} Finally, you will probably be better off using \textsf{fontspec} if your document does not contain any math.\footnote{Will Robertson and Khaled Hosny, ``\textsf{fontspec}---Advanced font selection in \XeLaTeX\ and Lua\LaTeX,'' \link{https://ctan.org/pkg/fontspec}.} The \textsf{fontspec} package is designed to load TrueType and OpenType fonts for text and provides a high-level interface for selecting OpenType font features. -The functionality of \textsf{mathfont} is most closely related to that of the \textsf{mathspec} package by Andrew Gilbert Moschou.\footnote{Andrew Gilbert Moschou, ``\textsf{mathspec}---Specify arbitrary fonts for mathematics in \XeTeX,''\hfil\break\texttt{https://ctan.org/pkg/mathspec}.} These two packages incorporate the use of individual unicode characters into math mode, and their symbol declaration process is similar. Both use \textsf{fontspec} as a back end, and both create font-changing commands for math-mode characters. However, the functionality differs in three crucial respects: (1) \textsf{mathfont} is compatible with Lua\LaTeX; (2) it can adjust the font of basic mathematical symbols such as those in the first half of table~2; and (3) \textsf{mathfont} lacks \textsf{mathspec}'s convenient space-adjustment character |"|.% footnote % -\footnote{Compatibility with Lua\LaTeX\ comes at the expense of \textsf{mathspec}'s space-adjustment character |"|, and spacing-conscientious users can either manually add |\string\kern| or |\string\muskip| to their equations or redefine an active version of |"|. For example, the code -\begin{code} % footnotes and verbatim really don't play well together -\begingroup\texttt{\string\catcode`\string\"=\string\active}\par -\texttt{\string\def"\expandafter\@gobble\string\#1\char"7B\relax - \expandafter\string\csname ifmmode\endcsname}\par -\texttt{\ \ \string\kern}\argtext{dimension}% - \texttt{\string\relax\ \expandafter\@gobble\string\#1\string\kern}% - \argtext{other dimension}\texttt{\string\relax}\par -\texttt{\expandafter\string\csname else\endcsname}\par -\texttt{\ \ \string\char`\string\"\expandafter\@gobble\string\#1\%}\par -\texttt{\expandafter\string\csname fi\endcsname\char"7D\relax}\endgroup -\end{code} -will serve as a hack that very roughly approximates \textsf{mathspec}'s |"|. This code will redefine |"| to typeset a right double quotation mark in horizontal mode, but in math mode, the character will insert \textit{dimension} and \textit{other dimension} of white space on each side respectively of the next character. More advanced users can automate the dimensions by using \TeX's \texttt{\expandafter\string\csname if\endcsname} or \LaTeX's |\string\@ifnextchar| conditionals to test whether the following character needs a particular spacing adjustment.} % end footnote % -Further, as far as I am aware, this package is the first to provide support for the unicode alphanumeric symbols listed in Table~2, even in the context of fonts without built-in math support. (Please let me know if this is incorrect!) In this way \textsf{mathfont}, like \textsf{mathspec}, is more versatile than the \textsf{unicode-math} package, although potentially less far-reaching.\footnote{Will Robertson, ``\textsf{unicode-math}---Unicode mathematics support for \XeTeX\ and Lua\TeX,''\hfil\break\texttt{https://ctan.org/pkg/unicode-math}.} - -Users who want to stick with pdf\LaTeX\ should consider Jean-Fran\c cois Burnol's \textsf{mathastext} as a useful alternative to \textsf{mathfont}.\footnote{Jean-Fran\c cois Burnol, ``\textsf{mathastext}---Use the text font in maths mode,''\hfil\break\texttt{https://ctan.org/pkg/mathastext}. In several previous versions of this documentation, I mistakenly stated that \textsf{mathastext} distorts \TeX's internal mathematics spacing. In fact the opposite is true: \textsf{mathastext} preserves and in some cases extends rules for space between various math-mode characters.} This package allows the user to specify the math-mode font for a large subset of the ASCII characters and is the most closely related package to \textsf{mathfont} among those packages designed specifically for pdf\LaTeX. Whereas \textsf{mathfont} works exclusively in the context of unicode fonts, \textsf{mathastext} was designed for the T1 and related encodings of Plain \TeX\ and \LaTeX. However, the \textsf{mathastext} functionality extends beyond that of \textsf{mathfont} in two notable aspects: (1) \textsf{mathastext} makes use of math versions, extra spacing, and italic corrections; and (2) \textsf{mathastext} allows users to change the font for the twenty-five non-alphanumeric characters supported by that package multiple times. After setting the default font for a class of characters, \textsf{mathfont} allows only the local font changes outlined in section~3. +\begin{figure}[t]\labelfig{Keywords} +\centerline{\bfseries Table \the\fig: Character Classes\strut} +\global\advance\fig by 1\relax +\begin{tabularx}\hsize{lXll}\toprule +Keyword & Meaning & Default Shape & Alphabetic?\\\midrule +|upper| & Upper-Case Latin & Italic & Yes\\ +|lower| & Lower-Case Latin & Italic & Yes\\ +|diacritics| & Diacritics & Upright & Yes\\ +|greekupper| & Upper-Case Greek & Upright & Yes\\ +|greeklower| & Lower-Case Greek & Italic & Yes\\ +|digits| & Arabic Numerals & Upright & Yes\\ +|operator| & Operator Font & Upright & Yes\\ +|delimiters| & Delimiter & Upright & No\\ +|radical| & Square Root Symbol & Upright & No\\ +|symbols| & Basic Math Symbols & Upright & No\\ +|bigops| & Big Operators & Upright & No\\\midrule +|agreekupper| & Upper-Case Ancient Greek & Upright & Yes\\ +|agreeklower| & Lower-Case Ancient Greek & Italic & Yes\\ +|cyrillicupper| & Upper-Case Cyrillic & Upright & Yes\\ +|cyrilliclower| & Lower-Case Cyrillic & Italic & Yes\\ +|hebrew| & Hebrew & Upright & Yes\\ +|extsymbols| & Extended Math Symbols & Upright & No\\ +|arrows| & Arrows & Upright & No\\ +|extbigops| & Extended Big Operators & Upright & No\\ +|bb| & Blackboard Bold (double-struck) & Upright & No\\ +|cal| & Caligraphic & Upright & No\\ +|frak| & Fraktur & Upright & No\\ +|bcal| & Bold Caligraphic & Upright & No\\ +|bfrak| & Bold Fraktur & Upright & No\\ +\bottomrule +\end{tabularx} +\end{figure} \section{Setting the Default Font} -The |\mathfont| command sets the default font for certain classes of characters. Its structure is given by +The |\mathfont| command sets the default font for certain classes of characters when they appear in math mode. It accepts a single mandatory argument, which should be a system font name or a family name already present in the \textsc{nfss}. The macro also accepts an optional argument, which should be a comma-separated list of keywords from Table~\ref{Keywords}, as in \begin{code} -|\mathfont[|\argtext{optional character classes}|]{|\argtext{font name}|}|, +|\mathfont[|\meta{keywords}|]{|\meta{font name}|}|, \end{code} -where the \textit{optional character classes} can be any set of keywords from Tables~1 and 2 separated by commas, and the \textit{font name} can be any OpenType or TrueType font in a directory searchable by \TeX.\footnote{When specifying the \textit{font name}, users need to input a name that \textsf{fontspec} will recognize and be able to load. Advanced users will note that \vrb\mathfont\ uses \fontspeccommand\ and therefore loads fonts in the same way as \vrb\fontspec\ and related macros from that package.} The command loops through all keywords in the optional argument, and for each keyword, it changes the math-mode font for every character in that class to the \textit{font name}.\footnote{These changes happen through \LaTeX's \vrb\DeclareMathSymbol, and \vrb\mathfont\ is basically a very elaborately wrapped version of this command.} Currently, \textsf{mathfont} does not support OpenType features in math mode. To change both math and text fonts simultaneously, the package provides the command +and \textsf{mathfont} sets the default font face for every character in those keywords to an upright or italic version of the font from the mandatory argument. See |mathfont_symbol_list.pdf| for a list of symbols corresponding to each keyword. If you do not include an optional argument, |\mathfont| acts on all keywords in the upper section of Table~1 (but not including |delimiters|, |radical|, or |bigops| characters in \XeTeX), so calling |\mathfont| with no optional argument is a fast way to change the font for most common math characters. To change the shape, you should say ``|=upright|'' or ``|=italic|'' immediately after the keyword and before the following comma, and spaces are allowed throughout the optional argument. For example, the command \begin{code} -|\setfont{|\argtext{font name}|}|, +|\mathfont[lower=upright, upper=upright]{Times New Roman}| \end{code} -which calls both |\mathfont| and \textsf{fontspec}'s |\setmainfont| using the \textit{font name} as arguments. The package's optional argument is equivalent to calling |\setfont| and three local font-change commands from section 3, and most users will find this command sufficient for most applications. Both |\mathfont| and |\setfont| should appear only in the document preamble, i.e.\ before |\begin{document}|. +changes all Latin letters to upright Times New Roman. Know that once \textsf{mathfont} has set the default font for a keyword in Table~1, it will ignore any future instructions to do so and prints a warning to the terminal instead. -The user should specify any optional arguments for |\mathfont| as entries in a comma-separated list. The order is irrelevant, and spaces throughout the optional argument are permitted. The argument should contain no braces! Leaving out the optional argument will cause the command to revert to its default behavior, where it acts on keyword classes |upper|, |lower|, |diacritics|, |greekupper|, |greeklower|, |digits|, |operator|, and |symbols|. For example, if the user writes -\begin{code} -|\mathfont{Arial}|, -\end{code} -\textsf{mathfont} will change the font of all Latin characters, Greek characters, diacritics, digits, operators such as $\log$ or $\sin$, and |symbols| characters to Arial whenever they come up in math mode. The package provides control sequences to typeset many symbols that \LaTeX\ does not include by default, and users gain access to these commands when they call |\mathfont| or |\setfont| with the appropriate keyword-option. In total, the package is capable of acting on some 800 unicode characters, and for a full list of symbols and control sequences, see |mathfont_symbol_list.pdf|, which is included in the \textsf{mathfont} installation and is available on \textsc{ctan}. Users can feed |\mathfont| a control sequence as its optional argument as long as the macro eventually expands to a comma-separated list of keywords and suboptions without braces.% footnote -\footnote{Technically, \vrb\mathfont\ expands its optional argument inside an \vrb\edef. When it scans an optional argument, \textsf{mathfont} temporarily converts spaces to catcode~9 and ignores them. However, if you feed \vrb\mathfont\ a macro with spaces in it, \TeX\ has already scanned and tokenized those spaces, so we use \vrb\zap@space\ from the \LaTeX\ kernel instead. Braces will wreck both this process and the \vrb\@for\ loop that comes later.} % end footnote -Finally, |\mathfont| and |\setfont| will not change the default font for a class of symbols once one of them has already done so. - -\begin{figure}[tb] -\centering -Table~1: Math Alphabet Characters\par\penalty\@M\smallskip -\begin{tabularx}\hsize{p{1.8in}Xp{1.3in}} -\toprule -Keyword & Meaning & Default shape\\ -\midrule -|upper| & Capital Latin Letters & Italic\\ -|lower| & Minuscule Latin Letters & Italic\\ -|diacritics| & Diacritics & Upright\\ -|greekupper| & Capital Greek Letters & Upright\\ -|greeklower| & Minuscule Greek Letters & Italic\\ -|agreekupper| & Capital Ancient Greek Letters & Upright\\ -|agreeklower| & Minuscule Ancient Greek Letters & Italic\\ -|cyrillicupper| & Capital Cyrillic Letters & Upright\\ -|cyrilliclower| & Minuscule Cyrillic Letters & Italic\\ -|hebrew| & Hebrew Letters & Upright\\ -|digits| & Arabic Numerals & Upright\\ -|operator| & Operator Font & Upright\\ -\bottomrule +\begin{figure}[t] +\labelfig{SetFont} +\centerline{\bfseries Table \the\fig: Commands Defined by \vrb\setfont\strut} +\global\advance\fig by 1\relax +\begin{tabularx}\textwidth{XXX}\toprule +Command & Series & Shape\\\midrule +|\mathrm| & Medium & Upright\\ +|\mathit| & Medium & Italic\\ +|\mathbf| & Bold & Upright\\ +|\mathbfit| & Bold & Italic\\ +|\mathsc| & Medium & Small Caps\\ +|\mathscit| & Medium & Italic Small Caps\\ +|\mathbfsc| & Bold & Small Caps\\ +|\mathbfscit| & Bold & Italic Small Caps\\\bottomrule \end{tabularx} \end{figure} -By default, \textsf{mathfont} will use one of an upright or italic shape for every character class, and users can override this setting by writing an |=| next to the keyword and either |roman| or |italic| following that. These two suboptions correspond respectively to an upright shape---normal shape in the language of the \textsc{nfss}---and an italic shape. Table~1 includes the default shape-values for each keyword, and the package declares characters for all keywords in table~2 as upright by default. For example, the command +If you want to change the font for your entire document at once, you should use |\setfont| instead of |\mathfont|. This command accepts a single mandatory argument: \begin{code} -|\mathfont[upper=roman,lower=roman]{Times New Roman}| +|\setfont{|\meta{font name}|}|. \end{code} -changes all math-mode Latin letters to Times New Roman with upright shape. +It calls |\mathfont| without an optional argument---i.e.\ for the default keywords---on your \meta{font name} and sets your document's default text font to be the \meta{font name}. The command also defines the eight commands in Table~\ref{SetFont} using the \meta{font name} and the |\new| macros in the next section. Both |\mathfont| and |\setfont| should appear in the preamble only. -\begin{figure}[t] -\centering -Table~2: Letter-Like and Other Symbols\par\penalty\@M\smallskip -\begin{tabularx}\hsize{p{1.8in}X} -\toprule -Keyword & Meaning\\ -\midrule -|symbols| & Basic Symbols\\ -|extsymbols| & Extended Symbols\\ -|delimiters| & Parentheses, Brackets, and Braces\\ -|arrows| & Arrows\\ -|bigops| & ``Big'' Operators (see section 4)\\ -|extbigops| & Extended ``Big'' Operators\\ -|bb| & Blackboard Bold (double-struck)\\ -|cal| & Caligraphic\\ -|frak| & Fraktur\\ -|bcal| & Bold Caligraphic\\ -|bfrak| & Bold Fraktur\\ -\bottomrule -\end{tabularx} -\end{figure} +To select OpenType features, you should put a colon after the font name and follow it with appropriate OpenType tags. For example adding ``|onum=true|'' tells \TeX\ to load your font with oldstyle numbering, assuming that feature is present in the font.\footnote{By default, \textsf{mathfont} enables standard ligatures, traditional \TeX\ ligatures, and lining numbers. The package sets |smcp| to |true| or |false| depending on whether it is attempting to load a small-caps font. For the full list of OpenType features, see \link{https://docs.microsoft.com/en-us/typography/opentype/spec/featurelist}.} Whenever you declare any font setting, such as calling |\mathfont|, the package uses its own fontloader unless you have loaded \textsf{fontspec}. In that case, \textsf{mathfont} feeds your argument directly to \textsf{fontspec}, and if you previously set any font with \textsf{fontspec}, you can say |\mathfont{fontspec}| to call |\mathfont| with the most recent font used by \textsf{fontspec}. I don't recommend using \textsf{fontspec} indirectly like this unless you know what you're doing because Lua\TeX's default font-loading settings are optimized for text fonts, and you may not see any OpenType font features in math mode as a result.\footnote{The default \textsf{luaotfload} (and \textsf{fontspec}) setting is |mode=node|, but \textsf{mathfont} uses |mode=base|. The |node| setting allows users to enable more OpenType font features in text but prevents any OpenType features from showing up in math mode. On the other hand, |base| supports fewer OpenType features but enables them in math mode. This point may seem technical, but it can be very relevant. For example, Cormorant, used in one of the \textsf{mathfont} example pdf files, uses oldstyle numbers by default but includes lining numbers as a separate OpenType feature. (Oldstyle numbers can work well in text, but lining numbers are a much better default for math.) Loading Cormorant with |mode=node| means that the numbers in math mode will be oldstyle, even if you say |lnum=true|, so |base| mode is necessary here. Like I said, fonts are complicated.} -The package provides access to several types of letterlike symbols that appear frequently in mathematical writing, and the last five keywords in table~2 constitute these classes. Unlike with other keywords, \textsf{mathfont} doesn't create control sequences to access the symbols directly but rather defines a new command that converts letters into the appropriate style. When the user calls |\mathfont| with any of the last five keywords from table~2, the package both declares the appropriate unicode characters as math symbols and defines the macro +The last five keywords in Table~\ref{Keywords} are a bit different. If you call |\mathfont| on a \meta{keyword} from the last five rows in Table~\ref{Keywords}, the package defines the macro \begin{code} -|\math|\argtext{keyword}|{|\argtext{argument}|}| +|\math|\meta{keyword}|{|\meta{text}|}| \end{code} to typeset them. For example, \begin{code} -|\mathfont[bcal]{STIXGeneral}| +|\mathfont[bb]{STIXGeneral}| \end{code} -will set STIXGeneral as the font for bold calligraphic characters and define the command |\mathbcal| to access them in math mode. For the |bb| case, the associated command acts on Latin letters and Arabic numerals, and for the other four keywords, the associated command acts just on Latin letters. \TeX\ will ignore and issue a warning in response to any other characters in the \textit{argument}. +sets STIXGeneral as the font for bold calligraphic characters and defines |\mathbb| to access them. The argument of |\mathbb| should contain only digits and Latin letters, and for the other four keywords, the argument of |\math|\meta{keyword} should contain only Latin letters. \TeX\ will ignore and issue a warning in response to any other characters in the argument of these macros. \section{Local Font Changes} -With \textsf{mathfont}, users can locally change the font in math mode by creating and then using a new control sequence for each new font desired.\footnote{The five macros in this section are basically wrapped versions of \LaTeX's \vrb\DeclareMathAlphabet.} The control sequences created this way function analogously to the standard math font macros such as |\mathrm|, |\mathit|, and |\mathnormal| from the \LaTeX\ kernel, and the package provides four basic commands to produce them. Table~3 lists these commands. All four have the same argument structure: a control sequence as the first mandatory argument and a font name as the second. For example, the macro |\newmathrm| looks like +With \textsf{mathfont}, it is possible to create commands that locally change the font for math alphabet characters, i.e.\ those marked as alphabetic in Table~\ref{Keywords}. The eight commands in Table~\ref{MathAlpha} accept a \meta{control sequence} as their first mandatory argument and a \meta{font name} as the second, and they define the \meta{control sequence} to typeset any math alphabet characters in their argument into the \meta{font name}. For example, the macro |\newmathrm| looks like \begin{code} -|\newmathrm{|\argtext{control sequence}|}{|\argtext{font name}|}|. +|\newmathrm{|\meta{control sequence}|}{|\meta{font name}|}|. \end{code} It defines the \textit{control sequence} in its first argument to accept a string of characters that it then converts to the \textit{font name} in the second argument with upright shape and medium weight. Writing \begin{code} |\newmathrm{\matharial}{Arial}| \end{code} -would create the macro +creates the macro \begin{code} -|\matharial{|\argtext{argument}|}|, +|\matharial{|\meta{argument}|}|, \end{code} -which can be used only in math mode and which converts the math alphabet characters in its \textit{argument} into the Arial font with upright shape and medium weight. The other three commands in table~3 function in the same way except that they select different series or shape values for the font in question. Table~3 lists this information. As of version~1.6, |\newmathbold| has been renamed to |\newmathbf| to put it in line with \textsc{nfss} naming conventions. +which can be used only in math mode and which converts the math alphabet characters in its \meta{argument} into the Arial font with upright shape and medium weight. The other commands in Table~\ref{MathAlpha} function in the same way except that they select different series or shape values. Finally, know that if the user specifies the font for Greek letters using |\mathfont|, macros created with the commands from this section will affect those characters, unlike in traditional \LaTeX. Similarly, the local font-change commands will affect Cyrillic and Hebrew characters after the user calls |\mathfont| for those keywords. \begin{figure}[t] -\centering -Table 3: Font-changing Commands\par\penalty\@M\smallskip -\begin{tabularx}\hsize{p{1.8in}X} -\toprule -Command & Font Characteristics\\ -\midrule -|\newmathrm| & Upright shape; medium weight\\ -|\newmathit| & Italic shape; medium weight\\ -|\newmathbf| & Upright shape; bold-expanded weight\\ -|\newmathbfit| & Italic shape; bold-expanded weight\\ -\bottomrule +\labelfig{MathAlpha} +\centerline{\bfseries Table \the\fig: Macros to Create Local Font-Change Commands\strut} +\global\advance\fig by 1\relax +\begin{tabularx}\textwidth{XXX}\toprule +Command & Series & Shape\\\midrule +|\newmathrm| & Medium & Upright\\ +|\newmathit| & Medium & Italic\\ +|\newmathbf| & Bold & Upright\\ +|\newmathbfit| & Bold & Italic\\ +|\newmathsc| & Medium & Small Caps\\ +|\newmathscit| & Medium & Italic Small Caps\\ +|\newmathbfsc| & Bold & Small Caps\\ +|\newmathbfscit| & Bold & Italic Small Caps\\\bottomrule \end{tabularx} \end{figure} -Together these four commands will provide users with the tools for almost all desired local font changes, but they inevitably will be insufficient for some particular case. Accordingly, \textsf{mathfont} provides the more general |\newmathfontcommand| macro that functions similarly to the commands from table~3 but allows for more general font characteristics.\footnote{The package defines the four commands from table~3 in terms of \vrb\newmathfontcommand, and it specifies their style characteristics according to the kernel commands \vrb\updefault, \vrb\itdefault, \vrb\mddefault, and \vrb\bfdefault. Changing these macros will implicitly change the characteristics of the commands in table~3.} Its structure is +Together these eight commands will provide users with tools for most local font changes, but they won't be able to address everything. Accordingly, \textsf{mathfont} provides the more general |\newmathfontcommand| macro. Its structure is \begin{code} -|\newmathfontcommand{|\argtext{control sequence}|}{|\argtext{font name}|}{|\argtext{series}|}{|\argtext{shape}|}|, +|\newmathfontcommand{|\meta{control sequence}|}{|\meta{font name}|}{|\meta{series}|}{|\meta{shape}|}|, \end{code} -where the control sequence in the first argument again becomes the macro that allows the user to access the specified font. The font name means any OpenType or TrueType font in a directory searchable by \TeX, and the series and shape information refers to the \textsc{nfss} codes for these attributes. Like |\mathfont| and |\setfont|, these commands should appear only in the document preamble. +where the \meta{control sequence} in the first argument again becomes the macro that changes characters to the \meta{font name}. You are welcome to use a system font name with |\newmathfontcommand|, but the intention behind this command is that you can use an \textsc{nfss} family name for the \meta{font name}. The series and shape values will then correspond to more obscure font faces from the \textsc{nfss} family that you would be otherwise unable to access. The commands from Table~\ref{MathAlpha} as well as |\newmathfontcommand| should appear in the preamble only. -Unlike the traditional |\mathrm| and company, \textsf{mathfont}'s local font change commands create macros that can act on Greek characters. If the user specifies the font for Greek letters using |\mathfont|, macros created with the commands from Table~3 will affect those characters; otherwise, they will not.\footnote{\LaTeXe\ defines lower-case Greek letters as \vrb\mathord\ characters, and \textsf{mathfont} changes this classification to \vrb\mathalpha\ type when it declares them as symbols. The local font change commands act only on characters of class \vrb\mathalpha, so these commands will act on lower-case Greek letters if \vrb\mathfont\ redefines them to be \vrb\mathalpha.} Similarly, the local font-change commands will act on Cyrillic and Hebrew characters after the user calls |\mathfont| for those keyword-classes. +\section{Lua Font Adjustments} -\section{Math Symbols} +\begin{figure}[b] +\labelfig{Charm} +\centerline{\bfseries Table \the\fig: Number of Integers Required in \vrb\CharmLine\strut} +\global\advance\fig by 1\relax +\begin{tabularx}\textwidth{lX}\toprule +Type of Character & \hfil Total Number of Entries\\\midrule +Latin Letters & \hfil5 \\ +Delimiters, Radical Sign (Surd Character), Big Operators & \hfil33\\ +Everything Else & \hfil3\\\bottomrule +\end{tabularx} +\end{figure} -Choosing which unicode characters to recode is something of a delicate task because few unicode fonts contain more than the most basic math symbols. In designing this portion of \textsf{mathfont}, I attempted to find the largest set of characters that reliably appears in every or nearly every major unicode font, and I coded those characters in the |symbols| keyword. This keyword contains punctuation and common symbols such as $\pm$, $\div$, and $\infty$, and it will be sufficient for basic math typesetting. That being said, most math relies on a much broader collection of characters and arrows, and in other keywords, I coded every unicode math symbol that I could reasonably see being useful. The extended math symbols keyword |extsymbols| contains quantifiers, set and element relations, just about any binary relation you can imagine, and a few miscellaneous symbols such as |\sharp| and |\flat|. The |arrows| keyword contains a swath of hooked, curved, and bar arrows and even one lightning bolt arrow. Most standard unicode fonts don't contain many of those glyphs, and users who call |\mathfont| for a font without certain characters will see blank spaces in their final output instead of the corresponding symbols from |mathfont_symbol_list.pdf|. If this happens, check the |log| file because it will display any missing characters in your fonts. +The \textsf{mathfont} package provides six user-level commands to change positioning of characters in math mode. The commands |\CharmLine| and |\CharmFile| affect specific to various characters. (Charm stands for ``character metric.'') The argument of |\CharmLine| should be a list of integers and/or asterisks separated by commas and/or spaces, and Table~\ref{Charm} shows how many integers you need for different types of characters. The first integer from the argument should be a unicode encoding number, and that tells \textsf{mathfont} how to handle the remaining values. +\begin{itemize} +\item If the unicode value corresponds to a Latin letter, the next two integers tell Lua\TeX\ how much to stretch the left and right sides of the glyph's bounding box when it appears in math mode. The final two integers determine horizontal placement of top and bottom math accents respectively. +\item If the unicode value corresponds to a delimiter, the radical (surd) symbol, or a big operator, you will need to specify 16 pairs numbers, for a total of 32 entries. The first 15 pairs are horizontal and vertical scale factors that \textsf{mathfont} uses to create large variants, where successive pairs correspond to the next-larger glyph. The last two integers determine horizontal placement of top and bottom math accents respectively. +\item If the unicode value corresponds to any other symbol, you should specify two more integers, which will determine the horizontal placement of top and bottom math accents respectively. +\end{itemize} +Writing an asterisk tells \textsf{mathfont} to use whatever value it has saved in memory, either the default value or the value from the most recent call to |\CharmLine| or |\CharmFile|. If you specify too few charm values, \textsf{mathfont} will raise an error, but if you provide too many, \textsf{mathfont} will silently ignore the extras. -It's worth emphasizing three aspects of \textsf{mathfont}'s symbol declaration process. First, the package does not provide any symbols in and of itself but rather gives users access to symbols that already exist on their computers. This is why \textsf{mathfont} provides no additional symbols directly at loading and why some package commands can create blank spaces rather than their intended output. Second, \textsf{mathfont}'s functionality currently does not include math symbols of variable sizes.% footnote -\footnote{Dynamic math-mode character sizing is a surprisingly thorny task. OpenType font designers specifically code certain characters to change size when they design the font, and Lua\TeX's \vrb\Udelimiter\ and \vrb\Umathoperatorsize\ depend on this embedded feature. Because most unicode fonts come without resizing information, \textsf{mathfont} would have to manually add these settings to the Lua\TeX\ font table. I intend to add this functionality in some future update, but I do not know what the timeframe looks like for those changes.} % end footnote -Recoded delimiters do not respond to |\left| and |\right|, and \LaTeX\ replaces them with their original Latin Modern equivalents before rescaling appropriately. Thus |\mathfont| with the |delimiters| keyword will produce normally sized delimiters in the font of your choice and big delimiters in Latin Modern Roman. Similarly, big operators such as |\sum| and |\prod| appear normally sized instead of larger after setting their font with |\mathfont|. This is undesirable! I have isolated all delimiter and big operator characters in their own keywords, and I hope to address this limitation in future updates. Third, the package provides an extra comma character, similar to \LaTeX's |\colon|.% footnote -\footnote{Consider $\{x:x\not=0\}$ versus $\{x\colon x\not=0\}$. The first specification uses |:| while the second uses \vrb\colon. As a rule of thumb, use |:| for ratios and \vrb\colon\ as a punctuation mark.} % end footnote -\TeX\ users have likely noticed the extra space surrounding commas in math mode, e.g.\ $10,000$ versus $10\mathord,000$, and \textsf{mathfont}'s |\comma| addresses this problem. Here the first ten thousand uses a standard~|,|~while the second uses |\comma|. As a rule of thumb, use |,| as a punctuation mark and |\comma| as a character separator. +For most applications, you can probably ignore charm information altogether, but if you find bounding boxes or accent placement to be off slightly or if you want to change the scaling for a delimiter or big operator, you should try calling |\CharmLine| with different values to see what works. As is typical with decimal inputs in \TeX, \textsf{mathfont} divides your inputs by 1000 before computing with them. Positive integers mean ``increase,'' and negative integers mean ``decrease.'' For a given character, the scale is usually the glyph width. For example, +\begin{code} +|\CharmLine{97, 200, -200, *, 50}| +\end{code} +tells \textsf{mathfont} to take the lower-case ``a'' (unicode encoding value of 97), increase the bounding box on the left side by 20\% of the glyph width, decrease the bounding box on the right side by 20\% of the glyph width, do nothing to the top accent, and shift the bottom accent right by 5\% of the glyph width. There is no general formula for what charm values to use for a given font! Rather, you will need to make a design choice based on what looks best, and if you regularly use a particular font, consider making a custom set of charm values uploading it to \textsc{ctan}. Additionally, if you store your charm information in a file, you can read it in with |\CharmFile|. The argument of this command should be a file name, and \textsf{mathfont} reads the file and feeds each line individually to |\CharmLine|. -\section{Handling Errors} +\begin{figure}[tb] +\labelfig{Factors} +\centerline{\bfseries Table \the\fig: Commands to Adjust Individual Characters\strut} +\global\advance\fig by 1\relax +\begin{tabularx}\textwidth{llX}\toprule +Command & Default Value & What It Does\\\midrule +|\RuleThicknessFactor| & 1000 & Thickness of fraction rule and radical overbar\\ +|\IntegralItalicFactor| & 400 & Positioning of limits for integrals\\ +|\SurdVerticalFactor| & 1000 & Vertical positioning of radical overbar\\ +|\SurdHorizontalFactor| & 1000 & Horizontal positioning of radical overbar\\\bottomrule +\end{tabularx} +\end{figure} -I have tried to make \textsf{mathfont}'s error messages as clear as possible, and the help text will contain instructions for how to resolve the problem. Nevertheless, some of the possible error messages warrant additional explanation. +The commands in Table~\ref{Factors} adjust other aspects of the font as indicated. Each command accepts a single integer as an argument, and \textsf{mathfont} once again divides the input by 1000. With each of these macros, \textsf{mathfont} multiplies the quotient by some default length, so values greater than or less than 1000 mean ``scale up'' or ``scale down'' respectively. For example, +\begin{code} +|\RuleThicknessFactor{2000}| +\end{code} +doubles the thickness of the fraction rule and radical overbar relative to the default, which varies between fonts. Changing the |\RuleThicknessFactor| is useful for fonts with particularly heavy or light weight, and the |\IntegralItalicFactor| is important for making limits better fit integral signs, and the |\SurdVerticalFactor| and |\SurdHorizontalFactor| commands are essential when the top of the surd glyph differs from the top of its bounding box. The six control sequences from this section should appear in the preamble only. -The most salient errors are the ``Could not find \textsf{fontspec}'' and ``Missing \XeTeX\ or Lua\TeX'' fatal errors. When the user loads \textsf{mathfont}, \TeX\ must be able to find the package file |fontspec.sty|, and \TeX\ must be operating under the \XeTeX\ or Lua\TeX\ engine. If either condition fails, \TeX\ will stop reading in |mathfont.sty|.% footnote -\footnote{Note that \textsf{mathfont} doesn't actually determine the typesetting engine. Rather, it checks whether the \XeTeX\ and Lua\TeX\ primitives \vrb\Umathcode, \vrb\Umathchardef, and \vrb\Umathaccent\ are defined, so if for some reason these control sequences have definitions when the user loads \textsf{mathfont} with another engine, \textsf{fontspec}'s more robust engine checks will take over and cause \TeX\ to abort. The reasoning here is straightforward: \textsf{mathfont} verifies only that the current typesetting engine provides the commands that it directly needs, so its potential functionality remains as broad as possible. If \textsf{fontspec} becomes compatible with a third engine that also provides (analogues of) these primitives, there is no reason to prevent \textsf{mathfont} from working with that engine as well.} % end footnote -As of version 1.6, \textsf{mathfont}'s fatal errors prevent \TeX\ from reading in the rest of the |sty| file but do not crash the compilation process, and users who continue past one of \textsf{mathfont}'s fatal error messages will see an ``invalid command'' error if they call a user-level command in their document. I designed these errors to be unobtrusive, and users can safely ignore them. Because of how \textsf{mathfont} performs its engine check, it is theoretically possible that users with very old \XeTeX\ or Lua\TeX\ distributions may see the second fatal error even when running one of these two engines, and the solution is probably to upgrade to a more recent version of the engine in question. Unfortunately, I do not know what the exact cutoff for \XeTeX\ and Lua\TeX\ versions is.\footnote{However, the manual for a beta version of Lua\TeX, v.\ 0.70.1, includes these primitives, so they are at least as old as May 2011. See\hfill\break \texttt{https://osl.ugr.es/CTAN/obsolete/systems/luatex/base/manual/luatexref-t.pdf}} +\begin{figure}[tb] +\labelfig{Callbacks} +\centerline{\bfseries Table \the\fig: Lua Callbacks Created by \textsf{mathfont}\strut} +\global\advance\fig by 1\relax +\begin{tabularx}\textwidth{lX}\toprule +Callback Name & What It Does By Default\\\midrule +|"mathfont.inspect_font"| & Nothing\\\midrule +|"mathfont.pre_adjust"| & Nothing\\ +|"mathfont.disable_nomath"| & Tell Lua\TeX\ that we have a math font\\ +|"mathfont.add_math_constants"| & Create a MathConstants table\\ +|"mathfont.fix_character_metrics"|& \raggedright\arraybackslash Adjust bounding boxes, add character-specific math fields, create large variants\\ +|"mathfont.post_adjust"| & Nothing\\\bottomrule +\end{tabularx} +\end{figure} -The \textsf{fontspec} package includes a ``|no-math|'' option, and \textsf{mathfont} expects \textsf{fontspec} to be loaded with this option. As mentioned previously, \textsf{mathfont} loads \textsf{fontspec} by default, but users can load \textsf{fontspec} before \textsf{mathfont} if they want to manually specify the package options. Alternatively, \LaTeX's |\PassOptionsToPackage| may be an even better way to proceed. If \textsf{mathfont} detects that \textsf{fontspec} was loaded without the |no-math| option, it will issue an error message saying so. This error is not paramount in the sense that the document will compile normally if a user ignores it, but \textsf{mathfont} will probably have trouble changing the font of certain math-mode characters in this situation. During development, Arabic numerals posed a particular challenge in this regard. +Finally, advanced users who want to interact with the font adjustment process directly should use the six callbacks in Table~\ref{Callbacks}. When Lua\TeX\ loads a font, \textsf{mathfont} (1) always calls |mathfont.inspect_font| and (2) calls the other five callbacks in the order that they appear in Table~\ref{Callbacks} if the font object contains |nomath=true|. Functions added to these callbacks should accept a font object as a single argument and return nothing. Further, please be careful when loading functions in the |disable_nomath|, |add_math_constants|, and |fix_character_metrics| callbacks. If you add a function there, Lua\TeX\ will not carry out the default behvaior associated with the callback, so do not mess with these three callbacks unless you are duplicating the default behavior of the callback or you really know what you're doing. Otherwise, you risk breaking the package. See |mathfont_code.pdf| for more information. -The ``internal commands restored'' error arises when the user calls |\mathfont| after the package already restored the small portion of the \LaTeX\ kernel that it adjusts when loaded. Typically this happens when the user calls |\mathfont| after |\restoremathinternals|. The package will ignore any |\mathfont| commands in this situation, so while the error is technically harmless, you may not see some font changes you might have been expecting. Similarly, if the user tries to set the default font multiple times for some character class, the package will ignore any additional attempts, issue a warning, and continue the compilation process. +\section{Default Math Parameters} -What should you do if you can't resolve an error? First, always, always make sure that you spelled all of your commands correctly and closed all braces and brackets. Then check the \textsf{mathfont} documentation---you may be trying to do something outside the scope of the package, or you may be dealing with a special case. The internet is a great resource, and websites such as the \TeX\ StackExchange, Share\LaTeX, and Wikibooks' \LaTeX\ wiki are often invaluable when dealing with \TeX-related issues. Definitely ask another human as well! At that point you should email the author about your code---you might have identified a bug. I welcome emails about \textsf{mathfont} and will make every effort to write back to correspondence about the package, but I cannot guarantee a timely response. +Lua\TeX\ uses the MathConstants table from the most recent font assigned for use in math mode, and this means that in a document with multiple math fonts, the choice of MathConstants table can depend on the order of font declaration and be unpredictable. To avoid potential problems from using the wrong MathConstants table, \textsf{mathfont} provides the command +\begin{code} +|\mathconstantsfont{|\meta{prev arg}|}|, +\end{code} +where \meta{prev arg} should be any argument that you have previously fed to |\mathfont|. When you call |\mathconstantsfont|, \textsf{mathfont} forces Lua\TeX\ to always use the MathConstants table from the font that corresponded to that instance of |\mathfont|. You don't need to worry about MathConstants when you use |\setfont| because the package calls |\mathconstantsfont| automatically when you use |\setfont|. This command should appear in the preamble only. \end{document} \endinput -- cgit v1.2.3