command
所以我使用创建了一个 latex newcommand
。这是它的定义
\newcommand{\twopartdef}[3]
{
\left\{
\begin{array}{ll}
#1 & \mbox{if } #2 \\
#3 & \mbox{otherwise}
\end{array}
\right
}
但是当我尝试使用此示例中的命令时
f$(x)$ = \twopartdef{$\lbrace \alpha \rbrace}{$x >$ 10}{\lbrace \beta \rbrace}
Latex 告诉我它添加了该符号,$
因为它不匹配。
我做错了什么?我应该做哪些改正?
答案1
我假设您正在显示数学环境中编写整个array
构造(因为它至少有两行高度。因此,您在使用中不需要任何数学切换分隔符:
\documentclass{article}
\newcommand{\twopartdef}[3]{%
\left\{
\begin{array}{ll}
#1 & \mbox{if } #2 \\
#3 & \mbox{otherwise}
\end{array}
\right.
}
\begin{document}
\[
f(x) = \twopartdef{\{ \alpha \}}{x > 10}{\{ \beta \}}
\]
\end{document}
可扩展左括号和“两部分定义”的开头之间有\arraycolsep
间隙。如果要删除该间隙,请使用列array
规范{@{}ll}
。此外,我使用\right.
(不仅仅是\right
)来结束可扩展括号对。
amsmath
提供了一个cases
可以执行类似操作的环境。以下是使用该环境的定义:
\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\newcommand{\twopartdef}[3]{%
\begin{cases}
#1 & \text{if #2} \\
#3 & \text{otherwise}
\end{cases}
}
\begin{document}
\[
f(x) = \twopartdef{\{ \alpha \}}{$x > 10$}{\{ \beta \}}
\]
\end{document}
为了完整性,整个条件设置在中\text
,这需要您x>10
再次在数学模式下换行。