나는 그 자체로 긴 방정식 세트를 정렬하려고합니다. align
환경은 대부분 여러 줄에 퍼져 있습니다.
현재 저는 각 방정식의 조각을 정렬하기 위해 내부에 각 방정식이있는 일련의 align
환경을 가지고 있습니다. 결과의 스크린 샷을 첨부하고 있습니다.
대신 얻고 싶은 것은 더 비슷해 보이는 것입니다.
이것은 저널의 카피 편집 사무실을 통과 한 후 동일한 방정식 세트이며 훨씬 좋아 보입니다.
여기 MWE가 있습니다. 세 등식을 모두 등호에 정렬하고 싶습니다.
\documentclass{article} \usepackage{amsmath} \begin{document} \begin{align} a & = b + c + d \nonumber \\ & \qquad + e + f + g \label{eq:1} \end{align} \begin{align} k & = l + m + n + m + n + m + n \nonumber \\ & \qquad + o + p + q \label{eq:2} \end{align} \begin{equation} r = s + t (u + v + w) \label{eq:3} \end{equation} \end{document}
댓글
답변
실제 예가없는 경우 다음과 같이 해석합니다.
다음은 입력입니다.
\documentclass{article} \usepackage{mathtools} \begin{document} This example shows \verb|aligned| equations within an \verb|align| environment. \begin{align} \phantom{i + j + k} &\begin{aligned} \mathllap{a} &= b + c + d\\ &\qquad + e + f + g + x + y + z \end{aligned}\\ &\begin{aligned} \mathllap{i + j + k} &= l + m + n\\ &\qquad + o + p + q \end{aligned} \end{align} \end{document}
가장 긴 왼쪽 요소는 시작 부분에 \phantom
및 개별 세그먼트는 mathtools
패키지의 \mathllap
를 사용하여 왼쪽으로 래핑하여 보이지 않게됩니다.
원래 답변은 왼쪽 길이가 같은 경우에만 세그먼트를 올바르게 정렬하는 것으로 (올바르게) 표시되었습니다.이 수정은이 문제를 극복합니다.
코멘트
- 죄송합니다. 앰퍼샌드 몇 개를 잊어 버렸습니다. 업데이트 된 버전이 곧 출시됩니다.
- 왼쪽 길이가 같은 경우에만 작동합니까?
- @ user1834164- -당신 ‘ 왼쪽 요소의 길이에 대해 정확합니다. 하지만 회수 할 수 있습니다. 추가 …
- \ phantom {i + j + k}가 필요한 이유 .. 이해할 수 없습니다 ..
- @PraphullaKoushik-the
\phantom
는 방정식 그룹의 왼쪽 너비가 전체 그룹의 너비에 포함되어 그룹이 중앙에 오도록해야합니다.
답변
iv id = “32f64cf4df”내에서 split
환경을 사용할 수도 있습니다. >
환경에서 정렬을 수행 할 앰퍼샌드 (&
)를 사용합니다. MWE는 다음과 같습니다.
\documentclass{article} \usepackage{amsmath} \begin{document} \begin{align} \begin{split}\label{eq:1} a ={}& b + c + d\\ & + e + f + g \end{split}\\ \begin{split}\label{eq:2} k ={}& l + m + n + m + n + m + n\\ & + o + p + q \end{split}\\ r ={}& s + t (u + v + w)\label{eq:3} \end{align} \end{document}
마지막 방정식은 split
환경 내에 있지 않지만 여전히 정렬됩니다. 나머지는 여전히 align
환경에 있기 때문입니다.
출력은 다음과 같습니다.
앰퍼샌드 앞에있는 빈 그룹 ({}
)에 유의하십시오. 정렬이 상자를 나누기 때문에 등호와 문자 사이에 커닝을 적용하지 마십시오. 빈 그룹은 스스로 아무 작업도 수행하지 않지만 수학 모드에서 앞에있는 기호는 빈 그룹이 일반 문자 인 것처럼 커닝을 추가합니다. 이를 통해 TeX는 가장 적절한 간격을 선택할 수 있습니다. 앰퍼샌드가 등호 앞에 배치 된 경우 정렬 환경은 이러한 번거 로움없이 등호 주위를 커닝하지만 분할 방정식의 더하기 기호는 불편할 정도로 멀리 떨어져 있으므로 일종의 수동 조정이 필요합니다.
댓글
- 이 솔루션의 장점은 또는
\mathllap
. - 와!사실, ‘ 분할 필요조차없는 것 같습니다.
&=
를={}&
가 트릭을 수행합니다! - 그렇게하려고하면 ” 추가 정렬 탭이 \ cr로 변경되었습니다. ” 분할 내에서 둘 이상의 앰퍼샌드를 사용하려고하면이 오류가 발생합니다. 아이디어가 있나요?
- @Blaisorblade-분할의 이유는 방정식 번호를 각 그룹에 적절하게 적용하기 위해서입니다. 예,
\notag
를 사용할 수는 있지만 방정식 번호가 그룹의 중앙에 있어야하는 경우 ‘ 원하는 출력을 제공하지 않습니다. - 이 기술을 시도했는데 PDF로 변환 할 때는 작동했지만
mk4ht htlatex test.tex "xhtml,mathml"
워크 플로를 사용하여 HTML로 변환 할 때는 제대로 작동하지 않았습니다. ‘ HTML 변환기의 버그라고 가정합니다.
답변
barbara 의 답변에 대한 확장으로 방정식의 오른쪽 만 aligned
하위 환경으로 래핑 할 수 있습니다. 이렇게하면 별도의 등호를 정렬 할 수 있습니다. 좌변 또는 우변의 크기에 독립적 인 등식.
\documentclass{article} \usepackage{amsmath} \begin{document} This example shows \verb|aligned| equations within an \verb|align| environment. \begin{align} a &= \begin{aligned}[t] &b + c + d +\\ &c + e + f + g + h + i \end{aligned}\\ k &= \begin{aligned}[t] &l + m + n\\ &+ o + p + q \end{aligned} \end{align} \end{document}
두 번째 등식의 두 번째 줄에있는 더하기 기호는 정확히 일치하지 않습니다. mathbin
기호입니다. TeX에 대한 더 많은 지식을 가진 사람이 문제를 해결하는 최선의 방법에 대해 언급 할 수 있습니다.
댓글
- 감사합니다. 내가 보는 차이점은 방정식 번호가 각 방정식의 맨 윗줄에있는 반면 전체 방정식이 ‘ 정렬 ‘에있을 때 환경 방정식 번호는 수직으로 중앙에 위치합니다. 제어 할 수있는 방법이 있습니까?
- @eldering-마지막 줄의 첫 번째 더하기 기호 뒤에 일치하는 간격을 가져 오려면 앞에 빈 그룹
{}
.
답변
다음은 align
입니다. -방정식 전용 버전 :
\documentclass{article} \usepackage{amsmath}% http://ctan.org/pkg/amsmath \newcommand{\myvec}[1]{\hat{\mathbf{#1}}}% Vector notation \begin{document} \begin{align} f_{\textit{P},\textit{P}}\left(\myvec{n};\myvec{m}\right) &= \frac{\omega^2}{4\pi\rho\alpha^4} \textit{AF}\left(k_\alpha\left(\myvec{n}-\myvec{m}\right)\right) \nonumber \\ &\mathrel{\phantom{=}} \times\left\{\left(\lambda+\mu\right)^2\eta_N+\left(\lambda+\mu\right)\mu\eta_N\left(\cos 2\phi+\cos 2\theta\right)\right. \nonumber \\ &\mathrel{\phantom{=}} \left.\kern-\nulldelimiterspace +\;\mu^2\eta_N\cos 2\phi\cos 2\theta+\mu^2\eta_T\sin 2\phi\sin 2\theta\cos\varphi\vphantom{\left(\lambda\right)^2}\right\}, \\ f_{\textit{P},\textit{SH}}\left(\myvec{n};\myvec{m},\myvec{q}\right) &= \frac{\omega^2}{4\pi\rho\alpha\beta^3} \textit{AF}\left(k_\alpha\myvec{n}-k_\beta\myvec{m}\right) \nonumber \\ &\mathrel{\phantom{=}} \times\left(-\mu^2\eta_T\right)\sin 2\phi\cos\theta\sin\varphi, \\ f_{\textit{P},\textit{SV}}\left(\myvec{n};\myvec{m},\myvec{q}\right) &= \frac{\omega^2}{4\pi\rho\alpha\beta^3} \textit{AF}\left(k_\alpha\myvec{n}-k_\beta\myvec{m}\right) \nonumber \\ &\mathrel{\phantom{=}} \times\left\{\left(\lambda+\mu\right)\mu\eta_N\sin 2\theta+\mu^2\eta_N\cos 2\phi\sin 2\theta\right. \nonumber \\ &\mathrel{\phantom{=}} \left.\kern-\nulldelimiterspace -\;\mu^2\eta_T\sin 2\phi\cos 2\theta\cos\varphi\right\}, \end{align} \end{document}
일부 조정에는 다음이 포함됩니다.
- 숨겨진
=
주변의 적절한 간격을 위해\mathrel
사용 ();
- 누락 된
\left.
구분자 주위에 일부 음수\nulldelimiter
커닝 (그렇지 않으면 연산자 / 연산자 사이에 추가 간격이 있습니다. - 여러 줄
\left\{
및\right\}
에 대한 높이 조정 쌍.
공통 스레드로서 Herbert Voß “ mathmode
문서 .
답변
이것은 \intertext
명령을 사용하여 소량의 텍스트에 대해이를 수행하는 방법입니다.
\documentclass{article} \usepackage{amsmath} \begin{document} This example shows \verb|aligned| equations within an \verb|align| environment. \begin{align} \begin{aligned} a &= b + c + d\\ &\qquad + e + f + g \end{aligned}\\ \begin{aligned} k &= l + m + n + m + n + m + n\\ &\qquad + o + p + q \end{aligned} \end{align} This example shows text and equations within an \verb|align| environment. \begin{align} a &= b + c + d\\ &\qquad + e + f + g \intertext{A small amount of text can go here with $x=2$ inline math and $$\int_a^b f(x)\,dx=F(b)-F(a)$$ (even inline math). But not a lot of text. } k &= l + m + n + m + n + m + n\\ &\qquad + o + p + q \end{align} \end{document}
댓글
- 관련 부분은 제가 ‘ 사용한
\qquad
에 관한 것입니다. div id = “b135d8140d”>
충분히 작동하지 않습니다.
답변
후행 방정식을 정렬하는 대신 오른쪽 정렬하려는 경우 (\multiline
환경에서 후행 방정식을 처리하는 방식과 유사) 다음을 사용할 수 있습니다. 내가 Ulrike Fischer의 이 답변 에서 가져온 속임수입니다.
\documentclass{article} \usepackage{amsmath} \begin{document} \begin{align} a & = b + c + d + e + f + g + h \nonumber \\ & \hspace{7cm} + i + j + k \\ a & = b + c + d + e + f + g + h \nonumber \\ & \omit\hfill ${} + i + j + k$ \end{align} \end{document}
답변
\begin{align} \ni Tdij (Ti,Tj,Sk,t) & = Tdij(Ti,Tj,Sk,t) \nonumber \\ & Tddir (Ti,Tj,Sk,t) \bigoplus \nonumber \\ & Tdrecom (Ti,Tj,Sk,t) \bigoplus \nonumber \\ & Tdiv (Ti,Tj,Sk,t) \label{eq:1} \end{align}
다음 출력을 제공합니다.
댓글
- 다른 답변에서 아직 다루지 않은 ‘ 원래 게시물을 어떻게 다루나요?
답변
이 답변은
패키지. 아래 예는 두 개의 LaTeX 매크로\mymidline
및\mylastline
를 정의합니다. 두 매크로 모두 기본적으로align*
환경 내에서 첫 번째 인수로 확장됩니다.\mymidline
매크로는이를 중앙에 배치하고\mylastline
매크로는이를 오른쪽 정렬합니다. 따라서 두 번째 인수에있는 항목의 너비는 사용 가능한 “디스플레이 너비”에서 뺍니다. 방정식의 (가장 긴) 좌변이어야하는align*
환경의 경우. 아래 예는 매크로\LHS
를 사용하여이를 가장 효율적으로 수행하는 방법을 보여줍니다.
\documentclass{article} \usepackage[DIV15]{typearea} \usepackage{amsmath,amsfonts} \usepackage{fleqn} \usepackage{ulem} \makeatletter \newdimen\@tzadima \newdimen\@tzadimb \newbox\@tzaboxa \def\mylinemeasures#1#2{% \@tzadima\displaywidth% \advance\@tzadima-\tagwidth@% \advance\@tzadima-\alignsep@% \setbox\@tzaboxa\hbox{$\displaystyle#1$}% \@tzadimb\wd\@tzaboxa% \advance\@tzadima-\@tzadimb% \setbox\@tzaboxa\hbox{$\displaystyle#2$}% \@tzadimb\wd\@tzaboxa% \advance\@tzadima-\@tzadimb% } \def\mymidline#1#2{% \mylinemeasures{#1}{#2}% \divide\@tzadima2% \hbox to \@tzadima{}#1\notag } \def\mylastline#1#2{% \mylinemeasures{#1}{#2}% \hbox to \@tzadima{}#1% } \makeatother \begin{document} \begin{align*} \gdef\LHS{(L\cdot R)^{(i)}[i+1:n,i+1:n]}\LHS &= \underbrace{L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n]}_{\text{untouched}}+\\ &\mymidline{+ L^{(i)}[i+1:n,i] \underbrace{R^{(i)}[i,i+1:n]}_{\text{untouched pivot row}}+}\LHS\\ &\mylastline{+ \underbrace{L^{(i)}[i+1:n,i+1:n]}_{=1_{n-i-1}}\cdot R^{(i)}[i+1:n,i+1:n]}\LHS\\ &= L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n] +\\ &\mymidline{+ \uwave{L^{(i)}[i+1:n,i]\cdot R^{(i-1)}[i,i+1:n]}+}\LHS\\ &\mylastline{+R^{(i-1)}[i+1:n,i+1:n]\uwave{\strut- L^{(i)}[i+1:n,i]\cdot R^{(i-1)}[i,i+1:n]}}\LHS\\ &=L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n] +\\ &\mymidline{+ \underbrace{L^{(i-1)}[i+1:n,i]}_{=0}\cdot R^{(i-1)}[i,i+1:n] +}\LHS\\ &\mylastline{+ \underbrace{L^{(i-1)}[i+1:n,i+1:n]}_{=1_{n-i}}\cdot R^{(i-1)}[i+1:n,i+1:n]}\LHS\\ &= A[i+1:n,i+1:n]. \end{align*} \end{document}
번호가 매겨진 버전 align*
이있는 경우 \mymidline
및 \mylastline
의 두 번째 인수에있는 등식 레이블의 너비와 레이블 구분 기호. 레이블 너비에 대해 미리 정의 된 측정 값을 찾지 못했습니다. 몇 가지 테스트를 수행 한 결과 \quad\quad(1)
가 레이블에 적합한 자리 표시자인 것으로 나타났습니다.
\documentclass{article} \usepackage[DIV15]{typearea} \usepackage{amsmath,amsfonts} \usepackage{fleqn} \usepackage{ulem} \makeatletter \newdimen\@tzadima \newdimen\@tzadimb \newbox\@tzaboxa \def\mylinemeasures#1#2{% \@tzadima\displaywidth% \advance\@tzadima-\tagwidth@% \advance\@tzadima-\alignsep@% \setbox\@tzaboxa\hbox{$\displaystyle#1$}% \@tzadimb\wd\@tzaboxa% \advance\@tzadima-\@tzadimb% \setbox\@tzaboxa\hbox{$\displaystyle#2$}% \@tzadimb\wd\@tzaboxa% \advance\@tzadima-\@tzadimb% } \def\mymidline#1#2{% \mylinemeasures{#1}{#2}% \divide\@tzadima2% \hbox to \@tzadima{}#1\notag } \def\mylastline#1#2{% \mylinemeasures{#1}{#2}% \hbox to \@tzadima{}#1% } \makeatother \begin{document} \begin{align} \gdef\LHS{(L\cdot R)^{(i)}[i+1:n,i+1:n]}\LHS &= \underbrace{L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n]}_{\text{untouched}}+\notag\\ &\mymidline{+ L^{(i)}[i+1:n,i] \underbrace{R^{(i)}[i,i+1:n]}_{\text{untouched pivot row}}+}\LHS\\ &\mylastline{+ \underbrace{L^{(i)}[i+1:n,i+1:n]}_{=1_{n-i-1}}\cdot R^{(i)}[i+1:n,i+1:n]}{\LHS\quad\quad(1)}\\ &= L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n] +\notag\\ &\mymidline{+ \uwave{L^{(i)}[i+1:n,i]\cdot R^{(i-1)}[i,i+1:n]}+}{(L\cdot R)^{(i)}[i+1:n,i+1:n]}\\ &\mylastline{+R^{(i-1)}[i+1:n,i+1:n]\uwave{\strut- L^{(i)}[i+1:n,i]\cdot R^{(i-1)}[i,i+1:n]}}{\LHS\quad\quad(1)}\\ &=L^{(i-1)}[i+1:n,1:i-1]\cdot R^{(i-1)}[1:i-1,i+1:n] +\notag\\ &\mymidline{+ \underbrace{L^{(i-1)}[i+1:n,i]}_{=0}\cdot R^{(i-1)}[i,i+1:n] +}{(L\cdot R)^{(i)}[i+1:n,i+1:n]}\\ &\mylastline{+ \underbrace{L^{(i-1)}[i+1:n,i+1:n]}_{=1_{n-i}}\cdot R^{(i-1)}[i+1:n,i+1:n]}{\LHS\quad\quad(1)}\\ &= A[i+1:n,i+1:n]. \end{align} \end{document}
!
를 제거하면됩니다. 링크로 전환합니다. 그러면 중재자 또는 편집 권한이있는 다른 사용자가!
를 다시 삽입하여 이미지로 다시 변환 할 수 있습니다.\documentclass
및 적절한 패키지를 포함하여 문제를 설명하는 완전히 컴파일 가능한 MWE 의 관점에서 ‘ 다시 만들 필요가 없습니다.align
가 아닌 단일 긴 방정식입니다. 문서에 따르면,split
는 단일 긴 방정식을위한 것이고,align
는 다중 방정식을위한 것입니다. 번호 매기기에 영향을 주어야합니다.