在案例环境中将项目居中

在案例环境中将项目居中

我希望在以下 LaTeX 代码中将 1 居中:

\begin{align*}
v'(k,\CS)=
\begin{cases}
    \displaystyle\frac{G_{max}(k){-}q_k'(CS)}{G_{max}(k){-}\Gmin(k)} & \text{if }G_{max}(k) {\neq} G_{min}(k) \\
    1                                                                &  \text{if }G_{max}(k) {=}G_{min}(k)
\end{cases}
\end{align*}

LaTeX 的图像如下所示:

在此处输入图片描述

答案1

cases包的环境amsmath在内部使用array具有 类型的列的环境l。列规范为@{}l@{\quad}l@{}。因此\multicolumn将起作用:

\multicolumn{1}{@{}c@{\quad}}{1}

array还有一种更简单的方法。 /的对齐代码只是在类型为 的列的右侧tabular添加一个。这会将单元格内容移到左侧。通过在左侧添加,内容将居中。添加将覆盖右侧,内容将移到右侧。因此,居中的代码是:\hfill\hfil\hfill\hfil

\hfil 1

完整示例:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
  v'(k,CS)=
  \begin{cases}
    \dfrac{G_{\text{max}}(k) - q_k'(CS)}
          {G_{\text{max}}(k) - G_{\text{min}}(k)}
    & \text{if }G_{\text{max}}(k) \neq G_{\text{min}}(k) \\
    % \multicolumn{1}{@{}c@{\quad}}{1} % variant with \multicolumn
    \hfil 1                    % variant with \hfil
    & \text{if }G_{\text{max}}(k) = G_{\text{min}}(k)
\end{cases}
\end{align*}
\end{document}

结果

评论:

  • 纠正了不完整 MWE 的各种代码错误。
  • 文本下标“min”和“max”被放入\text{...}
  • 删除二元运算符和关系符号周围的括号,以纠正符号周围的间距。(添加括号会使这些符号变成\mathord原子,而无需额外的间距。)
  • 包提供了的amsmath简写。\dfrac\displaystyle\frac

环境支撑cases

环境cases使用\left\lbrace...\right.来设置左花括号。我认为,在代码中\lbrace优先使用的原因是为了优化。定义为 ( ):\{\{latex.ltx

\DeclareRobustCommand{\{}{\ifmmode\lbrace\else\textbraceleft\fi}
  • 不需要稳健性,因为宏\end由于而不稳健\@checkend
  • 我们已经处于数学模式,因此可以保存对该模式的测试。

右侧需要一个空分隔符,因为\left\right必须以正确嵌套的对使用。但\right.将添加空格\nulldelimiterspace。如果环境始终是行中的最新元素,则可以通过重新定义末尾部分来提供此空间cases

\def\endcases{\endarray\right.\kern-\nulldelimiterspace}

答案2

您可以使用和来分隔array环境,从而伪造环境,以便您可以调整水平对齐方式,使字母居中和左对齐。cases\left\{\right.cl

以下是 MWE:

\documentclass[a4paper]{article}
%
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{amsmath}
%
\begin{document}
%
\[
\addtolength{\arraycolsep}{-2.5pt}  % local modifications
\renewcommand{\arraystretch}{1.1}%
v'(k,CS)= 
\left\{
 \begin{array}{cl}  % first column is centered
  \dfrac{G_{max}(k)-q_k'(CS)}{G_{max}(k)-G_{min}(k)} & \text{if }G_{max}(k)\neq G_{min}(k) \\
  1                                                  & \text{if }G_{max}(k)=G_{min}(k)
 \end{array}
\right.
\]
%
\end{document}

输出如下:

在此处输入图片描述

顺便说一句,您可以通过简单地在\arraystretch局部添加长度来扩大行之间的距离,或者如果您想通常应用此规则,您可以在文档的序言中定义一个新环境:

\newenvironment{MyCases}{%
 \addtolength{\arraycolsep}{-2.5pt}%
 \renewcommand{\arraystretch}{1.1}%
 \left\{\begin{array}%
}{%
 \end{array}\right.%
}

相关内容