14

A MWE is as follows:

\documentclass{amsart}

\begin{document}
\Huge
We have
\[
f(x)=
\begin{cases}
2x^{2018}+9&x<2018\\
3x+2018&x\geq 2018.
\end{cases}
\]
And we also have
\[
\left(
\begin{array}{cc}
 x   &m  \\
 y   &n  \\
 x   &m  \\
 y   &n
\end{array}
\right).
\]

\end{document}

As you see in the PDF, the large brace and parenthesis are very thick. enter image description here Then my question is: How to make large brace and parenthesis be thinner? Any help is welcome!

Henri Menke
  • 109,596
M. Logic
  • 4,214
  • What's too thin, just right, or too thick is quite subjective. In a well-designed math font, the thickness of the tall parentheses and curly braces is a parameter carefully chosen by the font designer. If you can't stand the thickness of the parentheses and curly braces in Computer Modern (the default font family in most TeX installations, including the one that generated the screenshot you posted), you should probably look into using a different math font to begin with. Try issuing the instruction \usepackage{newtxtext,newtxmath} in the preamble -- and see if the result is more pleasing. – Mico Oct 02 '18 at 12:36
  • @Mico In fact, I just want to change the thickness of such brace and parenthesis only. – M. Logic Oct 02 '18 at 14:27

4 Answers4

8

You could (ab)use \scalebox.

