Difference between revisions of "Math/fractions"

From Wiki
Jump to navigation Jump to search
(31 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
= Fractions =
 
= Fractions =
  
{{cmd|frac}} switches the math style while others enforce a certain style :
+
{{cmd|frac}} typeset fraction, according to the current style.
{{cmd|tfrac}} for textstyle, {{cmd|dfrac}} for display style), {{cmd|sfrac}} for script style.
+
Others commands enforce a certain style :
 +
* {{cmd|tfrac}} for text style
 +
* {{cmd|dfrac}} for display style
 +
* {{cmd|xfrac}} for script style.
 +
* {{cmd|sfrac}} and {{cmd|xxfrac}} for script of script style.
 +
* {{cmd|cfrac}} for continued style
 +
* {{cmd|vfrac}} for semi-horizontal style
 +
* {{cmd|hfrac}} for horizontal style
 +
 
  
 
<context source="yes">
 
<context source="yes">
Line 10: Line 18:
 
\HL
 
\HL
 
\NC math                \NC \type{\frac{1}{3}}  \NC \m{\frac{1}{3}}  \NC\NR
 
\NC math                \NC \type{\frac{1}{3}}  \NC \m{\frac{1}{3}}  \NC\NR
 +
\NC display            \NC \type{\dfrac{1}{3}}  \NC \m{\dfrac{1}{3}}  \NC\NR
 
\NC script              \NC \type{\xfrac{1}{3}}  \NC \m{\xfrac{1}{3}}  \NC\NR
 
\NC script              \NC \type{\xfrac{1}{3}}  \NC \m{\xfrac{1}{3}}  \NC\NR
 +
\NC scriptscript        \NC \type{\sfrac{1}{3}}  \NC \m{\sfrac{1}{3}}  \NC\NR
 
\NC scriptscript        \NC \type{\xxfrac{1}{3}} \NC \m{\xxfrac{1}{3}} \NC\NR
 
\NC scriptscript        \NC \type{\xxfrac{1}{3}} \NC \m{\xxfrac{1}{3}} \NC\NR
 +
\NC semi-horizontal    \NC \type{\vfrac{1}{3}}  \NC \m{\vfrac{1}{3}}  \NC\NR
 +
\NC horizontal          \NC \type{\hfrac{1}{3}}  \NC \m{\hfrac{1}{3}}  \NC\NR
 +
\NC continued          \NC \type{\cfrac{1}{3}}  \NC \m{\cfrac{1}{3}}  \NC\NR
 
\NC text                \NC \type{\tfrac{1}{3}}  \NC \m{\tfrac{1}{3}}  \NC\NR
 
\NC text                \NC \type{\tfrac{1}{3}}  \NC \m{\tfrac{1}{3}}  \NC\NR
\NC script              \NC \type{\sfrac{1}{3}}  \NC \m{\sfrac{1}{3}}  \NC\NR
 
\NC display            \NC \type{\dfrac{1}{3}}  \NC \m{\dfrac{1}{3}}  \NC\NR
 
\NC continued          \NC \type{\cfrac{1}{3}}  \NC \m{\cfrac{1}{3}}  \NC\NR
 
\NC "vertical"          \NC \type{\vfrac{1}{3}}  \NC \m{\vfrac{1}{3}}  \NC\NR
 
\NC "horizontal"        \NC \type{\hfrac{1}{3}}  \NC \m{\hfrac{1}{3}}  \NC\NR
 
 
\stoptabulate
 
\stoptabulate
  
 
</context>
 
</context>
 +
 +
== Different behaviors for inline and display mode ==
  
 
<context source="yes">
 
<context source="yes">
 
\startbuffer[frac]
 
\startbuffer[frac]
\frac{1}{2} + \dfrac{1}{2} - \sfrac{1}{2} + \tfrac{1}{2}
+
\frac{1}{2} + \dfrac{1}{2} - \sfrac{1}{2} - \xfrac{1}{2}  - \xxfrac{1}{2} + \vfrac{1}{2} + \hfrac{1}{2}  + \tfrac{1}{2}
 
