多行方程中的多行文本

多行方程中的多行文本

我有一个任务,要用 LaTeX 复制下面的图片。我被附图中的 (A.4) 等式难住了。具体来说,我需要将该等式的文本部分分成两行,但我这样做的方式是文本只是穿过了边距。我用它itemize来编号和dcases*等式。

另外作为一个附加问题,我不确定如何像图片上那样处理页脚版权。

在此处输入图片描述

答案1

两行文字

这可以通过多种方式实现。

环境tabular

\begin{tabular}[t]{@{}l@{}
  First line\\
  Second line
\end{tabular}

但是tabular环境设置\struts为强制使用完整的行高和行深。在这种情况下,我会选择其他选项。

环境minipage

\begin{minipage}[t]{123pt}% a magic number
  First line\\
  Second line
\end{minipage} 

缺点:宽度是minipage手动设置的。

环境varwdith

\usepackage{varwidth}

\begin{varwidth}[t]{\linewidth}
  First line\\
  Second line
\end{varwidth}

varwidthover的优点minipage是可以varwidth自动缩小线条的宽度。

\oalign

\oalign{%
  First line\hfil\cr
  Second line\hfil
}%

\oalign自动顶部对齐,并且行与行之间以垂直空间分隔0.25ex

cases行与行之间的额外空格

cases环境的格线(A.4)由额外的垂直空间分隔。这是通过以下方式实现的:

\noalign{\kern1ex}

在案例行之间插入垂直空间。

\\如果线的深度大于插入支柱的深度,则可选参数无法正常工作。

方程式编号如下

阅读顺序是从左到右排列的,从上到下阅读。如果公式编号应该放在左边,则意味着公式编号放在方程。如果由于方程太大而需要垂直移动方程编号,则将amsmath方程编号放在方程上方以保持读取顺序:首先是方程编号,然后是方程。

否则,如果方程式应该放在第一位,我就不会使用leqno,而是选择默认选项reqno(方程式编号在右侧)。

amsmath尽管如此,如果选项处于活动状态,则可以调整包的内部结构以将移位后的方程编号放在下面leqno。示例显示了环境的这一点gather。环境align可能也有效,但还有一些情况,例如可能的multline东西。

页脚

版权声明可以放入\fancyfoot[R]包中fancyhdr。示例只是重新定义了页面样式plain。但这可以做得不同,重点是里面的代码\fancyfoot[R]。这两行是通过设置的tabular。顶行的基线与页码的基线对齐。

例子

\documentclass[twocolumn]{article}

\usepackage{textcomp}% better copyright symbol
% \usepackage[T1]{fontenc}
% \usepackage{lmodern}
\usepackage{varwidth}
\usepackage{fancyhdr}

\fancypagestyle{plain}{%
  \fancyhf{}%
  \fancyfoot[C]{\textsf{\thepage}}%
  \fancyfoot[R]{%
    \sffamily
    \footnotesize
    \begin{tabular}[t]{@{}l@{}}%
      Copyright \textcopyright\space by \dots\\
      Unauthorized reproduction of this article is prohibited.%
    \end{tabular}%
  }%
  \renewcommand*{\headrulewidth}{0pt}%
  \renewcommand*{\footrulewidth}{0pt}%
}
\pagestyle{plain}

\usepackage[leqno]{amsmath}
\makeatletter
\def\place@tag@gather{%
  \iftagsleft@
    \kern-\gdisplaywidth@
    \ifshifttag@
      \rlap{\vtop{%
        \raise@tag
        \normalbaselines
        \setbox\@ne\null
        \dp\@ne\lineht@
        \box\@ne
        \boxz@
      }}%
%      \rlap{\vbox{%
%        \normalbaselines
%        \boxz@
%        \vbox to\lineht@{}%
%        \raise@tag
%      }}%
      \global\shifttag@false
    \else
      \rlap{\boxz@}%
    \fi
  \else
    \ifdim\totwidth@>\displaywidth
      \dimen@\totwidth@
      \advance\dimen@-\displaywidth
      \kern-\dimen@
    \fi
    \ifshifttag@
      \llap{\vtop{%
        \raise@tag
        \normalbaselines
        \setbox\@ne\null
        \dp\@ne\lineht@
        \box\@ne
        \boxz@
      }}%
      \global\shifttag@false
    \else
      \llap{\boxz@}%
    \fi
  \fi
}
\def\set@gather@field{%
  \global\lineht@\dp\z@
  \kern\eqnshift@
  \boxz@
  \hfil
}
\def\place@tag{%
  \iftagsleft@
    \kern-\tagshift@
    \if1\shift@tag\row@\relax
      \rlap{\vtop{%
        \raise@tag
        \normalbaselines
        \setbox\@ne\null
        \dp\@ne\lineht@
        \box\@ne
        \boxz@
      }}%
%      \rlap{\vbox{%
%        \normalbaselines
%        \boxz@
%        \vbox to\lineht@{}%
%        \raise@tag
%      }}%
    \else
      \rlap{\boxz@}%
    \fi
    \kern\displaywidth@
  \else
    \kern-\tagshift@
    \if1\shift@tag\row@\relax
      \llap{\vtop{%
        \raise@tag
        \normalbaselines
        \setbox\@ne\null
        \dp\@ne\lineht@
        \box\@ne
        \boxz@
      }}%
    \else
      \llap{\boxz@}%
    \fi
  \fi
}
\def\set@field{%
  \column@plus
  \ifdim\dp\z@>\lineht@
    \global\lineht@\dp\z@
  \fi
  \boxz@
}
\renewcommand{\raisetag}[1]{\skip@#1\relax
  \xdef\raise@tag{\vskip-\the\skip@\relax}%
}
\makeatother

\begin{document}
\setcounter{page}{743}
\renewcommand*{\theequation}{A.\arabic{equation}}
\setcounter{equation}{3}
\null\newpage
\vspace*{\fill}

\begin{gather}
  \hat\omega_{ij} =
  \begin{cases}
    \min\{
      \hat\omega^A_{ij} / \hat\omega^B_{ij},
      \hat\omega^B_{ij} / \hat\omega^A_{ij}
    \}
%    & \oalign{if $\hat\omega^A_{ij}$ and $\hat\omega^B_{ij}$ have\cr
%      the same sign\hfil}
    & \begin{varwidth}[t]{\linewidth}
      if $\hat\omega^A_{ij}$ and $\hat\omega^B_{ij}$ have\\
      the same sign
    \end{varwidth}
    \\
    \noalign{\kern1ex}
    \max\{
      \hat\omega^A_{ij} / \hat\omega^B_{ij},
      \hat\omega^B_{ij} / \hat\omega^A_{ij}
    \}
%    & \oalign{if $\hat\omega^A_{ij}$ and $\hat\omega^B_{ij}$ have\cr
%      the opposite signs\hfil}
    & \begin{varwidth}[t]{\linewidth}
      if $\hat\omega^A_{ij}$ and $\hat\omega^B_{ij}$ have\\
      the opposite signs
    \end{varwidth}
    \\
    \noalign{\kern1ex}
    1 & \text{if } \hat\omega^A_{ij} = \hat\omega^B_{ij} = 0 \\
    \noalign{\kern1ex}
    0 & \text{otherwise}
  \end{cases}
\\
  \hat\omega^A_{ij} =
  \begin{cases}
    \dfrac{a_i - a_j}{a_{\text{max}} - a_{\text{min}}}
    & \text{if } a_{\text{max}} \ne a_{\text{min}}
    \\
    \noalign{\kern1ex}
    0 & \text{otherwise}
  \end{cases}
\\
  \hat\omega^B_{ij} =
  \begin{cases}
    \dfrac{b_i - b_j}{b_{\text{max}} - b_{\text{min}}}
    & \text{if } b_{\text{max}} \ne b_{\text{min}}
    \\
    \noalign{\kern1ex}
    0 & \text{otherwise}
  \end{cases}
\end{gather}

\end{document}

结果

答案2

一个简单的方法是使用 parboxes。你只需要调整一下宽度就可以得到看起来不错的换行符。

\documentclass[12pt,twocolumn]{article}
\usepackage{mathtools}
\usepackage{microtype}
\usepackage{lipsum}
\begin{document}
\lipsum[1-3]
\begin{equation*}
a =
\begin{dcases}
b^2 + c^2 + d^2 & \parbox{125pt}{quite a long description really} \\
e & \parbox{125pt}{another fairly long description}
\end{dcases}
\end{equation*}
\end{document}

案例

编辑

您可以使用[leqno]mathtools 的选项将数字放在左侧。但是,这会将长方程的数字放在左上方。要将数字移到左下方,您可以使用align带有空底线的环境(这是我仍在使用时使用的老技巧eqnarray)。

\documentclass[12pt,twocolumn]{article}
\usepackage[leqno]{mathtools}
\usepackage{microtype}
\usepackage{lipsum}
\begin{document}
\lipsum[1-3]
\begin{align}
a =
\begin{dcases}
b^2 + c^2 + d^2 & \parbox{125pt}{quite a long description really} \\
e & \parbox{125pt}{another fairly long description}
\end{dcases} \nonumber \\
\end{align}
\end{document}

案例2

相关内容