Wie kann ich bei Adjustwidth und Eqnarray eine neue Zeile vermeiden?

Wie kann ich bei Adjustwidth und Eqnarray eine neue Zeile vermeiden?

adjustwidthfügt nur dann einen redundanten Zeilenumbruch ein, wenn es mit verwendet wird eqnarray. Wie kann ich das vermeiden?

Eingang:

\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}

Ausgabe:

Bildbeschreibung hier eingeben

Ausgabe mit Überschrift:

Bildbeschreibung hier eingeben

Soweit ich mit einem Lineal messe, verdoppelt sich die Höhe des Raumes, wenn mit adjustwidth.


MWE-Eingabe:

\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-Ausgabe:

Bildbeschreibung hier eingeben

Gl.(2) ist ohne geschrieben adjustwidth. Das reicht, wenn ich das PDF auf meinem Computer sehe, aber der rechte Randteil verschwindet beim Drucken. Gl.(3) ist mit geschrieben adjustwidth. Es ist lesbar und druckbar. Es wurde jedoch ein redundantes Leerzeichen eingefügt. (In Gl.(2) oder Gl.(3) wird eine einzelne Gleichung in zwei Zeilen aufgeteilt. Ich möchte die Gleichung nicht mehr (in drei oder mehr Zeilen) aufteilen.)

Antwort1

Ich schlage vor split. Verwenden Sie es niemals eqnarraymit LaTeX, sondern bevorzugen Sie die von angebotenen Ausrichtungsumgebungen 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}

Bildbeschreibung hier eingeben

Einige Anmerkungen: Ich habe alle \leftund \rightBefehle entfernt, die rundherum zu große Zäune erzeugen. Außerdem habe ich \upund definiert \down, weil \uparrowund \downarrowBeziehungssymbole sind und bei Verwendung als normale Symbole zu falschen Abständen führen können. Die Klammern in der Definition werden überall wie normale Symbole angezeigt \upund \downverhalten sich wie solche.

Antwort2

Erstens: Verwenden Sie nicht eqnarray-- alignstattdessen. Zweitens: Sie müssen nicht zum Vorschlaghammer greifen, adjustwidthwenn Sie ein paar zusätzliche Zeilenumbrüche einfügen. Um die Lesbarkeit zu verbessern, sollten Sie \expdie -Notation innerhalb des \expoMakros verwenden, wie im folgenden Screenshot.

Bildbeschreibung hier eingeben

\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}

Antwort3

Der Quellcode changepage.styzeigt

\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}}

(Diese Links können Ihnen helfen, den obigen Code zu verstehen:Was macht \z@?Und\topsep, \itemsep, \partopsep und \parsep – was bedeutet jedes davon (und was ist mit dem unteren Teil)?)

Das Problem liegt also nicht an , adjustwidthsondern an eqnarray. Die listUmgebung gibt Ihnen eine Zeile für ein Element, eqnarrayfügt aber automatisch eine neue Zeile ein, sodass der Abstand vergrößert wird. Randeinstellungen sind irrelevant und das gleiche Problem kann mit reproduziert werden itemize. Zum Beispiel:

Eingang:

\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}

Ausgabe:

Bildbeschreibung hier eingeben

Die Lösung besteht also darin, den Text in die Umgebung zu verschieben adjustwidth.

Eingang:

\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}

Ausgabe:

Bildbeschreibung hier eingeben

Dies ist, was ich wollte, obwohl dies bei veraltet bleibt eqnarray...

verwandte Informationen