2009-10-16 31 views
23

Tôi đang cố thêm phương trình vào một dòng mới. Vấn đề là phương trình quá dài cho dòng, và tôi cần phải phá vỡ nó theo cách thủ công. Nếu không, nó chỉ trùng lặp với cột bên phải, hoặc đến lề phải (và trông xấu xí ...). Có cách nào LaTeX có thể phanh phương trình cho tôi, vì vậy nó có vẻ tốt đẹp?Làm cách nào để phá vỡ một phương trình dài trên các dòng?

Tôi gắn đang mủ của tôi:

\begin{align*} 
f(n)-f(0) &= A(n)-B(n)-C(n)-D(n)\cdot d-\left(A(0)-B(0)-C(0)-D(0)\cdot d\right) \\ 
      &= A(n)-0-X-D(n)\cdot d-\left(0-0-0-0\right) \\ 
      &= A(n)-X-D(n)\cdot d 
\end{align*} 

Dòng vấn đề là dòng đầu tiên, mà là quá dài.

+0

Đây không phải là những gì align * có nghĩa là: các dòng được coi là phương trình riêng biệt, trong khi đó là (IMO) một phương trình. Sử dụng \ [\ begin {split} .... \ end {split} \] thay vào đó. Bằng cách này, nếu bạn quyết định đánh số mọi thứ, khối sẽ nhận được một số, thay cho ba số. – Martijn

Trả lời

13

Gói breqn được thiết kế để chia các phương trình dài tự động. Nó hoạt động rất tốt trong phần lớn các tình huống, nhưng nó không trưởng thành như gói amsmath. Đây là cách bạn muốn viết phương trình ví dụ của bạn:

 
\documentclass{article} 
\usepackage{breqn} 
\begin{document} 
\begin{dmath} 
f(n)-f(0) = A(n)-B(n)-C(n)-D(n)\cdot d-\left(A(0)-B(0)-C(0)-D(0)\cdot d\right) 
      = A(n)-0-X-D(n)\cdot d-\left(0-0-0-0\right) 
      = A(n)-X-D(n)\cdot d 
\end{dmath} 
\end{document} 

Lưu ý không có đánh dấu cho sự liên kết hoặc dòng mới, nhưng sản lượng trông về cơ bản giống như là nếu bạn sử dụng align.

+0

Wow! Đó là một trong những công trình thực sự thực sự tốt! Điều này phù hợp với toàn bộ ý tưởng của Latex, không cần phải lo lắng nếu mã của bạn có định dạng phông chữ nhỏ nhiều cột hoặc một phông chữ lớn một cột. Cảm ơn! – Anna

+0

Sau khi chơi xung quanh với nó nhiều hơn một chút, tôi thấy rằng nó không phải là thuốc chữa bách bệnh, và tôi sẽ cần phải sử dụng môi trường phân chia đôi khi cũng có.Nhưng điều này là tốt đẹp anyway. – Anna

0

Theo như tôi biết, điều này là không thể. Khi làm việc bên trong màn hình, bạn chịu trách nhiệm cho các ngắt dòng. Làm thế nào để ngắt dòng, và làm thế nào để tiếp tục trên dòng tiếp theo trong trường hợp dấu ngoặc đơn, là một câu hỏi khó khăn cho con người (ví dụ, phần liên quan trong Grätzer, "Toán thành LaTeX"), hãy để một mình cho một máy tính.

Ví dụ: khi bạn ngắt dòng đầu tiên sau \ left (, bạn cần \ right. Ở cuối và \ left. Ở đầu dòng tiếp theo (nếu không bạn sẽ gặp lỗi). , bạn muốn đầu dòng tiếp theo để được tiếp tục đúng hơn khung được sản xuất bởi \ left (

+0

Tôi không chắc chắn rằng tôi đồng ý với điều đó. Latex không thành công để đặt các từ và câu trong phạm vi khá độc đáo. +1 cho mẹo tách đầu và kết thúc. – Anna

+0

breqn thực sự quản lý để giải quyết vấn đề khá tốt. Và nếu/khi nó đi sai, bạn luôn có thể phá vỡ thủ công để bộ. –

1

phương pháp chuẩn mà tôi đã sử dụng trong quá khứ là một eqnarray. Xem ví dụ this page.

+0

eqnarray có vẻ tốt đẹp. Tôi không chắc liệu nó có tốt hơn chia rẽ hay không, và tại sao. – Anna

+3

Không sử dụng 'eqnarray'! http://www.tug.org/pracjourn/2006-4/madsen –

+0

Trên thực tế, 'align' và' align * ', họ của môi trường được sử dụng bởi OP, là cách để đi khi bạn muốn sử dụng thứ gì đó như 'eqnarray'. – njsg

10

Tôi thường thích xử lý điều này bằng cách sử dụng gói amsmath và sử dụng cấu trúc split. Có một loạt các cấu trúc hữu ích trong đó để chia tách phương trình ns trên các dòng, nhưng đó thường là cách đơn giản nhất để sử dụng.

Nhiều cài đặt TeX đã có gói, nhưng bạn cũng có thể lấy nó từ the AMS website.

+0

Cảm ơn bạn đã liên kết đến trang web của ams. Nó có một số jems bên trong. – Anna

Các vấn đề liên quan