公式环境中的书法括号

公式环境中的书法括号

考虑以下代码:

\documentclass{article}
\usepackage{tikz}
\usepackage{array}
\usepackage{mathtools}

\begin{document}

\begin{equation}
  a(y)=\left\{
  \begin{array}{@{}ll@{}}
    0 & \text{if}\ y < 1 \\
    \frac{1}{2}\biggl[ 1 + sin\left(\frac{2 \pi}{\theta}\right) \biggr]  & \text{if}\ 1\leq y < 4 \\
    1 & \text{if}\ 4 \leq y < 5 \\
 \frac{1}{2}\biggl[ 1 - sin\left(\frac{2 \pi}{\theta}\right) \biggr]  & \text{if}\ 6 \leq y < 7 \\
    0 & \text{otherwise}
  \end{array}\right.
\end{equation}

\end{document}

输出为:

在此处输入图片描述

如何实现以下书法花括号(下图借自这里)由 TikZ 包提供,在方程环境中:

在此处输入图片描述

在这个矩阵中实现了类似的样式回答。我无法用方程来实现它。

答案1

我怀疑有一个使用该nicematrix包的优雅解决方案,但我没有提供它的经验。这是一个 tikz 解决方案,它将数组环境包装在 tikz 节点中,然后用括号装饰左侧边缘。

\documentclass{article}
%\url{https://tex.stackexchange.com/q/627983/86}
\usepackage{tikz}
\usepackage{array}
\usepackage{mathtools}

\usetikzlibrary{tikzmark,decorations.pathreplacing,calligraphy}

\begin{document}
\begin{equation}
a(y)= \begin{tikzpicture}[baseline=(base)]
\node (array) {\(\displaystyle\begin{array}{@{}ll@{}} 0 & \text{if}\ y < 1 \\
\frac{1}{2}\biggl[ 1 + \sin\left(\frac{2 \pi}{\theta}\right) \biggr] & \text{if}\ 1\leq y < 4 \\
1 & \text{if}\ 4 \leq y < 5 \\
\frac{1}{2}\biggl[ 1 - \sin\left(\frac{2 \pi}{\theta}\right) \biggr] & \text{if}\ 6 \leq y < 7 \\
0 & \text{otherwise} \end{array}\)};
\path (array) +(0,-.5ex) coordinate (base);
\draw[decorate, decoration=calligraphic brace,ultra thick] (array.south west) -- (array.north west);
\end{tikzpicture}
\end{equation}
\end{document}

带书法括号的方程式

显然,需要调整一些参数来改善外观,例如线宽和幅度。

(顺便说一句,这正是我在设计这些支架时设想的用例。)

以下是amplitude=3mm

幅度更大

答案2

我将重点放在使表达式更紧凑,主要是通过将\frac符号替换为“斜线”符号(又称内联分数符号)。而且,由于您正在加载包mathtools,因此您可以使用其cases*环境而不是普通array环境。

哦,一定要写\sin,而不是sin

在此处输入图片描述

\documentclass{article}
\usepackage{mathtools} % for 'cases*' environment

\begin{document}
\begin{equation}
  a(y)=
  \begin{cases*}
    0                                     & if $\hphantom{1\leq{}}y < 1$ \\
    \frac{1}{2}[ 1 + \sin(2\pi/\theta) ]  & if $1 \leq y < 4$ \\
    1                                     & if $4 \leq y < 5$ \\
    \frac{1}{2}[ 1 - \sin(2\pi/\theta) ]  & if $6 \leq y < 7$ \\
    0                                     & otherwise
  \end{cases*}
\end{equation}
\end{document}

附录回应 OP 的后续评论:要生成真正优雅的高大花括号,你可以下载并安装mtpro2软件包——请注意,虽然完整软件包不是免费的,但其“精简”子集是免费的——并使用其\ccases宏。优雅的花括号最高可达 10 厘米(4 英寸)。请注意,mtpro2数学字体属于 Times Roman 字体系列;这可能符合您的喜好,也可能不符合您的喜好。

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}      % for '\text' macro
\usepackage{newtxtext}    % Times Roman clone text font
\usepackage[lite]{mtpro2} % for '\ccases' macro

\begin{document}
\begin{equation}
  a(y)=
  \ccases{
    0                                     & \text{ if $\phantom{1\leq{}}y < 1$} \\
    \frac{1}{2}[ 1 + \sin(2\pi/\theta) ]  & \text{ if $1 \leq y < 4$} \\
    1                                     & \text{ if $4 \leq y < 5$} \\
    \frac{1}{2}[ 1 - \sin(2\pi/\theta) ]  & \text{ if $6 \leq y < 7$} \\
    0                                     & \text{otherwise}
  }
\end{equation}
\end{document}

相关内容