我有一个任务,要用 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}
varwidth
over的优点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}