alignat 또는 다른 환경을 사용하여 연산자를 정렬하는 방법은 무엇입니까?

alignat 또는 다른 환경을 사용하여 연산자를 정렬하는 방법은 무엇입니까?

다음 두 방정식에서 등호와 더하기/빼기 연산자를 정렬하려고 합니다.

S = 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7 - 1/8 + ...

S/2 = 1/2 - 1/4 + 1/6 - 1/8 + ...

동일한 분모로 분수를 정렬하고 싶지만 alignat에서 작동하도록 할 수 없는 것 같습니다. 지금까지 내가 가진 것은 다음과 같습니다.

\begin{alignat*}{6}
S &= 1 &- \frac{1}{2} + \frac{1}{3} &- \frac{1}{4} + \frac{1}{5} &- \frac{1}{6} + \frac{1}{7} &- \frac{1}{8} + \frac{1}{9} &- \frac{1}{10} + \cdots\\
\frac{1}{2}S &= &+ \frac{1}{2} &- \frac{1}{4} &+ \frac{1}{6} &- \frac{1}{8} &+ \frac{1}{10}
\end{alignat*}

당신이 제공할 수 있는 도움에 감사드립니다.

답변1

align및 환경에서 정렬 지점 alignat에 대해 앰퍼샌드가 필요하다는 점을 이해해야 합니다 . 첫 번째는 앰퍼샌드를 도입하는 것입니다.n2n – 1열(두 번째 열부터), 다음 열은 해당 열 내부의 정렬 지점을 위한 것입니다. 또한 두 번째 행에서 ìinitial을 제거했습니다 . 두 번째 정렬 지점은 이제 분수이고 LaTeX에서 이진 연산자로 간주되도록 분수 앞의 +양쪽에 중괄호 쌍을 추가해야 했습니다 . 단항 연산자가 아닌 자체 간격을 사용합니다 sign. (TeX는 좋은 인쇄 관행을 유지하기 위해 이항 연산자와 단항 연산자에 대해 서로 다른 간격 규칙을 가지고 있습니다.)

\documentclass{article}
\usepackage{mathtools}

\begin{document}

\begin{alignat*}{6}
  S
    & = 1 & {} - {}
    & \frac{1}{2} + \frac{1}{3}
    && - \frac{1}{4} + \frac{1}{5}
    && - \frac{1}{6} + \frac{1}{7}
    && - \frac{1}{8} + \frac{1}{9}
    && - \frac{1}{10} + \cdots\\%
  \frac{1}{2}S
    & = &
    & \frac{1}{2}
    && - \frac{1}{4}
    && + \frac{1}{6}
    && - \frac{1}{8}
    && + \frac{1}{10}
\end{alignat*}

\end{document} 

여기에 이미지 설명을 입력하세요

답변2

패키지만 사용하는 다음 솔루션이 array도움이 될 수 있습니다.

array솔루션에 사용된 환경에는 23개의 [!] 개별 열이 있습니다. 첫 번째 용어와 숫자에 대해 12개, , 및 기호에 대해 11 =+입니다 -. 처음에는 많은 열처럼 보일 수 있습니다. 좋은 점은 LaTeX에 및 기호가 단항 연산자가 아닌 이항 연산자임을 {}알리기 위해 다양한 위치에 ("빈 수학 원자")를 삽입할 필요가 없다는 점입니다 . 또 다른 장점은 완전한 유연성이 있다는 것입니다. 예를 들어 두 번째 열에 공백으로 남아 있는 일부 열의 항목이 있는 세 번째 행을 추가해야 하는 경우 설정을 전혀 변경할 필요가 없습니다.-+

여기에 이미지 설명을 입력하세요

\documentclass{article}
\usepackage{array}
\newcolumntype{R}{>{\displaystyle}r} % automatically in display math style
\newcolumntype{O}{>{{}}c<{{}}}       % "O" for "operator" ...
\begin{document}
\[
\setlength\arraycolsep{0pt} % no need for extra intercolumn whitespace
\begin{array}{*{11}{RO}R}
S &=& 1 &-& \frac{1}{2} &+& \frac{1}{3} &-& \frac{1}{4} &+& \frac{1}{5} 
        &-& \frac{1}{6} &+& \frac{1}{7} &-& \frac{1}{8} &+& \frac{1}{9} 
        &-& \frac{1}{10}&+& \cdots \\[2.5ex]
\frac{1}{2}S 
  &=&   & & \frac{1}{2} & &             &-& \frac{1}{4} & &             
        &+& \frac{1}{6} & &             &-& \frac{1}{8} & &             
        &+& \frac{1}{10}
\end{array}
\]
\end{document} 

답변3

두 번째 줄의 첫 번째 항에서 부호를 autoaligne제거하는 트릭을 추가한 새 패키지를 사용할 수 있습니다 .+

매크로 \f는 단지 입력을 줄이기 위한 것입니다. 빈 용어를 간격을 둔 연산 기호로 표시할 수 있다면 더 좋을 것입니다. 아아, 작동하지 않는 것 같습니다. 그럼에도 불구하고 정렬에 대한 입력은 너무 많은 &기호를 사용하는 것보다 훨씬 더 명확합니다.

\documentclass{article}
\usepackage{amsmath}
\usepackage{autoaligne}

%% A trick for an empty delimiter
\newcommand{\makeempty}[1]{%
  \begingroup\lccode`~=`#1 \lowercase{\endgroup\def~}{\mathbin{\phantom{+}}}%
  \mathcode`#1="8000
}


\begin{document}

\[
\newcommand{\f}[1]{\dfrac{1}{#1}}
\aavcoeff{2.5}
\makeempty{V}
\definirseparateurs{\\}{+||-||V||=}{}
\autoaligne{
     S = 1 - \f{2} + \f{3} - \f{4} + \f{5} - \f{6} + \f{7} - \f{8} + \f{9} - \f{10} + \dotsb \\
\f{2}S =   V \f{2}        +- \f{4}        ++ \f{6}        +- \f{8}        ++ \f{10} + \dotsb
}
\]

\end{document}

여기에 이미지 설명을 입력하세요

답변4

곤란한 상황에 처한 경우 s를 사용하여 "빈칸을 채울" 수 있습니다 \phantom.

여기에 이미지 설명을 입력하세요

\documentclass{article}

\begin{document}

\[
  \renewcommand{\arraystretch}{2}
  \begin{array}{l}
    \phantom{\frac{1}{2}}S = 
      \displaystyle 1 - \frac{1}{2} + \frac{1}{3} - \frac{1}{4} + \frac{1}{5} - \frac{1}{6} + \frac{1}{7} - \frac{1}{8} + \frac{1}{9} - \frac{1}{10} + \cdots \\
    \frac{1}{2}S = 
      \displaystyle \phantom{1-{}}\frac{1}{2} \phantom{{}+\frac{1}{3}} - \frac{1}{4} \phantom{{}+\frac{1}{5}} 
      + \frac{1}{6} \phantom{{}+\frac{1}{7}} - \frac{1}{8} \phantom{{}+\frac{1}{9}} + \frac{1}{10} \cdots
  \end{array}
\]

\end{document}

관련 정보