adjustwidth
fü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:
Ausgabe mit Überschrift:
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:
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 eqnarray
mit 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}
Einige Anmerkungen: Ich habe alle \left
und \right
Befehle entfernt, die rundherum zu große Zäune erzeugen. Außerdem habe ich \up
und definiert \down
, weil \uparrow
und \downarrow
Beziehungssymbole 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 \up
und \down
verhalten sich wie solche.
Antwort2
Erstens: Verwenden Sie nicht eqnarray
-- align
stattdessen. Zweitens: Sie müssen nicht zum Vorschlaghammer greifen, adjustwidth
wenn Sie ein paar zusätzliche Zeilenumbrüche einfügen. Um die Lesbarkeit zu verbessern, sollten Sie \exp
die -Notation innerhalb des \expo
Makros verwenden, wie im folgenden Screenshot.
\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.sty
zeigt
\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 , adjustwidth
sondern an eqnarray
. Die list
Umgebung gibt Ihnen eine Zeile für ein Element, eqnarray
fü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:
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:
Dies ist, was ich wollte, obwohl dies bei veraltet bleibt eqnarray
...