Enrique S Gonzalez Di Totto wrote:
As a new user, to me clearly the most important feature missing
from LyX is the ability to create new document classes with custom
enviroments using the LyX GUI.
I know adding such a feature must be quite a large undertaking, but
writing .layout files or even one single line of LaTeX code is too
steep a learning curve for the average Word user to ever climb.
SH: The above earlier remark apparently is amplified and clarified
by "what I meant to say" ... quoted below
Enrique S Gonzalez Di Totto wrote:
>> So what I meant to say is that providing the user with a graphical
>> interface where they can create layouts and customize the few usual
>> options for an enviroment (font family, size, spacing, etc.) would
>> allow them to get started. Most users wouldn't need to write even a
>> single line of LaTeX code (either in a .layout or in an ERT inset) if
>> you gave them that.
>
-----------------------------------------------------------
Steve Litt replied:
> I'd *LOVE* to have a tool like that. One of my hardest jobs as a self
publishing author is tweaking my layouts so that my book's "look and
feel" will be pleasing to my audience. I do that in the layout file so
as to present a consistent "look and feel" throughout the book. But
tweaking layout files is a daunting task complete with huge amounts of
debugging time.
>
> If someone creates a tool like that, my one request is they don't
make it dependent on the latest version of this_library and the latest
version of that_library to the point where one would need to redo their
whole Linux distribution to run the program. There's nothing inherant
about making a layout constructing/modifying program requiring the
latest of anything -- a simple Perl web app could do the job, or a
simple Perl curses or tk app.
>
> In fact, a text menu plus something to choose alternatives would do
it. Maybe I could even glue it together with UMENU
(http://www.troubleshooters.com/umenu/index.htm).
>
> What I like about what you said is that we include a subset of the
universe of LaTeX tweaks, not try to do everything (which as one person
in this thread stated, might be more difficult than TeX itself).
>
> If we do this, and if we spend most of our energy on the problem
domain (layout construction) rather than figuring out intricacies of Tk,
KDE, wxPython or whatever, I'd like to be part of the crew that does it.
>
> Should we start designing it on this mailing list?
>
> Thanks, SteveT
-------------------------------------------------------------------
SH: Steve Litt has written a good IMO, tutorial on layouts:
http://www.troubleshooters.com/lpm/200210/200210.htm#_MakingYourOwnLayout
Making a Book By Steve Litt
"In this exercise you'll learn to choose a document class. You'll learn
about the relationship between your document class and the available
environments (remember, that's LyXese for paragraph styles). You'll make
a tiny book and view it in Postscript. You'll manipulate the margins,
and the interparagraph spacing. You'll go beyond the defaults by
indenting paragraphs AND giving them a large skip. You'll change the
book's default font size and typeface. You'll customize the headers and
footers. You'll use a little ERT to customize the title page. And you'll
structure your document into Parts, Chapters, Sections, and Subsections.
...
A document class is similar to a template in MS Word in that it
determines the available styles, and what they'll look like."
------------------------------------------------------------
http://www.troubleshooters.com/lpm/200210/200210.htm#_MakingYourOwnLayout
Changing the Paragraph Spacing and Indentation By Steve Litt
"As mentioned, Skip and Indent are mutually exclusive on the Document
Layout screen, but nothing in LaTeX makes them mutually exclusive. So
we'll set the skip with a LaTeX command in the global part of the
document. In LaTeX (and LyX), the global part of the document is called
the "Document Preamble", so that's where we'll put the LaTeX command.
Layout->LaTeX Preamble, then type in the following LaTeX command:
\setlength{\parindent}{1in}
The preceding sets the length of document variable \parindent to one
inch. Now click the OK button, and File->Save, then View->Postscript,
and notice that your paragraphs are not only spaced widely, but also
indented.
You might wonder how I knew the command \setlength{\parindent}{1in}.
I read about it in the lshort.dvi document. This is why I say you should
read the documents. This solution would have been difficult to find
without reading the documentation. There's no "point and click" way to
find it."
Making Your Own Layout By Steve Litt
..."But if you're self-publishing, or if you're writing an academic
paper that is required to be formatted "just so", or for whatever reason
your format is constrained by others, you'll need to change and/or add
to what your document class gives you. Basically, you'll need to build a
new document class based on the closest existing document class.
Unfortunately, documentation to accomplish this feat is rare, and most
such documentation is inadequate. That's one reason LyX has a reputation
for difficulty. ... This article is for those wanting to improve on an
existing document class -- not build one for scratch."
--------------------------------------------------------
SH: I've only made a couple of simplistic layouts myself. The opinion
I expressed on the feasibility of making a menu-driven program for
building layouts -- I _thought_ was informed by understanding your
(Litt's) tutorial! I've quoted what contributed to my feeble-minded
interpretation. I was quite surprised to see you endorse "*LOVE*"
such a tool and offer to work on it. It means I didn't grasp your
tutorial, oh well. I'm wondering how it might work...?
Enrique wrote:
"but writing .layout files or even one single line of LaTeX code is
too steep a learning curve for the average Word user to ever climb."
SH: Is the layout menu program a labor saving device, that is it
should be more efficient than editing a "closest existing document
class"? Will selecting a prior "best fit" .layout still be needed?
Will the menu program have more than a sophisticated 'cut and paste'
functionality intended to save some typing? My limited experience
has indicated knowing the name of the function and what it does is
the more time-consuming part of such a layout file tweaking process.
That would mean that the program would need some explanations about
the menu selections and possible values?
Enrique wrote:
"but writing .layout files or even one single line of LaTeX code is
too steep a learning curve for the average Word user to ever climb."
IMO, learning what "single line of Latex code" needs to be typed
in (or even selected) is the steepest part of the learning curve,
not the typing of a few dozen characters itself. So that is why I
suggest that the menu program (maybe stand-alone) have explanatory
included text to lessen the chore of 'learning what you need to do'.
Considerably more than just a long list of choices presented as
names close to their Latex code names, or how will the newish user
know what to select, what the option does, without a lot of research?
I think the layout menu program needs to be a superior method than
selecting and improving 'on an existing document class -- not build
one for scratch." especially if that requirement (prior existing)
still exists for the new layout menu program. Using the already
existing 'best fit' layout document usually means reading a good
tutorial, such as yours. I think that content, perhaps condensed,
will still need to augment descriptions in the layout menu program?
I doubted that the layout menu program would serve better than the
existing pick a good layout match and edit it approach. However,
your - test the layout file tweaking code - which means you don't
have to reboot the computer; if that could be included in the new
layout menu program as a choice after the content of the new layout
file has been created, then a hurdle for users who don't know how
to implement your script would save them some time and frustration!
Since you Steve have supported the feasibility of creating this
layout menu program, I suppose I have to retract my statement about
this idea being a foolhardy notion. It seemed to me that a program
would have a hard time doing a task which still seemed to require
human intervention. I also looked at Umenu. If building this new
layout menu program still seems like a promising prospect and you
can explain its cost benefits in terms of improving the older way,
I've wanted to contribute something to LyX as a developer, even
if it is pretty small. The new program should maybe be an add-on
(external program) rather than inside LyX as someone else suggested,
or the LyX developers will impose their methodological requirements.
Regards,
Stephen
P.S. (How is your page-numbering coming along?)