我列出了一堆左对齐的项目(实际上,我正在使用命令\hspace
);然后,对于其中一个,我需要按案例进行定义,因此我使用模式equation
,并在其中使用case
模式。我的问题是:当我这样做时,该项目居中,我似乎找不到将其左对齐的方法。有什么建议吗?
编辑:我想以本地方式实现这一点;也就是说,一般来说方程式仍然会居中,但在这种特殊情况下,我希望能够让它们左对齐......
平均能量损失
\documentclass[11pt,a4paper]{book}
\usepackage[portuguese]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{indentfirst}
\begin{document}
\hspace{1.5cm} $ x = something....$
\hspace{1.5cm} $ y = something...$
\begin{equation*}
z =
\begin{cases}
1 & \text{if } x > 0 \\
-1 & \text{if } x \leq 0.
\end{cases}
\end{equation*}
\end{document}
答案1
我建议你使用列表环境,itemize
例如包裹enumitem
,以及内部数学环境,例如aligned
:
笔记:
- 包裹
showframe
仅用于显示页边距。实际使用中不需要它。 - 您可以根据需要调整设置,
leftmargin
以使文本一直移到左侧。
代码:
\documentclass{book}
\usepackage{showframe}
\usepackage{amsmath}
\usepackage{indentfirst}
\usepackage{enumitem}
\begin{document}
\begin{itemize}[leftmargin=2.0cm]
\item[] $ x = something....$
\item[] $ y = something...$
\item[] $\begin{aligned}
z = \begin{cases}
1 & \text{if } x > 0 \\
-1 & \text{if } x \leq 0.
\end{cases}
\end{aligned}$
\end{itemize}
\end{document}
答案2
\documentclass[11pt,a4paper]{book}
\usepackage[portuguese]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[fleqn]{amsmath}
\usepackage{amssymb,amsthm}
%% CODE FOR ENVIRONMENT ALLOWING SOME DISPLAYS TO BE FLUSHLEFT
%% BUT THE DEFAULT WITHOUT THE ENVIRONMENT REMAINS TO CENTER THEM
\makeatletter
\@fleqnfalse
\@mathmargin\@centering
\newenvironment{flmath}[1][0pt]
{\@fleqntrue
\@mathmargin#1\relax}
{}
\makeatother
\begin{document}
\textbf{left margin = 1.5cm}
\noindent\hspace{1.5cm}$ x = something....$
\noindent\hspace{1.5cm}$ y = something...$
\begin{flmath}[1.5cm]
\begin{equation*}
z =
\begin{cases}
1 & \text{if } x > 0 \\
-1 & \text{if } x \leq 0.
\end{cases}
\end{equation*}
\end{flmath}
\textbf{left margin = parindent}
\indent\smash{\rule[-2cm]{1pt}{2.2cm}}\kern-1pt $z$
\begin{flmath}[\parindent]
\begin{equation*}
z =
\begin{cases}
1 & \text{if } x > 0 \\
-1 & \text{if } x \leq 0.
\end{cases}
\end{equation*}
\end{flmath}
\textbf{Normal centered equations}
\hrule
\begin{equation*}
z =
\begin{cases}
1 & \text{if } x > 0 \\
-1 & \text{if } x \leq 0.
\end{cases}
\end{equation*}
\hrule
\end{document}
答案3
这是另一种方法,使用堆栈和\scalerel
,后者将(宽度受限的)括号缩放到其后面的大小
\documentclass[11pt,a4paper]{book}
%\usepackage[portuguese]{babel}
%\usepackage[utf8]{inputenc}
%\usepackage[T1]{fontenc}
%\usepackage{amssymb}
%\usepackage{amsmath}
%\usepackage{amsthm}
%\usepackage{indentfirst}
\usepackage{scalerel}
\usepackage{tabstackengine}
\def\ind{\par\noindent\hspace{1.5cm}}
\setstacktabulargap{1em}
\begin{document}
\ind$ x = something....$
\ind$ y = something...$
\ind$z = \addstackgap{\scalerel[1.7ex]{\{}{%
\tabularCenterstack{rl}{%
$1$ & if $x > 0$ \\
$-1$ & if $x \protect\leq 0.$%
}}}$
\end{document}