
짧은 방정식이 여러 개 있는데 이를 두 개의 열에 표시하고 싶습니다. 기본적으로:
A = B (1) || C = D (2)
E = F (3) || G = H (4)
나는 먼저 flalign
환경을 시험해 보았지만(나는 이것을 선호 align
하지만 꼭 필요한 것은 아닙니다) 내가 원하는 방식으로 방정식의 번호를 매길 수 없었습니다. 환경 align
은 모든 행을 하나의 방정식으로 처리합니다.
예:
\documentclass{article}
\usepackage{mathtools}
\usepackage{amsmath}
\begin{document}
\begin{flalign}
A = & B & C = & D \\
E = & F & G = & H
\end{flalign}
\end{document}
또 다른 접근 방식은 강제로 열 나누기를 사용하는 간단한 multicolumn
환경이었습니다.
\documentclass{article}
\usepackage{mathtools}
\usepackage{amsmath}
\usepackage{multicol}
\begin{document}
\begin{multicols}{2}
\begin{align}
A = & B \\
E = & F
\end{align}
\columnbreak
\begin{align}
C = & D \\
G = & H
\end{align}
\end{multicols}
\end{document}
그러나 여러 가지 문제가 있습니다.
- 방정식의 위치가 수직으로 잘못된 것 같습니다.
- 번호 매기기는 가로가 아닌 세로로 진행됩니다(이것은 나에게 허용됩니다).
이에 대한 도움을 주시면 감사하겠습니다.
답변1
나중에 참조하려는 경우에만 방정식에 번호를 매겨야 한다고 생각합니다. 따라서 이 철학에 따라 방정식 번호를 삽입하고 레이블도 만드는 매크로를 정의하는 것은 어떨까요?
\newcommand\Label[1]{&\refstepcounter{equation}(\theequation)\ltx@label{#1}&}
이것은 먼저 equation
카운터를 증가시키고 인쇄한 다음 레이블을 만드는 데 몇 가지 트릭이 있습니다(amsmath 환경은 여러 레이블이 한 줄에 나타날 때 오류 메시지를 인쇄하므로 이를 회피해야 합니다). 때문에 @
이것은 내부에 포장되어야 합니다 \makeatletter...\makeatother
.
&
아마도 현명하지 못할 수도 있지만 매크로 내부에 를 포함시켰 으므로 가 \Label
항상 환경과 같은 내부에서 사용될 것이라고 암시적으로 가정했습니다. 환경이 추가 레이블을 제공하는 것을 원하지 않기 때문에 align*
참고하세요 . *
반면에 align*
오류 발생을 방지하려면( align*
방정식 번호를 억제하므로) 약간의 추가 노력이 필요하므로 이 매크로는 ams 정렬 환경 외부에서는 작동하지 않습니다.
이 매크로를 사용하면 다음이 제공됩니다.
전체 코드는 다음과 같습니다.
\documentclass{article}
\usepackage{mathtools}
\usepackage{amsmath}
\makeatletter
\newcommand\Label[1]{&\refstepcounter{equation}(\theequation)\ltx@label{#1}&}
\makeatother
\begin{document}
\begin{align*}
A &= B \Label{one}& C &= D \Label{two}\\
E &= F \Label{three}& G &= H \Label{four}
\end{align*}
See equations \ref{one}, \ref{two}, \ref{three} and \ref{four}.
\end{document}
위에서 말했듯이 두 개의 &
를 매크로 안에 넣는 것은 \Label
환경의 일부 구조를 숨겨 align*
결국 누군가를 혼란스럽게 할 수 있으므로 현명하지 못할 것입니다.
Btw, 이것은 flalign*
환경에서도 똑같이 잘 작동합니다.
답변2
답변에 댓글을 추가할 수 없어서 \Label
첫 글자만 사용하는 것과 비슷한 문제가 있는 다른 사람에게 답변으로 추가합니다.
내부에서 적절하게 확장될 수 있도록 \tmpLabel
프리미티브를 사용하여 더미 변수를 추가했습니다 .\def
\ltx@label
\makeatletter
\newcommand{\allignLabel}[1]{&\refstepcounter{equation}(\theequation)\def\tmplab{#1}\ltx@label\tmplab&}
\makeatother
이에 대한 더 우아한 해결책이 있다고 확신하므로 적절한 해결책으로 이 답변에 의견을 제시하거나 편집하십시오.