cases
尽管我已经尝试过了,但在使用构造(来自amsmath
包)时似乎不可能使用单独的标签。
理想情况下,我希望能够编写类似
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
f(x)=\begin{cases}
1&x\geq0\label{positive}\\
0&x<0\label{negative}
\end{cases}
\end{equation}
\end{document}
后来又在不同的地方提到了这两种情况。实现这一结果的最佳方法是什么?
答案1
您可以numcases
使用包裹cases
如果你想将每个案例标记为单独的方程。还有一个subnumcases
环境可以为你提供替代标签:
\documentclass[preview]{standalone}
\usepackage{amsmath}
\usepackage{cases}
\begin{document}
\begin{numcases}{f(x)=}
1 & $x\geq0$ \label{positive}
\\
0 & $x<0$ \label{negative}
\end{numcases}
See the second case \ref{negative} or the first \ref{positive}
\begin{subnumcases}{f(x)=}
1 & $x\geq0$ \label{positive-subnum}
\\
0 & $x<0$ \label{negative-subnum}
\end{subnumcases}
See the second case \ref{negative-subnum} or the first \ref{positive-subnum}
\end{document}
答案2
仅使用amsmath
包裹并且不需要额外的包,通过一些盒子操作就可以实现:
\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\begin{document}
\newsavebox{\mycases}% Store case "title" and brace
\begin{align}
\sbox{\mycases}{$\displaystyle f(x)=\left\{\begin{array}{@{}c@{}}\vphantom{1\ x\geq0}\\\vphantom{0\ x<0}\end{array}\right.\kern-\nulldelimiterspace$}
\raisebox{-.5\ht\mycases}[0pt][0pt]{\usebox{\mycases}}1 \quad x\geq0\label{positive} \\
0 \quad x<0\label{negative}
\end{align}
\end{document}
答案3
答案4
您可以组合上述解决方案如果您将方程式作为一个组引用,则必须与环境一起使用subequations
。如果您想引用该组,则必须在进入环境之前引入 \label align
。以下是它的实际作用:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage{heuristica}
\usepackage[overload]{empheq}
\usepackage{cleveref}
\begin{document}
\begin{subequations}
\label{Phi:def}
\begin{align}[left ={Φ(A_n) = \empheqlbrace}]
& \max \left [ L_n-A_n, 0 \right]\\
& \max \left [ L_n-A_n, K \right]\label{eq:PayoffStopLosses}\\
& \max \left [ L_n-A_n, K_1 \right] -\max \left [ A_n-L_n, K_2 \right]
\end{align}
\end{subequations}
As we can see in \cref{Phi:def}, and more specifically in \cref{eq:PayoffStopLosses},…
\end{document}