在調整寬度和 eqnarray 時如何避免換行?

在調整寬度和 eqnarray 時如何避免換行?

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 輸出:

在此輸入影像描述

方程式(2)的寫法不帶adjustwidth.當我在電腦上看到pdf時就足夠了,但是列印時右邊緣部分會消失。式(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

首先,不要使用eqnarrayalign而是使用。其次,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......

相關內容