How to make large brace and parenthesis thinner?

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. Then my question is: How to make large brace and parenthesis be thinner? Any help is welcome!

• 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 2 '18 at 12:36
• @Mico In fact, I just want to change the thickness of such brace and parenthesis only. – Mogic Oct 2 '18 at 14:27

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}


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}


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

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}


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

• I use a lot of such kind of brace and parenthesis, and so I need one more elegant way. – Mogic Oct 2 '18 at 14:24
• @Kuttens As I said, the appropriate solution means finding a font that by its design gives you the brace width you are looking for. – Steven B. Segletes Oct 2 '18 at 14:32

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.

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}


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 posted 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}
\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:

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