\documentclass{amsart}
\usepackage{graphicx}
\begin{document}
\Huge
We have
\[
f(x)=
\scalebox{0.5}[1]{$\displaystyle
\left\{\scalebox{2}[1]{$\displaystyle\begin{array}{ll}
2x^{2018}+9&x<2018\\
3x+2018&x\geq 2018.
\end{array}$}\right.$}
\]
And we also have
\[
\scalebox{0.5}[1]{$\displaystyle
\left(\scalebox{2}[1]{$\displaystyle
\begin{array}{cc}
 x   &m  \\
 y   &n  \\
 x   &m  \\
 y   &n
\end{array}$}
\right)$}.
\]
\end{document}

enter image description here

If you want to use that very often, you may define your own environments for that.

\documentclass{amsart}
\usepackage{graphicx}
\usepackage{environ}
\NewEnviron{thincases}{\scalebox{0.5}[1]{$\displaystyle
\left\{\scalebox{2}[1]{\setlength{\arraycolsep}{6pt}% <- I did not look up the "correct" value
$\displaystyle\begin{array}{ll}
\BODY
\end{array}$}\right.$}}%}
\NewEnviron{thinpmatrix}{\scalebox{0.5}[1]{$\displaystyle
\left(\scalebox{2}[1]{$\displaystyle
\begin{matrix}
\BODY
\end{matrix}$}
\right)$}}
\begin{document}
\Huge
We have
\[
f(x)=
\begin{thincases}
2x^{2018}+9&x<2018\\
3x+2018&x\geq 2018.
\end{thincases}
\]
And we also have
\[
\begin{thinpmatrix}
 x   &m  \\
 y   &n  \\
 x   &m  \\
 y   &n
\end{thinpmatrix}
\]
\end{document}

enter image description here

  • Too abused --^_^-- I use a lot of such kind of brace and parenthesis, and so I need one more elegant way. – M. Logic Oct 02 '18 at 14:24
  • 1
    @Kuttens You can simply define your own environments for repeated use. –  Oct 02 '18 at 18:01
4

Ideally, you should choose a font that gives the brace dimensions you seek. And so, I would not recommend this workaround for general use, but the scalerel package can scale glyphs in a width-limited fashion:

\documentclass{amsart}
\usepackage{scalerel}
\begin{document}
\Huge
We have
\[
f(x)=
\scaleleftright[13pt]{\biggl\{}{
\begin{aligned}
2x^{2018}+9&x<2018\\
3x+2018&x\geq 2018.
\end{aligned}
}{.}
\]
And we also have
\[
\scaleleftright[13pt]{\biggl(}{
\begin{array}{cc}
 x   &m  \\
 y   &n  \\
 x   &m  \\
 y   &n
\end{array}}{\biggr)}
.
\]
\end{document}

enter image description here

Alternately, they can stretch them in an aspect-ratio-limited fashion.

4

As both of the previously posted answers have already pointed out, by far the most elegant way to obtain thinner curly braces and round parentheses is to switch to a textfont/mathfont combination whose curly braces and round parentheses are thinner than those of Computer Modern.

The following four screenshot show the varying looks produced by Computer Modern, a Times Roman clone, and two Palatino clones. To my eye, the tall curly brace and the tall round parentheses produced by the newtxmath package are quite a bit thinner than those of the other fonts.

enter image description here

enter image description here

enter image description here

enter image description here


And here's the code that gives rise to the preceding screenshots.

\documentclass{amsart}
%\usepackage{newtxtext,newtxmath} % Times Roman clone
%\usepackage{newpxtext,newpxmath} % Palatino clone
\usepackage{kpfonts} % another Palatino clone
\begin{document}
%Computer Modern (default)
%newtxtext/newtxmath
%newpxtext/newpxmath
kpfonts
\begin{gather*}
f(x)=
\begin{cases}
  2x^{2018}+9 & x<2018    \\
  3x+2018     & x\geq 2018.
\end{cases}\\
\begin{pmatrix}
  x & m \\ y & n \\ x & m \\ y & n
\end{pmatrix}
\end{gather*}
\end{document}
Mico
  • 506,678
  • By the way, how do you pronounce your surname "Loretan"? – M. Logic Nov 24 '22 at 14:01
  • @M.Logic - I pronounce it as if it were Italian: Lo-re-tahn. In fact, the name comes from the Veneto region of Italy, so pronouncing the name as if it were Italian is quite alright. :-) – Mico Nov 24 '22 at 14:59
  • Could you explain that exactly? Just like: Lo is as in lost ... – M. Logic Nov 24 '22 at 15:01
  • @M.Logic - I'm afraid I'm not a linguist and have no idea how various sonograms are written. I pronounce the "o" in "Loretan" like how the French (but not an American) would pronounce the "o" sound in "beau", or the English (but not an American) would pronounce the "o" sound in "Laura". – Mico Nov 24 '22 at 20:37
  • Then a reads as a in many or as er in letter? – M. Logic Nov 25 '22 at 01:10
  • @M.Logic - Neither! More like the a in “are. – Mico Nov 25 '22 at 08:25
  • I starting to think that my initial comment, that the name should be pronounced as if it were Italian (because, after all, it comes from a part of Italy), was not exactly productive... – Mico Nov 25 '22 at 08:35
  • Then could you give an exact sound for it in International Phonetic Alphabet for Italian. By the way, your name is scarce。 – M. Logic Nov 25 '22 at 11:38
  • @M.Logic - It's quite straightforward (to me at least): loretan. – Mico Nov 25 '22 at 15:49
4

With a lot of efforts, I find an elegant way to change the large brace and parenthesis only, that is to invoke such largesymbols from the other font file. I post it here indicating that someone will need it. The codes are as follows:

\documentclass{amsart}

\makeatletter \DeclareSymbolFont{mylargesymbols}{OMX}{ccex}{m}{n} %change the thickness of large left and right braces \DeclareMathDelimiter{\lbrace}{\mathopen}{symbols}{"66}{mylargesymbols}{"08} \DeclareMathDelimiter{\rbrace}{\mathclose}{symbols}{"67}{mylargesymbols}{"09} %change the thickness of large left and right parenthesis \DeclareMathDelimiter{(}{\mathopen}{operators}{"28}{mylargesymbols}{"00} \DeclareMathDelimiter{)}{\mathclose}{operators}{"29}{mylargesymbols}{"01} %change the thickness of large aleft and right brakets \DeclareMathDelimiter{[}{\mathopen}{operators}{"5B}{mylargesymbols}{"02} \DeclareMathDelimiter{]}{\mathclose}{operators}{"5D}{mylargesymbols}{"03} %change the thickness of large above and uner braces \DeclareMathSymbol{\braceld}{\mathord}{mylargesymbols}{"7A} \DeclareMathSymbol{\bracerd}{\mathord}{mylargesymbols}{"7B} \DeclareMathSymbol{\bracelu}{\mathord}{mylargesymbols}{"7C} \DeclareMathSymbol{\braceru}{\mathord}{mylargesymbols}{"7D} %change the thickness of large left and right groups \DeclareMathDelimiter{\lgroup}{\mathopen}{mylargesymbols}{"3A}{mylargesymbols}{"3A} \DeclareMathDelimiter{\rgroup}{\mathclose}{mylargesymbols}{"3B}{mylargesymbols}{"3B} %change the thickness of large left and right braceverts \DeclareMathDelimiter{\bracevert}{\mathord}{mylargesymbols}{"3E}{mylargesymbols}{"3E} \makeatother

\begin{document} \Huge We have [ f(x)= \begin{cases} 2x^{2018}+9&x<2018;\ 3x+2018&x\geq 2018. \end{cases} ] And we also have [ \left(\left{ \begin{array}{cc} x &m \ y &n \ x &m \ y &n \end{array} \right}\right) ] and [k\leq \langle \underbrace{a,\cdots,a,b,\cdots,b}_{a+b~\text{many}}\rangle.] We don't change the thickness of any other large symbols, for example [\sum^x_yx+y=\prod_y^x xy.]

\end{document}

See the effects in the PDF:

enter image description here

By the way, you can also use the other large symbol font codes instead of ccex as you wish.

M. Logic
  • 4,214