adjustwidth
仅当与 一起使用时才会插入多余的换行符eqnarray
。我该如何避免这种情况?
输入:
\documentclass{article}
\usepackage{changepage}
\begin{document}
\noindent
Hello World!
\begin{adjustwidth}{-1cm}{-1cm}
Hello World!
\end{adjustwidth}
\ \\
Hello World!
\begin{eqnarray}
f(x) = 1
\end{eqnarray}
\ \\
Hello World!
\begin{adjustwidth}{-1cm}{-1cm}
\begin{eqnarray}
f(x) = 1
\end{eqnarray}
\end{adjustwidth}
\end{document}
输出:
带标题的输出:
据我用尺子测量,有了 ,空间的高度就增加了一倍adjustwidth
。
MWE 输入:
\documentclass{article}
\usepackage[top=30truemm,bottom=30truemm,left=25truemm,right=25truemm]{geometry}
\usepackage{changepage}
\usepackage{braket}
\usepackage{bm}
\newcommand{\bmk}{{\bm{k}}}
\newcommand{\brac}[1]{\left( #1 \right)}
\newcommand{\expo}[1]{e^{#1}}
\newcommand{\ao}[1]{a_{#1}}
\newcommand{\aod}[1]{a^\dagger _{#1}}
\begin{document}
Operator $A$ is defined as
\begin{eqnarray}
A &=& \sum _{\bmk _1, \bmk _2} \Braket{\bmk _1, \uparrow | \hat{A} | \bmk _2, \uparrow} \left\{ \brac{\cos \theta _{\bmk _1} \cos \theta _{\bmk _2} - \eta \sin \theta _{\bmk _1} \sin \theta _{\bmk _2}} \brac{\aod{\bmk _1, \uparrow} \ao{\bmk _2, \uparrow} + \eta \aod{- \bmk _2, \downarrow} \ao{- \bmk _1, \downarrow}} \right. \nonumber \\
&\ & \hspace{3cm} \left. + \brac{\cos \theta _{\bmk _1} \sin \theta _{\bmk _2} + \eta \sin \theta _{\bmk _1} \cos \theta _{\bmk _2}} \brac{\aod{\bmk _1, \uparrow} \aod{- \bmk _2, \downarrow} + \eta \ao{- \bmk _1, \downarrow} \ao{\bmk _2, \uparrow}} \right\}.
\end{eqnarray}
The Heisenberg representation of this gives
\begin{eqnarray}
A(t) &=& \sum _{\bmk _1, \bmk _2} \Braket{\bmk _1, \uparrow | \hat{A} | \bmk _2, \uparrow} \left\{ \brac{\cos \theta _{\bmk _1} \cos \theta _{\bmk _2} - \eta \sin \theta _{\bmk _1} \sin \theta _{\bmk _2}} \brac{\aod{\bmk _1, \uparrow} \ao{\bmk _2, \uparrow} \expo{\frac{i}{\hbar} (E_{\bmk _1} - E_{\bmk _2}) t} + \eta \aod{- \bmk _2, \downarrow} \ao{- \bmk _1, \downarrow} \expo{- \frac{i}{\hbar} (E_{\bmk _1} - E_{\bmk _2}) t}} \right. \nonumber \\
&\ & \hspace{1.5cm} \left. + \brac{\cos \theta _{\bmk _1} \sin \theta _{\bmk _2} + \eta \sin \theta _{\bmk _1} \cos \theta _{\bmk _2}} \brac{\aod{\bmk _1, \uparrow} \aod{- \bmk _2, \downarrow} \expo{\frac{i}{\hbar} (E_{\bmk _1} + E_{\bmk _2}) t} + \eta \ao{- \bmk _1, \downarrow} \ao{\bmk _2, \uparrow} \expo{- \frac{i}{\hbar} (E_{\bmk _1} + E_{\bmk _2}) t} } \right\}.
\end{eqnarray}
The Heisenberg representation of this gives
\begin{adjustwidth}{-1cm}{-1cm}
\begin{eqnarray}
A(t) &=& \sum _{\bmk _1, \bmk _2} \Braket{\bmk _1, \uparrow | \hat{A} | \bmk _2, \uparrow} \left\{ \brac{\cos \theta _{\bmk _1} \cos \theta _{\bmk _2} - \eta \sin \theta _{\bmk _1} \sin \theta _{\bmk _2}} \brac{\aod{\bmk _1, \uparrow} \ao{\bmk _2, \uparrow} \expo{\frac{i}{\hbar} (E_{\bmk _1} - E_{\bmk _2}) t} + \eta \aod{- \bmk _2, \downarrow} \ao{- \bmk _1, \downarrow} \expo{- \frac{i}{\hbar} (E_{\bmk _1} - E_{\bmk _2}) t}} \right. \nonumber \\
&\ & \hspace{1.5cm} \left. + \brac{\cos \theta _{\bmk _1} \sin \theta _{\bmk _2} + \eta \sin \theta _{\bmk _1} \cos \theta _{\bmk _2}} \brac{\aod{\bmk _1, \uparrow} \aod{- \bmk _2, \downarrow} \expo{\frac{i}{\hbar} (E_{\bmk _1} + E_{\bmk _2}) t} + \eta \ao{- \bmk _1, \downarrow} \ao{\bmk _2, \uparrow} \expo{- \frac{i}{\hbar} (E_{\bmk _1} + E_{\bmk _2}) t} } \right\}.
\end{eqnarray}
\end{adjustwidth}
\end{document}
MWE 输出:
Eq(2) 的书写方式没有adjustwidth
。当我在电脑上查看 pdf 时,这就足够了,但打印时右边缘部分会消失。Eq(3) 的书写方式带有adjustwidth
。它是可读且可打印的。但是,插入了一个多余的空格。(在 Eq(2) 或 Eq(3) 中,单个方程被分成两行。我不想再将方程分成三行或更多行了。)
答案1
我建议split
。永远不要eqnarray
与 LaTeX 一起使用,而应使用 提供的对齐环境amsmath
。
\documentclass{article}
\usepackage[top=30truemm,bottom=30truemm,left=25truemm,right=25truemm]{geometry}
\usepackage{amsmath}
\usepackage{changepage}
\usepackage{braket}
\usepackage{bm}
\newcommand{\bmk}{\bm{k}}
\newcommand{\brac}[1]{\left( #1 \right)}
\newcommand{\expo}[1]{e^{#1}}
\newcommand{\ao}[1]{a_{#1}}
\newcommand{\aod}[1]{a^\dagger_{#1}}
\newcommand{\up}{{\uparrow}}
\newcommand{\down}{{\downarrow}}
\begin{document}
Operator $A$ is defined as
\begin{equation}
\begin{split}
A =
\sum_{\bmk_1, \bmk_2} \braket{\bmk_1, \up | \hat{A} | \bmk_2, \up} \bigl\{
&
(\cos\theta_{\bmk_1} \cos\theta_{\bmk_2} - \eta \sin\theta_{\bmk_1} \sin\theta_{\bmk_2})
(\aod{\bmk_1, \up} \ao{\bmk_2, \up} + \eta \aod{- \bmk_2, \down} \ao{- \bmk_1, \down}) \\
{}+{} &
(\cos\theta_{\bmk_1} \sin\theta_{\bmk_2} + \eta \sin\theta_{\bmk_1} \cos\theta_{\bmk_2})
(\aod{\bmk_1, \up} \aod{- \bmk_2, \down} + \eta \ao{- \bmk_1, \down} \ao{\bmk_2, \up})
\bigr\}.
\end{split}
\end{equation}
The Heisenberg representation of this gives
\begin{equation}
\begin{split}
A(t) = \sum_{\bmk_1, \bmk_2} &\braket{\bmk_1, \up | \hat{A} | \bmk_2, \up}
\\
{}\cdot\bigl\{&
(\cos\theta_{\bmk_1} \cos\theta_{\bmk_2} - \eta \sin\theta_{\bmk_1} \sin\theta_{\bmk_2})
(\aod{\bmk_1, \up} \ao{\bmk_2, \up} \expo{\frac{i}{\hbar} (E_{\bmk_1} -
E_{\bmk_2}) t} + \eta \aod{- \bmk_2, \down} \ao{- \bmk_1, \down}
\expo{- \frac{i}{\hbar} (E_{\bmk_1} - E_{\bmk_2}) t})
\\
{}+{}&
(\cos\theta_{\bmk_1} \sin\theta_{\bmk_2} + \eta \sin\theta_{\bmk_1} \cos\theta_{\bmk_2})
(\aod{\bmk_1, \up} \aod{- \bmk_2, \down} \expo{\frac{i}{\hbar} (E_{\bmk_1} + E_{\bmk_2}) t} +
\eta \ao{- \bmk_1, \down} \ao{\bmk_2, \up}
\expo{- \frac{i}{\hbar} (E_{\bmk_1} + E_{\bmk_2}) t}) \bigl\}.
\end{split}
\end{equation}
\end{document}
一些注意事项:我删除了所有\left
和\right
命令,因为它们会给周围带来太大的围栏。我还定义了\up
和\down
,因为\uparrow
和\downarrow
是关系符号,如果用作普通符号,可能会产生错误的间距。定义中的括号使\up
和\down
在任何地方都表现得像普通符号。
答案2
首先,不要使用eqnarray
-- 而要使用。其次,如果插入一些额外的换行符,align
无需诉诸大锤。为了增强可读性,请考虑在宏中使用 -notation ,如以下屏幕截图所示。adjustwidth
\exp
\expo
\documentclass{article}
\usepackage[vmargin=3cm,hmargin=2.5cm]{geometry}
\usepackage{amsmath}
\allowdisplaybreaks
\usepackage{changepage}
\usepackage{braket}
\usepackage{bm}
\newcommand{\bmk}{{\bm{k}}}
\newcommand{\brac}[1]{\Bigl( #1 \Bigr)}
\newcommand{\expo}[1]{\exp\bigl(#1\bigr)}
\newcommand{\ao}[1]{a^{\vphantom{\dagger}}_{#1}}
\newcommand{\aod}[1]{a^\dagger _{#1}}
\begin{document}
Operator $A$ is defined as
\begin{align}
A &= \sum _{\bmk _1, \bmk _2}
\Braket{\bmk _1, \uparrow | \hat{A} | \bmk _2, \uparrow}
\Bigl\{
\brac{\cos \theta _{\bmk _1} \cos \theta _{\bmk _2}
- \eta \sin \theta _{\bmk _1} \sin \theta _{\bmk _2}} \notag\\
&\qquad\times\brac{\aod{\bmk _1, \uparrow} \ao{\bmk _2, \uparrow}
+ \eta \aod{- \bmk _2, \downarrow} \ao{- \bmk _1, \downarrow}} \nonumber \\
&\quad+ \brac{\cos \theta _{\bmk _1} \sin \theta _{\bmk _2}
+ \eta \sin \theta _{\bmk _1} \cos \theta _{\bmk _2}}
\brac{\aod{\bmk _1, \uparrow} \aod{- \bmk _2, \downarrow}
+ \eta \ao{- \bmk _1, \downarrow} \ao{\bmk _2, \uparrow}}
\Bigr\}.\\
\intertext{The Heisenberg representation of this gives}
A(t) &= \sum _{\bmk _1, \bmk _2}
\Braket{\bmk _1, \uparrow | \hat{A} | \bmk _2, \uparrow}
\Bigl\{
\brac{\cos \theta _{\bmk _1} \cos \theta _{\bmk _2}
- \eta \sin \theta _{\bmk _1} \sin \theta _{\bmk _2}} \notag\\
&\qquad\times\brac{\aod{\bmk _1, \uparrow} \ao{\bmk _2, \uparrow}
\expo{\tfrac{i}{\hbar} (E_{\bmk _1} - E_{\bmk _2}) t}
+ \eta \aod{- \bmk _2, \downarrow} \ao{- \bmk _1, \downarrow}
\expo{- \tfrac{i}{\hbar} (E_{\bmk _1} - E_{\bmk _2}) t}} \nonumber \\
&\quad + \brac{\cos \theta _{\bmk _1} \sin \theta _{\bmk _2}
+ \eta \sin \theta _{\bmk _1} \cos \theta _{\bmk _2}} \notag\\
&\qquad\times\brac{\aod{\bmk _1, \uparrow} \aod{- \bmk _2, \downarrow}
\expo{\tfrac{i}{\hbar} (E_{\bmk _1} + E_{\bmk _2}) t}
+ \eta \ao{- \bmk _1, \downarrow} \ao{\bmk _2, \uparrow}
\expo{- \tfrac{i}{\hbar} (E_{\bmk _1} + E_{\bmk _2}) t} }
\Bigr\}\,.
\end{align}
\end{document}
答案3
源代码changepage.sty
显示
\newenvironment{adjustwidth}[2]{%
\begin{list}{}{%
\topsep\z@%
\listparindent\parindent%
\parsep\parskip%
\@ifmtarg{#1}{\setlength{\leftmargin}{\z@}}%
{\setlength{\leftmargin}{#1}}%
\@ifmtarg{#2}{\setlength{\rightmargin}{\z@}}%
{\setlength{\rightmargin}{#2}}%
}
\item[]}{\end{list}}
(这些链接可能有助于您理解上面的代码:\z@ 起什么作用?和\topsep、\itemsep、\partopsep 和 \parsep - 它们各自代表什么意思(底部又代表什么意思)?)
因此,问题不是由于adjustwidth
而是由于eqnarray
。list
环境会为每一项提供一行,但eqnarray
会自动插入换行符,因此空间会变宽。边距设置无关紧要,并且可以使用 重现相同的问题itemize
。例如,
输入:
\documentclass{article}
\begin{document}
\begin{itemize}
\item
\begin{eqnarray}
f(x) = 1
\end{eqnarray}
\end{itemize}
\begin{itemize}
\item Hello
\begin{eqnarray}
f(x) = 1
\end{eqnarray}
\end{itemize}
\end{document}
输出:
所以解决方案是将文本移到adjustwidth
环境中。
输入:
\documentclass{article}
\usepackage[top=30truemm,bottom=30truemm,left=25truemm,right=25truemm]{geometry}
\usepackage{changepage}
\begin{document}
\ \\ % normal
Hello World!
\begin{eqnarray}
f(x) = 1
\end{eqnarray}
\ \\ % with adjustwidth
Hello World!
\begin{adjustwidth}{-1cm}{-1cm}
\begin{eqnarray}
f(x) = 1
\end{eqnarray}
\end{adjustwidth}
\ \\ % solution
\begin{adjustwidth}{-1cm}{-1cm}
\hspace{1.0cm}Hello World! % note that this text is INSIDE the environment
\begin{eqnarray}
f(x) = 1
\end{eqnarray}
\end{adjustwidth}
\end{document}
输出:
这就是我想要的虽然这坚持弃用eqnarray
...