\stopbuffer
 
\stopbuffer
  
 
\framed[frame=off,align=normal]{%  <=== just to improve wiki rendering
 
\framed[frame=off,align=normal]{%  <=== just to improve wiki rendering
Each time, we display consecutively: math style, display style, script style, and text style.
+
Each time, we display the different style:
  
 
With \tex{startformula} (display mode)
 
With \tex{startformula} (display mode)
Line 35: Line 45:
 
\stopformula
 
\stopformula
  
With \tex{m} (inline mode): \m{\getbuffer[frac]}
+
With \tex{m} (inline mode): \m{\getbuffer[frac]}}
 +
</context>
 +
 
 +
 
 +
== Fractions of fractions ==
 +
 
 +
<context source="yes">
 +
\startbuffer[frac]
 +
\frac{1}{2} + \dfrac{1}{2} - \sfrac{1}{2} - \xfrac{1}{2}  - \xxfrac{1}{2} + \vfrac{1}{2} + \hfrac{1}{2}  + \tfrac{1}{2}
 +
\stopbuffer
 +
 
 +
\framed[frame=off,align=normal]{%  <=== just to improve wiki rendering
 +
Now fraction of fractions:
  
 
With \tex{startformula} (display mode)
 
With \tex{startformula} (display mode)
Line 44: Line 66:
 
\stopformula
 
\stopformula
  
With \tex{m} (inline mode):  
+
 
 +
With \tex{m} (inline mode) and \tex{frac}:
 
\m{\frac
 
\m{\frac
 
   {\getbuffer[frac]}
 
   {\getbuffer[frac]}
 
   {\getbuffer[frac]}}
 
   {\getbuffer[frac]}}
  
}
+
With \tex{m} (inline mode) and \tex{cfrac} (continued):
 +
\m{\cfrac
 +
  {\getbuffer[frac]}
 +
  {\getbuffer[frac]}}}
 +
</context>
 +
 
 +
== Formatting with {{cmd|definemathfraction}} ==
 +
 
 +
