![如何在案例环境中将案例分成几行](https://linux22.com/image/287593/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%A1%88%E4%BE%8B%E7%8E%AF%E5%A2%83%E4%B8%AD%E5%B0%86%E6%A1%88%E4%BE%8B%E5%88%86%E6%88%90%E5%87%A0%E8%A1%8C.png)
我需要将某些案例的条件和方程部分都分成几行,因为这些案例不适合文本宽度。我读了一些类似的问题,但看不出这能解决我的问题。给出了 MWE。
\documentclass[11pt,a4paper]{article}
\usepackage[paperheight=22.9cm, paperwidth=8.1cm, margin=0.1cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{authblk}
\usepackage{amsmath}
\usepackage{bm}
\title{The Title}
\author{Somebody}
\begin{document}
\maketitle
\begin{equation}\label{eq:carcost}
c = \begin{cases}
0 & \mbox{if aaaa bbbb ssssss ddddd fffff ssssss} \\
t(\psi_2-\psi_1)+t_p(\psi_3-\psi1) & \mbox{if aaaa bbbb ssssss ddddd fffff ssssss}\\
t(\psi_4-\psi_1)+t_p(\psi_5-\psi_1) & \mbox{if if aaaa bbbb ssssss ddddd fffff ssssss}\\
t(\psi_4-\psi_1)+t|\psi_2-\psi_4|+t|\psi_2-\psi_6|+t_p|\psi_3+\psi_5-\psi_1|& \mbox{if if aaaa bbbb ssssss ddddd fffff ssssss}
\end{cases}
\end{equation}
\end{document}
答案1
这可能按照您的演示要求进行操作:
\documentclass{article}
\usepackage[textwidth=15cm,showframe]{geometry}
\usepackage{amsmath}
\newcommand{\casestext}[2][2in]{\parbox[t]{#1}{\strut\ignorespace #2\strut}}
\begin{document}
\begin{equation}\label{eq:carcost}
c = \begin{cases}
0 & \casestext{if aaaa bbbb ssssss ddddd fffff ssssss} \\
t(\psi_2 - \psi_1) + t_p(\psi_3 - \psi_1) & \casestext{if aaaa bbbb ssssss ddddd fffff ssssss} \\
t(\psi_4 - \psi_1) + t_p(\psi_5 - \psi_1) & \casestext[2.5in]{if if aaaa bbbb ssssss ddddd fffff ssssss} \\
\parbox[t]{2.2in}{%
$t(\psi_4 - \psi_1) + t|\psi_2 - \psi_4|$ \\
\null\hfill${} + t|\psi_2-\psi_6|+t_p|\psi_3+\psi_5-\psi_1|$} & \casestext{if if aaaa bbbb ssssss ddddd fffff ssssss} \\
\end{cases}
\end{equation}
\end{document}
\casestext[<width>]{<stuff>}
在 a 中设置操作对齐且宽度为 的\parbox
内容。使用 时默认为,但每次使用时都可以通过在可选参数中指定不同的长度来调整它(如在第 3 种情况下所做的那样)。确保元素之间有适当的垂直间距。[t]
<width>
2in
\casestext{<stuff>}
\strut
在第四种情况下设置\parbox[t]{2.2in}
方程式是为了给它一种多线的感觉,而无需借助太多的杂技。
我已经调整了geometry
在本例中布局更加合理。
答案2
您可以使用表格来表示条件和aligned
公式:无需猜测长度,因为您正在决定在哪里分割。
\documentclass[11pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{bm}
\newcommand{\splitcond}[1]{%
\begin{tabular}[t]{@{}l@{}}#1\end{tabular}%
}
\title{The Title}
\author{Somebody}
\begin{document}
\maketitle
\begin{equation}\label{eq:carcost}
c = \begin{cases}
0 &
\splitcond{if aaaa bbbb ssssss \\ ddddd fffff ssssss} \\[4ex]
t(\psi_2-\psi_1)+t_p(\psi_3-\psi1) &
\splitcond{if aaaa bbbb ssssss \\ ddddd fffff ssssss} \\[4ex]
t(\psi_4-\psi_1)+t_p(\psi_5-\psi_1) &
\splitcond{if if aaaa bbbb ssssss \\ ddddd fffff ssssss} \\[4ex]
\!\begin{aligned}[t]
&t(\psi_4-\psi_1)+t|\psi_2-\psi_4|\\
&\quad+t|\psi_2-\psi_6|+t_p|\psi_3+\psi_5-\psi_1|
\end{aligned} &
\splitcond{if if aaaa bbbb ssssss \\ ddddd fffff ssssss}
\end{cases}
\end{equation}
\end{document}
额外的间距是为了在条件之间做出更好的视觉区分。
答案3
这是一个解决方案,它使材料符合 OP 指定的非常狭窄的尺度。我放弃了环境cases
,并用环境组array
(用于数学内容)和tabular
环境组(用于文本内容)代替。
\documentclass[11pt,a4paper]{article}
\usepackage[paperheight=22.9cm, paperwidth=8.1cm, margin=0.1cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{bm}
\begin{document}
\begin{equation}\label{eq:carcost}
c = \left\{
\begin{array}{@{}ll@{}}
0
& \begin{tabular}[t]{@{}l@{}}
if aaaa bbbb ssssss \\
\ \ ddddd fffff ssssss
\end{tabular} \\[4ex]
\begin{array}[t]{@{}l@{}}
t(\psi_2-\psi_1)\\
\ \ {}+t_p(\psi_3-\psi1)
\end{array}
& \begin{tabular}[t]{@{}l@{}}
if aaaa bbbb ssssss \\
\ \ ddddd fffff ssssss
\end{tabular}\\[4ex]
\begin{array}[t]{@{}l@{}}
t(\psi_4-\psi_1)\\
\ \ {}+t_p(\psi_5-\psi_1)
\end{array}
& \begin{tabular}[t]{@{}l@{}}
if aaaa bbbb ssssss \\
\ \ ddddd fffff ssssss
\end{tabular}\\[4ex]
\begin{array}[t]{@{}l@{}}
t(\psi_4-\psi_1)\\
\ \ {}+t|\psi_2-\psi_4|\\
\ \ {}+t|\psi_2-\psi_6|\\
\ \ {}+t_p|\psi_3+\psi_5-\psi_1|
\end{array}
& \begin{tabular}[t]{@{}l@{}}
if aaaa bbbb \\
\ \ ssssss ddddd \\
\ \ fffff ssssss
\end{tabular}
\end{array}
\right.
\end{equation}
\end{document}
答案4
您可能会发现另一种解决方案比以前的一些解决方案更清晰。
它使用包mathtools
,该包提供了我在这里使用的两个环境:
dcases*
,这应该是一种改进cases
,通常会省去你在这种情况下切换到文本模式的麻烦,并且multlined
,将数学公式拆分成多行。
我使用固定长度parbox
的条件和两个宏\shoveright
(用于最后一行)和\shoveleft
(用于内行)来使其看起来更好。此外,我还设置了\multlinegap
控制缩进的长度。
\documentclass[11pt]{article}
\usepackage[paperheight=22.9cm,paperwidth=8.1cm,margin=0.1cm]{geometry}
\usepackage{mathtools}
\begin{document}
\begin{equation}
\setlength{\multlinegap}{0.5em}
c = \begin{dcases*}
0
& \parbox[t]{2.25cm}{%
if aaaa bbbb \\
ssssss ddddd \\
fffff ssssss
}
\\[3pt]
\begin{multlined}[t]
t(\psi_2-\psi_1)+ \\
\shoveright{t_p(\psi_3-\psi1)}
\end{multlined}
& \parbox[t]{2.25cm}{%
if aaaa bbbb \\
ssssss ddddd \\
fffff ssssss
}
\\[3pt]
\begin{multlined}[t]
t(\psi_4-\psi_1)+ \\
\shoveright{t_p(\psi_5-\psi_1)}
\end{multlined}
& \parbox[t]{2.25cm}{%
if aaaa bbbb \\
ssssss ddddd \\
fffff ssssss
}
\\[3pt]
\begin{multlined}[t]
t(\psi_4-\psi_1)+ \\
\shoveleft[\multlinegap]{t|\psi_2-\psi_4|+} \\
\shoveleft[\multlinegap]{t|\psi_2-\psi_6|+} \\
\shoveright{t_p|\psi_3+\psi_5-\psi_1|}
\end{multlined}
& \parbox[t]{2.25cm}{%
if aaaa bbbb \\
ssssss ddddd \\
fffff ssssss
}
\end{dcases*}
\end{equation}
\end{document}
不用说,我不喜欢这个结果,但这是你想要的。