2009-04-18 77 views
17

Nhóm của tôi sử dụng Literate Programming cho hầu hết mã nguồn của chúng tôi --- điều này có nghĩa là tài liệu nội bộ được viết bằng LaTeX. Chúng tôi đã sử dụng PStricks cho các sơ đồ kỹ thuật ưa thích của hệ thống, nhưng gần đây đã được đề xuất sử dụng TikZ. Tôi đã thu thập thông tin này:PStricks và TikZ so sánh như thế nào để dễ học và chất lượng thiết kế API?

  • TikZ/PGF là mới và duy trì; PStricks đã đi một thời gian dài mà không có một người bảo trì nhưng đã nhận được một số bảo trì trong vài năm qua.
  • TikZ hoạt động với nhiều kết thúc, bao gồm (đối với những người quan tâm) pdftex. PStricks chỉ hoạt động với dvips.
  • PStricks mạnh mẽ và biểu cảm hơn TikZ. Trong trường hợp khẩn cấp nghiêm trọng, bạn thậm chí còn có toàn bộ sức mạnh của PostScript.
  • PStricks có một hệ sinh thái quan trọng của các gói bổ sung đã được xây dựng trên đầu trang của nó; TikZ quá mới để có nhiều thứ như vậy.
  • TikZ tuyên bố đã được thiết kế "với những thiếu sót của PStricks trong tâm trí." Tác giả không chỉ định trong đó thiếu sót.

Tôi quan tâm đến câu trả lời cho hai câu hỏi. Nếu bạn muốn, cảm thấy tự do để gửi một câu trả lời cho mỗi câu hỏi:

  • đường cong học như cho hai công cụ là gì? (Tôi coi PStricks để có một đường cong học tập dốc;. Về TikZ Tôi không hiểu rõ)

  • coi như các API lập trình, là một trong hai gói này đáng kể thiết kế tốt hơn so với người kia? Nếu vậy, thiết kế nào tốt hơn và lý do tại sao? (Những đặc tính nào mà nó làm cho bạn xem xét nó tốt hơn?)

Để đưa ra một lý lẽ thuyết phục tại sao một API tốt hơn một API khác, bạn có thể muốn sử dụng các ví dụ.

Trả lời

17

câu trả lời nhanh: Tôi thích TikZ để pstricks vì tôi nghĩ rằng TikZ

  • là tốt hơn được thiết kế
  • là dễ dàng hơn để học hỏi
  • tương thích với pdfTeX
  • mang đến cho bạn nhiều quyền lực hơn và trừu tượng (bạn không cần phải chỉ định nhiều tọa độ bằng tay)
  • cho phép bạn tạo ra nhiều đồ họa đẹp hơn với cùng nỗ lực
  • nó dễ dàng hơn để mở rộng bằng cách sử dụng lập trình TeX (nó được thiết kế từ mặt đất lên với khả năng mở rộng trong tâm trí)

Đối với người dùng của pstricks, tôi khuyên bạn nên viết tất cả tài liệu mới bằng TikZ trong tương lai. Đối với người dùng METAPOST, nếu đồ họa của họ không sử dụng giải phương trình tuyến tính, tôi khuyên dùng TikZ. Nếu đồ họa METAPOST cần giải phương trình tuyến tính, tôi khuyên bạn nên thử Asymptote.

pstricks thực sự cung cấp cho bạn sức mạnh của PostScript, nhưng không phải PostScript làm cho đồ họa của bạn mạnh mẽ, nhưng nó trừu tượng: sử dụng định vị tự động, tính toán giao cắt tự động và mẫu kiểu hiển thị. TikZ cung cấp cho bạn những trừu tượng mạnh mẽ, ngay cả khi bạn không phải là lập trình viên, hoặc bạn không sẵn sàng lập trình lần này.

Tôi không có kinh nghiệm viết các phần mở rộng TikZ, nhưng từ một cái nhìn nhanh về mã nguồn TikZ, nó có vẻ dễ hiểu và mở rộng, so với các gói macro TeX khác mà tôi gặp.

+0

Điều gì khiến TikZ thiết kế tốt hơn? –

+1

Tôi không đủ quen thuộc với mã TikZ hoặc PSTricks để trả lời câu hỏi này cho bạn. Hãy xem mã. Tôi nghĩ rằng bạn sẽ tìm thấy nhiều trừu tượng và hữu ích và trừu tượng chung chung có (mà bạn có thể móc vào trong phần mở rộng của bạn) hơn trong PSTricks. – pts

+5

Đã quá lâu kể từ khi tôi sử dụng PSTricks, vì vậy tôi không thể trả lời câu hỏi, nhưng tôi muốn thêm rằng TikZ có 500+ trang hướng dẫn sử dụng rất đẹp. Một khi bạn đã quen thuộc với những điều cơ bản của TikZ, bạn có thể nhanh chóng sử dụng hầu như bất kỳ tính năng nào bằng cách xem trong hướng dẫn sử dụng trong 10 phút. Tôi đã viết một số phần mở rộng TikZ chẳng hạn như các nút hình mới, và điều này không quá khó nếu bạn hiểu các nguyên hàm tính toán TeX và xem mã nguồn TikZ. –

