2009-04-18 15 views
17

Mi grupo usa Literate Programming para la mayoría de nuestro código fuente --- esto significa que la documentación interna está escrita usando LaTeX. Hemos estado usando PStricks para obtener diagramas técnicos sofisticados del sistema, pero recientemente hemos recomendado usar TikZ. He reunido esta información:¿Cómo se comparan PStricks y TikZ para facilitar el aprendizaje y la calidad del diseño de API?

  • TikZ/PGF es nuevo y se mantiene; PStricks pasó mucho tiempo sin un mantenedor, pero ha recibido algo de mantenimiento en los últimos años.
  • TikZ funciona con muchos back ends, incluso (para aquellos que se preocupan) pdftex. PStricks solo funciona con dvips.
  • PStricks es más poderoso y expresivo que TikZ. En una emergencia extrema, incluso tiene toda la potencia de PostScript.
  • PStricks tiene una ecología significativa de paquetes adicionales que se han construido encima; TikZ es demasiado nuevo para tener muchas de esas cosas.
  • TikZ afirma haber sido diseñado "con las deficiencias de PStricks en mente". El autor no especifica que deficiencias.

Estoy interesado en la respuesta a dos preguntas. Si lo desea, no dude en enviar una respuesta por pregunta:

  • ¿Cuál es la curva de aprendizaje como por las dos herramientas? (I pstricks considerar tener una curva de aprendizaje;. TikZ acerca soy desinformados)

  • Se considera un API de programación, es uno de estos dos paquetes diseñados significativamente mejor que el otro? Si es así, ¿cuál es el mejor diseño y por qué? (¿Qué propiedades qué tiene que hacer lo consideras mejor?)

Para hacer un argumento convincente por qué una API es mejor que otro, es posible que desee recurrir a ejemplos.

Respuesta

17

respuesta rápida: Prefiero TikZ a pstricks porque creo TikZ

  • es mejor diseñados
  • es más fácil de aprender
  • es compatible con pdftex
  • le da más potencia y la abstracción (que no tiene que especificar tantas coordenadas a mano)
  • le permite crear gráficos más hermosos con el mismo esfuerzo
  • es más fácil ampliar usando la programación TeX (fue diseñado desde cero con la extensibilidad en mente)

Para los usuarios de pstricks, recomendaría escribir todos los documentos nuevos usando TikZ en el futuro. Para los usuarios de METAPOST, si sus gráficos no usan resolución de ecuación lineal, recomendaría TikZ. Si los gráficos de METAPOST necesitan una resolución de ecuación lineal, sugeriría intentar Asymptote.

pstricks realmente le da la potencia de PostScript, pero no es PostScript lo que hace que su creación de gráficos sea poderosa, pero es abstracción: el uso de posicionamiento automático, cálculos de intersección automática y plantillas de estilo de visualización. TikZ te ofrece abstracciones poderosas, incluso si no eres un programador, o no estás dispuesto a programar este momento.

No tengo experiencia escribiendo extensiones TikZ, pero a partir de una rápida visión del código fuente de TikZ, parece ser fácil de entender y ampliar, en comparación con otros paquetes de macro TeX que encontré.

+0

¿Qué hace que TikZ sea un mejor diseño? –

+1

No estoy lo suficientemente familiarizado con el código TikZ o PSTricks para responder esto por usted. Eche un vistazo al código. Creo que encontrará más abstracciones genéricas, adecuadas y útiles (que puede enganchar en sus extensiones) que en PSTricks. – pts

+5

Ha pasado demasiado tiempo desde que utilicé PSTricks, por lo que no puedo responder la pregunta, pero me gustaría añadir que TikZ tiene un muy buen manual de más de 500 páginas lleno de ejemplos. Una vez que esté familiarizado con los conceptos básicos de TikZ, puede usar rápidamente casi cualquier función mirando el manual durante 10 minutos. He escrito algunas extensiones de TikZ, como nuevas formas de nodos, y esto no es tan difícil si entiendes las primitivas de cálculo de TeX y miras el código fuente de TikZ. –

