Many people always say that LaTeX is the best typesetting system which is flexible and powerful. For me, I have used LaTeX for one year already but I still have some problems with it.

Let me talk about pros and cons of LaTeX according to my experience.


  1. LaTeX has a dynamic formatting.
  2. LaTeX syntax is very simple.
  3. Many packages in LaTeX make our life easier.


  1. LaTeX has too much fragmentation in packages which also lead to fragmentation in syntax and document environments.

  2. Many packages in LaTeX are not well-designed, many problems about formatting are frequently solved in a tricky way (many times via macros) instead of a straightforward way via a function parameter or option.

Usually, 50% of my working time on LaTeX is wasted on solving bug, fixing formats. This is a strong signal that tell me that I've come into the wrong way of learning and using LaTeX. Thus my questions are

Do you agree with my complaints above? If not please explain why.

What is the right way to learn LaTeX?

Which packages or environments should I learn and use as a standard library?

closed as too broad by Werner, Mensch, user13907, egreg, Svend Tveskæg Sep 4 '15 at 16:48

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    You seem to ask a lot of questions at once, but for the one in the title see What are good learning resources for a LaTeX beginner? and maybe LaTeX Introductions in languages other than English – moewe Sep 4 '15 at 15:51
  • All questions should lead to my main question and I also have a good resources of learning Latex but 50% of my wasting time is not about without a basic of programming in Latex but about another thing, If all questions above can be answer nicely, I think my problem should be solved. – fronthem Sep 4 '15 at 15:54
  • While I'm at it, I am not sure whether I agree with your pros. (What do you mean by dynamic formatting?) And I think there are other pros, viz. good output, reasonable defaults, excellent math support. You have a point with your first con, there are lots of packages, some are no longer developed and deprecated and packages with the same aim sometimes use different commands. Your second point is not quite fair, I think most packages are actually very well designed by people who know what they are doing. – moewe Sep 4 '15 at 16:02
  • Sometime when one has to resort to trickery that is because the developer did not include the option to do that thing since it would lead to sub-par output. Some packages were created by their authors for private use and made available for the public to enjoy, so naturally features that the author didn't need don't feature that prominently. – moewe Sep 4 '15 at 16:04
  • Sorry, my english is not good. "Dynamic" I mean all elements in document can automatically rearrange and they are responsive. – fronthem Sep 4 '15 at 16:10

this is just one person's opinion, but maybe it will help you understand why latex is the way it is.

latex is a "front end" to tex. tex is a macro language, so "problems" (think about them instead as "how do we get the results on a page looking the way we want them to?") are inevitably going to be "solved" with macros. the tex language was created by one individual, originally for his own use, and subsequently given for free to the rest of the world in an amazingly well documented form, with a promise to fix bugs (with a reward to the first finder) that are found in the code or the documentation. (and it may be that more bugs have been found in compilers by applying them to compiling tex than have been found in tex itself.) after letting tex loose, its creator returned full time to his intended life's work, completion of his magnum opus the art of computer programming.

what tex is not is a large piece of software produced and maintained by a large corporation. it is a stable platform available for use by anyone who finds a need for what it offers.

latex was also originally created by one individual, for his own use. it found favor among computer scientists, mathematicians, and other authors in the "hard" sciences who found that it produced results immeasurably more attractive (and easier to read) than what could be produced with a typewriter or line printer. the original author of latex has also gone on to other pursuits, after ceding the authority to make updates to a (well qualified) team of volunteers.

with the exception of a few small commercial enterprises, nearly all development of packages for tex or latex has been done by volunteers, often working alone. there are groups of like-minded users who have banded together into formal user groups, all of which (to my knowledge) have been recognized as tax-exempt charities in their home countries. there is no "central authority" that decrees how something should be done. (there are a number of publishers who depend on (la)tex to produce their publications, and all of these have their own rules, but there is no coordination among them.)

packages for latex are, for the most part, created by individuals who have particular needs, and, for the most part, "donated" to the community by posting on ctan (another volunteer enterprise). many, if not most, package authors welcome feedback and bug reports, but writing packages is not their key occupation, and life has a habit of getting in the way.

so, back to your comments. yes, latex is fragmented, and isn't likely to become any more unified, at least not in my lifetime. all that can be hoped for is that package authors pay more attention to "best practices", current conventions (which do change over time), and the quality of their user documentation. they can also communicate with other package authors and users (good places are through the above-mentioned user groups, and forums such as this one) to try to approach "problems" in a consistent manner. but individuals are individuals, and "controlling" them is somewhat like herding cats.

as for "the best way" to learn latex, i recommend starting with a good book. my favorites are kopka & daly, and gratzer's "more math into latex". for special situations, the several "companions" are solid, if likely to become dated. start with the basic document classes -- article, book and proc -- and explore other approaches as well: the ams classes, classes in the koma bundle, memoir; all have valuable, and different, points of view. ask questions here when you run into a thorny patch, but be sure to say what you've done and provide an example that demonstrates the problem to give a helper a solid place to start debugging.

and don't give up.

Not the answer you're looking for? Browse other questions tagged or ask your own question.