
\eqref
단순히 을 수행하는 대신 명령을 사용하는 방법을 배우려고 노력 중이므로 tag{1.1}
돌아가서 번호를 다시 매길 필요가 없습니다. 문제가 있습니다. 문제 3b에서는 다음과 같이 말합니다.
Now \eq{y(t, \epsilon)= y_0(t) + \epsilon y_1(t) + O(\epsilon^2), \label{eq:aa}}
(\eq는 제가 정의한 약어입니다 \newcommand{\eq}[1]{\begin{align*}#1\end{align*}}
.) 나중에 돌아가서 글을 쓰는데 So we can fill in \eqref{eq:aa}
문제는 다음과 같습니다.
- 방정식에 라벨을 붙이지 않습니다.
- 다시 참조할 때 첫 번째 태그가 지정된 방정식이지만 이를 (1.2)라고 부릅니다.
진단에 도움이 된다면 내 코드에 대한 링크는 다음과 같습니다.https://www.writelatex.com/read/zjhhjpndjpkz
도와주셔서 감사합니다!
답변1
좋아요. 여기에 정의에 몇 가지 문제가 있습니다.
어느별표 표시된 수학 표시 환경은 번호 매기기를 억제하기 위한 것입니다. 별표 표시된 환경에 을 추가할 수 있지만 \tag{...}
숫자가 자동으로 증가하지는 않습니다. 그러나 \label
그러한 태그에는~ 할 것이다\ref
또는 의 영예를 얻습니다 \eqref
. ( \eqref
실제로는 a의 인수를 \ref
똑바로 괄호로 묶는 형식을 취하는 것뿐입니다.)
다음. align
각 줄에는 왼쪽 부분과 오른쪽 부분이 있는 여러 줄 표현에 사용됩니다. 많은 사람들이 \align
단선 디스플레이를 사용하지만 다중 라인 디스플레이 주변의 수직 간격이 단선 디스플레이 주변의 수직 간격과 의도적으로 다르기 때문에 이는 나쁜 생각입니다. 한 줄에 두 부분이 없으면( 로 구분됨 &
) 구조가 수평으로 중앙에 배치되지 않습니다.
마지막으로, 환경을 명령으로 전환하면 입력 내용을 다른 사람이 읽고 해독하기가 훨씬 더 어려워지며 표시 자료를 긴 줄로 실행하는 것과 같은 나쁜 입력 습관으로 이어집니다. 제 말을 믿으십시오. 이는 저널 편집자의 심각한 탈모로 이어집니다.
이와 같은 약칭을 사용하여 한 줄로 된 숫자 표시를 정말로 원한다면 다음과 같이 할 수 있습니다:
\newcommand{\eq}[1]{\begin{equation} #1\end{equation}}
하지만 그렇게 하기 전에 두 번 생각하는 것이 좋습니다. 누군가 입력 환경/편집기에서 "완성"을 사용하도록 설득할 것을 제안했습니다. 이것이 만든다많이파일을 더 조사하기 쉽고 장기적으로 더 효율적인 디버깅 및 유지 관리가 가능합니다.
답변2
링크에 제공된 코드를 살펴보았습니다. 가장 큰 문제는 align*
매크로 정의에 환경을 사용한다는 것입니다 \eq
. 그만큼align*
은 설계상 다음과 같습니다.~ 아니다방정식 번호를 늘리거나 인쇄합니다. 따라서 \label
이 방정식(또는 방정식 그룹)과 관련된 명령은 에서 생성된 내용을 가리키지 않습니다 \eq
.
결과적으로 후속 \ref
또는 \eqref
명령은 해당 구조를 가리키지 않습니다. 대신, 둘 중 하나 (??)
가 인쇄되거나 상호 참조는 손실된 명령 이전에 가장 최근에 연관된 카운터가 증가한 개체를 가리킵니다 \label
. 이 객체는 섹션, 정리, "일반적인" 방식(즉, 를 통하지 않음 \eq
)으로 생성된 다른 방정식 등일 수 있습니다.
\eq
다음과 같이 매크로를 정의하면 더 나은 결과를 얻을 수 있습니다 .
\newcommand{\eq}[1]{\begin{equation}\begin{split} #1 \end{split}\end{equation}}
\label
다음과 같이 명령을 추가합니다 .
\eq{y(t, \epsilon)= y_0(t) + \epsilon y_1(t) + O(\epsilon^2),} \label{eq:aa}
이 설정을 사용하면 명령문 \tag
내의 모든 명령 이름을 .\eq
\label