File:  [LON-CAPA] / doc / help / Attic / README
Revision 1.1: download - view: text, annotated - select for diffs
Fri Jul 5 16:12:30 2002 UTC (21 years, 11 months ago) by bowersj2
Branches: MAIN
CVS tags: version_0_5_1, version_0_5, HEAD
This commit implements the .tex-based online help system in LON-CAPA. It
may be necessary to manually run loncom/build/help_graphics_converter.pl
and doc/help/rebuildLabelHash.pl after a cvs update, and
loncapa_apache.conf may need to be manually copied to /etc. (The
loncapafiles.lpml has been updated.)

After merging this, the URL http://[loncapahost]/adm/help/Foils.hlp
should display a help file.

Also, some *very* out-of-date files have been removed from the /doc
directory.

    1: This directory contains utilities for manipulating the .tex help
    2: system file used by LON-CAPA, information about that system, and the
    3: source files to re-construct paper manuals.
    4: 
    5: All scripts in this directory are coded to expect the tex files and
    6: other help information is in loncapa/loncom/html/adm/help/, and to be
    7: run from this directory. So you'll see references to
    8: ../../loncom/html/adm/help/* in these programs.
    9: 
   10: SECTIONS: (dashes to help with using search)
   11: 
   12: * ---texxml---
   13: * ---fragmentTopics.gdbm---
   14: * ---fragmentLabels.gdbm---
   15: * ---latexSplitter.py---
   16: * ---simpleEdit.py---
   17: * ---rebuildLabelHash.pl---
   18: * ---texxml files---
   19: 
   20: ---texxml---
   21: 
   22: texxml is a quick little XML thing to reconstruct the original XML
   23: documents as given in user manual tutorial and such. This file
   24: documents the format.
   25: 
   26: The texxml format is the following:
   27: 
   28: * A root <texxml> document, which contains the following children:
   29:   * <tex content=""/> will place the referenced tex directly into the
   30:     file.   
   31:   * <section name=""/>, <subsection name=""/>, and <subsubsection
   32:     name=""/>, all of which drop \section, \subsection, and
   33:     \subsubsections into the tex file with that name.
   34: 
   35:   * <file name=""/> drops the named file directly into the
   36:     reconstruction.
   37: 
   38:   * <topic name=""/> drops the named topic into the
   39:     reconstruction. Recommended over use of file.
   40: 
   41: *section contain as children the subsections they have. tex, file, and
   42: topic do not have children, or indeed content at all.
   43: 
   44: In order to reconstruct the Latex document, walk the XML file with the
   45: texxml2latex perl script, which accepts a texxml file on <>, and
   46: outputs the latex to std.output.. Then you can render the resulting .tex
   47: however you want.
   48: 
   49: ---fragmentTopics.gdbm---
   50: 
   51: The has fragmentTopics.dbm is a DBM hash that maps topics to the files
   52: that contain those topics. Obviously, the topics are thus case
   53: sensitive. Each topic can only go to one file, but multiple topics can
   54: point to the same file.
   55: 
   56: ---fragmentLabels.gdbm---
   57: 
   58: LaTeX supports the idea of cross-references, which on the web is
   59: equivalent to a link. The idea in LaTeX is that you drop \label{}
   60: commands where you want to link to later, placing some descriptive
   61: text in the {}. Later, you can cross-reference that label, which will
   62: print the chapter the reference is used on.
   63: 
   64: TtH contains full support for this usage, but unfortunately, when
   65: chopping something like a user manual into this many pieces,
   66: cross-references are in completely seperate files, which does TtH no
   67: good. Therefore, we store what file has what labels ourself.
   68: 
   69: The GDBM file fragmentLabels.gdbm contains a hash of labels to files
   70: they are included in. This allows the help script, when it encounters
   71: a label, to know what to link to. Additionally, the help script should
   72: drop HTML anchors in the test, so the link can go directly to the
   73: label.
   74: 
   75: This should allow us to reap the benefits of a labelling scheme.
   76: 
   77: A similar scheme could be used to take advantage of the \index tags in
   78: the LaTeX, which allow you to create indexes.
   79: 
   80: The perl script rebuildLabelHash.pl will walk through all the files in
   81: the directory, extracting the labels and storing it in the
   82: hash. Errors will be printed out if multiple files have the same
   83: label. This is an error in LaTeX, too. (Essentially, it must be
   84: possible to think of the concatenation of all files, with the header
   85: and the footer in the right place, as a legitimate .tex file.) It
   86: takes no arguements.
   87: 
   88: ---latexSplitter.py---
   89: 
   90: latexSplitter is a quick Python script to assist with chopping a large
   91: .tex file into a series of smaller, more managable tex files. You can
   92: paste a file into the text box, or load a file into latexSplitter
   93: using a command-line argument. 
   94: 
   95: Then, you can break that file down by giving a section a title (which
   96: will be entered into the fragmentTopics hash), highlighting the LaTeX
   97: corresponding to that topic, and hitting the save
   98: button. latexSplitter will save the highlighted fragment, update the
   99: hash, and remove it from the text box, along with backing the text box
  100: up in a file called "latexSplitterTempResults".
  101: 
  102: ---simpleEdit.py---
  103: 
  104: simpleEdit is a quick Python/Tk script to join a file together based
  105: on a texxml file, and allow you to edit the pieces as if they were all
  106: contiguous. The other feature is a 'find' command. It's simple.
  107: 
  108: ---rebuildLabelHash.pl---
  109: 
  110: Running this script will rebuild the fragmentLabel.gdbm hash from
  111: scratch. Run this after adding .tex files, so cross-references work. 
  112: 
  113: ---texxml files---
  114: 
  115: * author.manual.texxml - A texxml file for the author's manual.
  116: 
  117: In order to build this file, execute 
  118: 
  119: perl texxml2latex.pl authot.manual.texxml > author.manual.tex
  120: 
  121: In order to build this file with LaTeX correctly, the images used in
  122: the manual need to be in the current directory. The images will be
  123: installed in /home/httpd/html/adm/help/eps , so you can either move
  124: the LaTeX file in to that directory and build the author manual, or
  125: copy the LaTeX file and the .eps files in that directory to another
  126: directory to build. The latter is recommended.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>