On 2012-07-19, ralston wrote: > I've got 10 years experience and 200 documents using LaTex with heavy > math. Like everyone else I paste a clot of \newcommands into my Latex > preamble without looking at it.
> My student has recommended Lyx, which I appreciate has many great > features. I really want to like LyX. What a great concept. And > yet... I find LyX math macros an absolutely horror. Why construct LyX > to ignore macros in an imported LaTex preamble? Why defeat the most > popular usage, and why not write something to properly automate the > import? Because (La)TeX is a macro language that is miles more difficult to machine-parse than, say, XML. This is why the focus is on *generating* (writing/editing) documents that can be typeset with LaTeX (and/or HTML, Docbook, ...). LyX is *not* a "LaTeX editor". Depending on your needs, existing documents and willingness to change habits, LyX may boost your productivity or be not the tool of your choice. > It's a fact that exchanging LaTex with collaborators and opening old > files needs to be automated. Yet Lyx wants me to paste macros by hand > into every document, or else create subsidiary file systems I don't > understand with no examples of what to do. I don't understand where LyX wants you to paste macros by hand... > Why not automate that? This is a task too difficult to be done completely automatically. LyX did improve and specific suggestions for further improvement are welcome. > Once I create a macro it won't update (for me!) in an imported LaTeX > document, and the error messages are too non-specific to debug. The math-macros are really just for math-mode commands. This is why LyX does not convert preamble definitions to "math-macros" - is just does not know whether they are math-mode or text-mode (or both). (See your list below for a mix of math-mode and text-mode commands.) Also, math-macros are document specific - defining a math-macro in one document does not make it available in other ones. This is why my documents include a file of commonly used math macros -- just like I \input a file with commonly used preamble definitions in my LaTeX documents. > Import also seems to forget a lot of small things like "^{}, _{} " and > matrix formats that are real work to fix. Yes, there are many non-supported ways to write things in LaTeX. > I've only got about 10 macros to get running, but LyX has fought me all > the way. I hope I'm in the wrong and working with basic concept errors > someone could straighten out... and why doesn't LyX post at least one > completely running imported mathy FILE example, rather than abstract > principles....while my excuse is a definite lack of interest in working > with things that create more work than they save. Frustrated by hours > or wasted time, I probably seem cranky. I do understand your frustration. Please keep in mind that LyX is not an enterprise solution promising "easy LaTeX for all" but a volunteer effort to create a document processor that matches the expectations and ideals of its developers with much input from the users. As such, it may be not the right tool for you - at least it needs more patience for things that might seem easy to you but are very complex from the point of a programmer... > In case I've not been too rude, here's some macros, which LyX gurus > will not find profound; I will surely either convert with enthusiasm to > LyX, or forbid all my students and contacts to ever touch it, depending > on how the importing and exporting of latex with macros can be > automated. I hope you will come to a more tempered evaluation of the program. Even if it is not the tool for you, it might be valuable for your students. > \newcommand{\ab}{\allowbreak} \newcommand{\bit}{\begin{itemize}} > \newcommand{\eit}{\end{itemize}} \newcommand{\im}{\item} > \newcommand{\be}{\begin{equation}} \newcommand{\ee}{\end{equation}} > \newcommand{\ba}{\begin{eqnarray}} \newcommand{\ea}{\end{eqnarray}} > \newcommand{\nn}{\nonumber} \renewcommand{\bf}{\textbf} All of these are rather shortcut aliases for text mode. "math-macro" is not the right thing to emulate them. I would try to find out whether tex2lyx already can be configured to do a back-replacement (e.g. \bf -> \textbf) before converting to LyX format or write a simple search-and replace script to do this in a preprocessing step. As you are not going to use these commands directly when writing in LyX, there is no need for supporting the aliases. > \newcommand{\ra}{\rightarrow} \newcommand{\NN}{\vec \nabla} > \def\slasha#1{\setbox0=\hbox{$#1$}#1\hskip-\wd0\hbox > to\wd0{\hss\sl/\/\hss}} > \def\slashb#1{\setbox0=\hbox{$#1$}#1\hskip-\wd0\dimen0=5pt\advance > \dimen0 by-\ht0\advance\dimen0 by\dp0\lower0.5\dimen0\hbox > to\wd0{\hss\sl/\/\hss}} These are (as far as I can see) real math macros, hence it may be sensible to define math-macros for them (if you want a "nice" look in LyX). However, it is possible to use them "as is" in math insets - it just does not look so nice with the red command name. Günter