Just an example from [https://www.mail-archive.com/ntg-context@ntg.nl/msg69987.html mailing list]
 +
 
 +
<context source="yes">
 +
\startformula    \frac {a}  { \frac{b}{c} }  \stopformula
 +
 
 +
\definemathfraction
 +
  [wfrac]
 +
  [margin=.25em]
 +
 
 +
\startformula    \wfrac {a} { \frac{b}{c} }  \stopformula
 +
</context>
  
 
= Binomial coefficients =
 
= Binomial coefficients =
Line 56: Line 97:
 
{{cmd|setupmathfractions}}.
 
{{cmd|setupmathfractions}}.
  
The default look of the binomial coefficients look good in several fonts, but for example not perfect in Latin Modern. You can play with {{cmd|setupmathfractions}}, and in particular, you can try
 
  
<texcode>
+
Below we show some of the often used fonts, together with the default setting and the one just suggested. The default look of the binomial coefficients look good in several fonts, but for example not perfect in Latin Modern. You may want to play with {{cmd|definemathfraction}}.
\setupmathfractions[binomial][
 
fences=parenthesis,
 
%threshold=1.5,
 
]
 
</texcode>
 
  
Below we show some of the often used fonts, together with the default setting and the one just suggested. You can also play with the
 
threshold key.
 
  
<texcode>
+
<context source="yes">
 
\setuphead[chapter][align=middle]
 
\setuphead[chapter][align=middle]
 
\setuphead[section][style=\bfa]
 
\setuphead[section][style=\bfa]
 
\setuphead[subsection][style=\it]
 
\setuphead[subsection][style=\it]
 
  
 
\setuplayout[
 
\setuplayout[
Line 110: Line 142:
 
\getbuffer
 
\getbuffer
  
\switchtobodyfont[lucidaot]
+
%\switchtobodyfont[lucidaot]
\subsubject{Lucida}
+
%\subsubject{Lucida}
\getbuffer
+
%\getbuffer
  
 
\column[yes]
 
\column[yes]
  
\setupmathfractions[binom][
+
\definemathfraction[binomial]  [binom]   [fences=parenthesis,rule=no]
fences=parenthesis,
+
\definemathfraction[tbinomial] [binomial] [mathstyle=text]
]
+
\definemathfraction[dbinomial] [binomial] [mathstyle=display]
 +
 
 +
\startbuffer
 +
\type{\binomial{n}{k}}: $\binomial{n}{k}$\par
 +
\type{\tbinomial{n}{k}}: $\tbinomial{n}{k}$\par
 +
\type{\dbinomial{n}{k}}: $\dbinomial{n}{k}$\par
 +
\stopbuffer
  
 
\switchtobodyfont[modern]
 
\switchtobodyfont[modern]
\subject{With fences=parenthesis}
+
\subject{\tex{definemathfraction}}
 
\subsubject{Latin Modern}
 
\subsubject{Latin Modern}
 
\getbuffer
 
\getbuffer
Line 133: Line 171:
 
\getbuffer
 
\getbuffer
  
\switchtobodyfont[lucidaot]
+
%\switchtobodyfont[lucidaot]
\subsubject{Lucida}
+
%\subsubject{Lucida}
\getbuffer
+
%\getbuffer
  
 
\stopcolumns
 
\stopcolumns
 
\stoptext
 
\stoptext
</texcode>
+
 
 +
</context>
  
 
The result of the code above, with the standalone from 2017-09-05 is given below.
 
The result of the code above, with the standalone from 2017-09-05 is given below.
  
 
[[File:binomialcoefficients.png|700px]]
 
[[File:binomialcoefficients.png|700px]]
 
[[Category:Math]]
 

Revision as of 19:28, 12 May 2024

Fractions

\frac typeset fraction, according to the current style. Others commands enforce a certain style :


\starttabulate[|l|l|l|]
\HL
\NC {\bf Size or style} \NC {\bf Code}           \NC {\bf Typesetting} \NC\NR
\HL
\NC math                \NC \type{\frac{1}{3}}   \NC \m{\frac{1}{3}}   \NC\NR
\NC display             \NC \type{\dfrac{1}{3}}  \NC \m{\dfrac{1}{3}}  \NC\NR
\NC script              \NC \type{\xfrac{1}{3}}  \NC \m{\xfrac{1}{3}}  \NC\NR
\NC scriptscript        \NC \type{\sfrac{1}{3}}  \NC \m{\sfrac{1}{3}}  \NC\NR
\NC scriptscript        \NC \type{\xxfrac{1}{3}} \NC \m{\xxfrac{1}{3}} \NC\NR
\NC semi-horizontal     \NC \type{\vfrac{1}{3}}  \NC \m{\vfrac{1}{3}}  \NC\NR
\NC horizontal          \NC \type{\hfrac{1}{3}}  \NC \m{\hfrac{1}{3}}  \NC\NR
\NC continued           \NC \type{\cfrac{1}{3}}  \NC \m{\cfrac{1}{3}}  \NC\NR
\NC text                \NC \type{\tfrac{1}{3}}  \NC \m{\tfrac{1}{3}}  \NC\NR
\stoptabulate

Different behaviors for inline and display mode

\startbuffer[frac]
\frac{1}{2} + \dfrac{1}{2} - \sfrac{1}{2} - \xfrac{1}{2}  - \xxfrac{1}{2} + \vfrac{1}{2} + \hfrac{1}{2}  + \tfrac{1}{2}
\stopbuffer

\framed[frame=off,align=normal]{%   <=== just to improve wiki rendering
Each time, we display the different style:

With \tex{startformula} (display mode)
\startformula
\getbuffer[frac]
\stopformula

With \tex{m} (inline mode): \m{\getbuffer[frac]}}


Fractions of fractions

\startbuffer[frac]
\frac{1}{2} + \dfrac{1}{2} - \sfrac{1}{2} - \xfrac{1}{2}  - \xxfrac{1}{2} + \vfrac{1}{2} + \hfrac{1}{2}  + \tfrac{1}{2}
\stopbuffer

\framed[frame=off,align=normal]{%   <=== just to improve wiki rendering
Now fraction of fractions:

With \tex{startformula} (display mode)
\startformula
  \frac
    {\getbuffer[frac]}
    {\getbuffer[frac]}
\stopformula


With \tex{m}  (inline mode) and \tex{frac}:
\m{\frac
  {\getbuffer[frac]}
  {\getbuffer[frac]}}

With \tex{m}  (inline mode) and \tex{cfrac} (continued):
\m{\cfrac
  {\getbuffer[frac]}
  {\getbuffer[frac]}}}

Formatting with \definemathfraction

Just an example from mailing list

\startformula    \frac {a}  { \frac{b}{c} }   \stopformula

\definemathfraction
  [wfrac]
  [margin=.25em]

\startformula    \wfrac {a} { \frac{b}{c} }   \stopformula

Binomial coefficients

To write binomial coefficients you use any of \binom, \tbinom or \dbinom (the latter two if you want to force text style or display style respectively). These commands are defined as fractions in ConTeXt, and can be set up with \setupmathfractions.


Below we show some of the often used fonts, together with the default setting and the one just suggested. The default look of the binomial coefficients look good in several fonts, but for example not perfect in Latin Modern. You may want to play with \definemathfraction.


\setuphead[chapter][align=middle]
\setuphead[section][style=\bfa]
\setuphead[subsection][style=\it]

\setuplayout[
topspace=1in,
bottomspace=1in,
header=0pt,
footer=0pt,
backspace=1in,
margin=0pt,
width=fit,
height=fit,
]

\startbuffer
\type{\binom{n}{k}}: $\binom{n}{k}$\par
\type{\tbinom{n}{k}}: $\tbinom{n}{k}$\par
\type{\dbinom{n}{k}}: $\dbinom{n}{k}$\par
\stopbuffer

\starttext

\title{Binomial coefficients}

\startcolumns[n=2]

\subject{Default settings}

\subsubject{Latin Modern}
\getbuffer

\switchtobodyfont[pagella]
\subsubject{Pagella}
\getbuffer

\switchtobodyfont[stixtwo]
\subsubject{STIX Two}
\getbuffer

%\switchtobodyfont[lucidaot]
%\subsubject{Lucida}
%\getbuffer

\column[yes]

\definemathfraction[binomial]  [binom]    [fences=parenthesis,rule=no]
\definemathfraction[tbinomial] [binomial] [mathstyle=text]
\definemathfraction[dbinomial] [binomial] [mathstyle=display]

\startbuffer
\type{\binomial{n}{k}}: $\binomial{n}{k}$\par
\type{\tbinomial{n}{k}}: $\tbinomial{n}{k}$\par
\type{\dbinomial{n}{k}}: $\dbinomial{n}{k}$\par
\stopbuffer

\switchtobodyfont[modern]
\subject{\tex{definemathfraction}}
\subsubject{Latin Modern}
\getbuffer

\switchtobodyfont[pagella]
\subsubject{Pagella}
\getbuffer

\switchtobodyfont[stixtwo]
\subsubject{STIX Two}
\getbuffer

%\switchtobodyfont[lucidaot]
%\subsubject{Lucida}
%\getbuffer

\stopcolumns
\stoptext

The result of the code above, with the standalone from 2017-09-05 is given below.

binomialcoefficients.png