0

Creo que pstricks es superior. TikZ ni siquiera tiene una buena forma de traducir coordenadas, como los comandos rput/uput/Aput/Bput pstricks. Puede usar xshift e yshift, pero estos requieren unidades (!), Por lo que escalar la imagen requerirá un desplazamiento manual de cada llamada xshift/yshift.

+8

No es cierto. Puede escalar la imagen completa en tikz simplemente agregando una opción de escala, como '\ begin {tikzpicture} [scale = 2]' hará que la imagen sea dos veces su tamaño original. – Curious2learn

+0

John es verdadero, uno debe indicar explícitamente todas las unidades para obtener la escala adecuada usando '[scale = 2]' por ejemplo. Eche un vistazo a mi respuesta a una pregunta aquí: http://tex.stackexchange.com/questions/196378/drawing-2-d-coordinates-with-2-simple-line-in-it/196387#196387 y mire en la salida si agrega 'scale = 0.5' por ejemplo. – AboAmmar

+0

Además, puedes usar 'shift = {(x, y)}' para desplazar sin especificar unidades. – Turion

1

Solo he usado PSTricks, pero he hecho que haga todo lo que quiero que haga. Tikz tiene un buen manual y es claramente muy poderoso. Hay dos cosas que me gustaría sacar de un sistema de dibujo que no puedo hacer con PSTricks: bordes emplumados (que Tikz puede hacer), y no puedo recordar la otra cosa. OP preguntaba sobre la 'facilidad de aprendizaje': PSTricks ciertamente requiere un poco de prueba y error, y creo que una disciplina de codificación en la que no soy muy bueno. Pero el rendimiento es bastante central para la forma en que uso PSTricks. No puedo imaginar estar sin él.

Por otro lado, las "decoraciones" se ven bastante ordenadas. Me gusta el ejemplo 'guardado de basura' en la página 210 (!) Del manual (560 pp. Total). No me gusta el hecho de que Tikz parece usar una notación completamente diferente: no reconozco LaTeX, lo que lo hace parecer extraño y extraño. El manual se ve hermoso, sin embargo. La transparencia y los efectos de 'fundido' parecen muy poderosos ... ¿se puede hacer eso en pstricks? ..pero dudo que alguna vez los use. Tikz parece un poco más en el "dibujo" final de las cosas. Como regla, no hago dibujos, hago figuras.

¿Se puede hacer aritmética en las coordenadas? Tendría que empezar de nuevo y aprender de cero para usar Tikz, lo cual es una tarea difícil si no estoy seguro de lo que obtendría de ello.

7

Como un usuario aficionado de TikZ he estado teniendo este debate con un profesor en mi departamento de física que adora los pstricks y creo que hemos llegado a una conclusión como ya he indicado en otras publicaciones. Ausentes algunas veces cuando se sumerge en el PS en sí, TikZ y pstricks son muy comparables en la mayoría de los sentidos. La extensibilidad y compatibilidad de TiKZ es atractiva, lo que nos lleva a aceptar que:

  • Creemos que los nuevos usuarios deberían aprender TikZ.
  • Las manos viejas en pstricks probablemente no ganarán lo suficiente con el cambio y puede que no valga la pena hacerlo.

Espero que eso ayude!

1

Estoy desarrollando una aplicación asp.net que funcione con la distribución de Miktex instalada en el servidor.

La aplicación generará problemas matemáticos y produce archivos pdf para ser descargados por el visitante. Los problemas matemáticos contienen algunas imágenes jpeg y diagramas matemáticos.

Estaba confundido si usar PSTricks o Tikz. Después de la evaluación comparativa de la aplicación, debo usar Tikz porque solo necesita un paso de compilación usando pdftex. Entonces Tikz gana en este escenario.: D

Nota: Espero que mi respuesta coincida con su pregunta: D

Cuestiones relacionadas