0

Tôi nghĩ rằng pstricks là cấp trên. TikZ thậm chí không có cách tốt để dịch tọa độ, như lệnh rput/uput/Aput/Bput pstricks. Bạn có thể sử dụng xshift và yshift, nhưng các đơn vị này yêu cầu (!), Do đó, mở rộng hình ảnh sẽ yêu cầu kích hoạt thủ công mọi cuộc gọi xshift/yshift.

+8

Không đúng sự thật. Bạn có thể mở rộng toàn bộ hình ảnh trong tikz bằng cách thêm một tùy chọn tỷ lệ, chẳng hạn như '\ begin {tikzpicture} [scale = 2]' sẽ làm cho hình ảnh gấp đôi kích thước ban đầu của nó. – Curious2learn

+0

John là đúng, người ta phải tuyên bố rõ ràng tất cả các đơn vị để có được tỷ lệ thích hợp bằng cách sử dụng '[scale = 2]' chẳng hạn. Hãy xem câu trả lời của tôi cho câu hỏi ở đây: http://tex.stackexchange.com/questions/196378/drawing-2-d-coordinates-with-2-simple-line-in-it/196387#196387 và xem ở đầu ra nếu bạn thêm 'scale = 0.5' chẳng hạn. – AboAmmar

+0

Ngoài ra, bạn chỉ có thể sử dụng 'shift = {(x, y)}' để dịch chuyển mà không chỉ định đơn vị. – Turion

1

Tôi đã từng sử dụng PSTricks, nhưng tôi đã làm cho nó làm mọi thứ tôi muốn nó làm. Tikz có một hướng dẫn sử dụng tuyệt vời và rõ ràng là rất mạnh mẽ. Có hai thứ mà tôi muốn ra khỏi một hệ thống vẽ mà tôi không thể làm với PSTricks: các cạnh có lông (mà Tikz có thể làm), và tôi không thể nhớ điều khác. OP đã hỏi về 'dễ học': PSTricks chắc chắn đòi hỏi một số thử và sai, và tôi nghĩ rằng một số kỷ luật mã hóa mà tôi không giỏi lắm. Nhưng \ rput là khá trung tâm như thế nào tôi sử dụng PSTricks .. Tôi không thể tưởng tượng được mà không có nó.

Mặt khác, 'trang trí' trông khá gọn gàng. Tôi thích ví dụ 'đã lưu từ thùng rác' trên trang 210 (!) Của sách hướng dẫn (tổng số 560 trang). Tôi không thích thực tế là Tikz dường như sử dụng một ký hiệu hoàn toàn khác - tôi không nhận ra LaTeX trong đó khiến nó có vẻ lạ và lạ. Hướng dẫn sử dụng trông đẹp, mặc dù. Tính minh bạch và hiệu ứng 'mờ dần' có vẻ rất mạnh mẽ .. có thể được thực hiện trong pstricks? .. nhưng tôi nghi ngờ rằng tôi sẽ sử dụng chúng. Tikz dường như còn nhiều hơn một chút về kết thúc "vẽ" của mọi thứ. Theo quy định, tôi không vẽ, tôi vẽ hình.

Bạn có thể thực hiện số học trên tọa độ không? Tôi phải bắt đầu lại và học từ đầu để sử dụng Tikz, đó là một sự bán hàng khó khăn nếu tôi thậm chí không chắc chắn những gì tôi sẽ thoát ra khỏi nó.

7

Là một người dùng yêu thích TikZ, tôi đã có cuộc tranh luận này với một giáo sư trong khoa vật lý của tôi, những người yêu thích những câu hỏi và tôi nghĩ chúng tôi đã đi đến kết luận như tôi đã nêu trong các bài viết khác. Vắng mặt một vài lần khi nhúng vào bản thân PS, TikZ và pstricks là rất so sánh trong hầu hết các cách. Khả năng mở rộng và tính tương thích của TiKZ hấp dẫn khiến chúng tôi đồng ý rằng:

  • Chúng tôi nghĩ rằng người dùng mới nên học TikZ.
  • Bàn tay cũ tại các điểm nhỏ có thể sẽ không đủ để chuyển đổi và có thể không đáng làm.

Hy vọng điều đó sẽ hữu ích!

1

Tôi đang phát triển một ứng dụng asp.net làm việc với phân phối Miktex được cài đặt trên máy chủ.

Ứng dụng sẽ tạo ra các vấn đề về toán học và tạo tệp pdf để khách truy cập tải xuống. Các vấn đề toán học có chứa một số hình ảnh jpeg và sơ đồ toán học.

Tôi đã nhầm lẫn khi sử dụng PSTricks hoặc Tikz. Sau khi đánh giá ứng dụng, tôi phải sử dụng Tikz vì nó chỉ cần một bước biên dịch bằng cách sử dụng pdftex. Vì vậy, Tikz thắng trong kịch bản này.: D

Lưu ý: Tôi hy vọng câu trả lời của tôi khớp với câu hỏi của bạn: D

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