From d59046512c204968122917758ee38d4529b1a03f Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Tue, 18 Jul 2023 14:27:24 +0200 Subject: [PATCH] Use macros with parameters for modulo macros It turns out that it is possible to use macros with parameters in lib/symbols. I use this to simplify the use of mod-like macros. Update documentation. --- lib/doc/Math.lyx | 250 +++++++++++++++++++++++++++++++++++++++++++++-- lib/symbols | 22 ++++- 2 files changed, 260 insertions(+), 12 deletions(-) diff --git a/lib/doc/Math.lyx b/lib/doc/Math.lyx index 0f1460934f..a9fbcf9d17 100644 --- a/lib/doc/Math.lyx +++ b/lib/doc/Math.lyx @@ -236,6 +236,7 @@ logicalmkup \docbook_mathml_prefix 1 \author -584632292 "Richard Kimberly Heck" \author -563046850 "Jean-Marc LASGOUTTES" +\author -495245474 "Jean-Marc Lasgouttes" \author 177693 "x" \author 5863208 "ab" \author 47243155 "Jean-Marc" @@ -29069,24 +29070,257 @@ modulo- \begin_layout Standard The modulo-function is special, because it exists in four variants. - The variants in a displayed formula are: + The variants in a +\change_deleted -495245474 1689684546 + displayed +\change_inserted -495245474 1689684548 +n inline +\change_unchanged + formula are: +\change_deleted -495245474 1689684526 + \begin_inset Formula \begin{align*} \underline{\textrm{Command}\raisebox{-0.9mm}{}} & & \underline{\textrm{Result}}\\ -\mathrm{a\backslash mod\textrm{␣}b} & & a\mod b\\ -\mathrm{a\backslash pmod\textrm{␣}b} & & a\pmod b\\ -\mathrm{a\backslash bmod\textrm{␣}b} & & a\bmod b\\ -\mathrm{a\backslash pod\textrm{␣}b} & & a\pod b +\mathrm{a\backslash mod\textrm{␣}b\textrm{␣}} & & a\mod b\\ +\mathrm{a\backslash pmod\textrm{␣}b\textrm{␣}} & & a\pmod b\\ +\mathrm{a\backslash bmod\textrm{␣}b\textrm{␣}} & & a\bmod b\\ +\mathrm{a\backslash pod\textrm{␣}b\textrm{␣}} & & a\pod b \end{align*} \end_inset +\change_inserted -495245474 1689684215 + \end_layout \begin_layout Standard -In an inline formula less space is set before the function names for all variants. - By default the modulo-functions take only the first character following the command into account. +\noindent +\align center + +\change_inserted -495245474 1689684215 +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted -495245474 1689684215 +Command +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted -495245474 1689684215 +Result +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted -495245474 1689684286 +a +\backslash +mod +\begin_inset space \textvisiblespace{} +\end_inset + +b +\change_unchanged + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted -495245474 1689684457 +\begin_inset Formula $a\mod b$ +\end_inset + + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted -495245474 1689684416 +a +\backslash +pmod +\begin_inset space \textvisiblespace{} +\end_inset + +b +\begin_inset space \textvisiblespace{} +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted -495245474 1689684474 +\begin_inset Formula $a\pmod b$ +\end_inset + + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted -495245474 1689684419 +a +\backslash +bmod +\begin_inset space \textvisiblespace{} +\end_inset + +b +\begin_inset space \textvisiblespace{} +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted -495245474 1689684488 +\begin_inset Formula $a\bmod b$ +\end_inset + + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted -495245474 1689684421 +a +\backslash +pod +\begin_inset space \textvisiblespace{} +\end_inset + +b +\begin_inset space \textvisiblespace{} +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\change_inserted -495245474 1689684502 +\begin_inset Formula $a\pod b$ +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\change_unchanged + +\end_layout + +\begin_layout Standard +In a +\change_deleted -495245474 1689684554 +n inline +\change_inserted -495245474 1689684556 + display +\change_unchanged + formula +\change_inserted -495245474 1689684559 +, + +\change_unchanged + +\change_deleted -495245474 1689684562 +less +\change_inserted -495245474 1689684563 +more +\change_unchanged + space is set before the function names for all variants +\change_inserted -495245474 1689684688 + but +\series bold + +\backslash +mod. + +\series default + This later version is also the only one that does not take the +\series bold +b +\series default + as argument but acts as a binary operator +\change_unchanged +. + +\change_deleted -495245474 1689684609 +By default the modulo-functions take only the first character following the command into account. To use more than one character, put them in \SpecialChar TeX braces: @@ -29100,6 +29334,8 @@ In an inline formula less space is set before the function names for all variant \end_inset +\change_unchanged + \end_layout \begin_layout Section diff --git a/lib/symbols b/lib/symbols index 293c7291b4..207741ad58 100644 --- a/lib/symbols +++ b/lib/symbols @@ -11,7 +11,7 @@ # Note that the first argument of \def must not uses braces, and the second # must use braces. # -# syntax: Either +# syntax: (note that there should be no space character in the definition) # \def\macroname{definition} # or # \def\macroname{definition} requires @@ -23,6 +23,11 @@ # ("" for empty strings is not supported. One would have to use x for fields # that are not set.) # +# It is also possible to use parameters for the macros +# \def\macroname#1{definition using #1} +# +# TODO: Devise a mechanism to represent these in DocBook/XHTML +# # If you put any symbol with a requirement inside an iffont clause, you # must put an alternative definition with the same requirement in the # corresponding else clause. Otherwise the LaTeX output would depend on the @@ -1115,12 +1120,19 @@ exp lyxblacktext 0 0 func x Pr lyxblacktext 0 0 funclim x gcd lyxblacktext 0 0 funclim x deg lyxblacktext 0 0 func x -mod lyxblacktext 0 0 func x amsmath -bmod lyxblacktext 0 0 func x -pmod lyxblacktext 0 0 func x -pod lyxblacktext 0 0 func x amsmath +# +# Modulo notation +# + +# the original definitions have spacing differences between display/inline/script, +# but we cannot reproduce that here +\def\bmod{\mkern1mu\mathbin{\textrm{mod}}\mkern1mu} +\def\pmod#1{\mkern18mu(\textrm{mod}\mkern6mu#1)} +\def\pod#1{\mkern18mu(#1)} amsmath +\def\mod#1{\mkern12mu\textrm{mod}\mkern6mu#1} amsmath + # mathtools.sty vcentcolon cmr 58 58 mathrel : mathtools ordinarycolon cmr 58 58 mathrel : mathtools -- 2.39.5