I broke up with neovim....vim is my best friend now

This commit is contained in:
LinlyBoi
2023-04-30 08:14:07 +03:00
parent 0d185449c5
commit 4a4a6b1e81
5245 changed files with 468325 additions and 25 deletions

View File

@@ -0,0 +1,62 @@
projects = latex-suite latex-suite-quickstart
htmlfiles = $(addsuffix .html, $(projects))
txtfiles = $(addsuffix .txt, $(projects))
cssfiles = $(addsuffix .css, $(projects))
all = $(projects) $(htmlfiles) $(cssfiles) $(txtfiles)
xsltproc=xsltproc
db2vim=db2vim/db2vim
# Use for debugging:
#xsltproc=strace -e trace=file xsltproc --nonet --load-trace
# export XML_DEBUG_CATALOG = 1
# Specify local catalog to not use system installed dtd/xsl files
# export XML_CATALOG_FILES=catalog.xml
# User configuration of this Makefile goes into Makefile.local
# E.g. to use a catalog file installed by the user.
-include Makefile.local
# Default Target is to create all documentation files
all: $(all)
# create multi page html (chunk xhtml)
$(projects): %: %.xml latex-suite-chunk.xsl latex-suite-common.xsl
$(xsltproc) -o $@/ latex-suite-chunk.xsl $<
# create single html files
$(htmlfiles): %.html: %.xml latex-suite.xsl latex-suite-common.xsl
$(xsltproc) -o $@ latex-suite.xsl $<
# create vim flat files
latex-suite.txt: %.txt: %.xml
$(db2vim) --prefix=ls_ $< > $@
latex-suite-quickstart.txt: %.txt: %.xml
$(db2vim) --prefix=lq_ $< > $@
# validate xml
validate:
for file in *.xml; do \
xmllint --valid --noout $$file; \
done
clean:
rm -f $(htmlfiles)
rm -rf $(projects)
# $(txtfiles) are currently in revision control, therefore they are not
# removed in the clean target
mr-proper: clean
rm -f $(txtfiles)
upload: $(all)
# vim-latex-web is configured in ~/.ssh/config
#Host vim-latex-web
# Hostname web.sourceforge.net
# User SOURCEFORGE_USERNAME,vim-latex
rsync --perms --chmod g+w,o-w --delete -lrtvz $(all) vim-latex-web:/home/groups/v/vi/vim-latex/htdocs/documentation/
# vim:nowrap

View File

@@ -0,0 +1,29 @@
# Manual files
ls-flat:
java com.icl.saxon.StyleSheet latex-suite.xml latex-suite.xsl > latex-suite.html
ls-chunk:
( \
cd latex-suite && \
java com.icl.saxon.StyleSheet ../latex-suite.xml ../latex-suite-chunk.xsl \
)
ls-txt:
db2vim --prefix=ls_ latex-suite.xml > latex-suite.txt
# Quickstart files
lsq-flat:
java com.icl.saxon.StyleSheet latex-suite-quickstart.xml latex-suite.xsl > latex-suite-quickstart.html
lsq-chunk:
( \
cd latex-suite-quickstart && \
java com.icl.saxon.StyleSheet ../latex-suite-quickstart.xml ../latex-suite-chunk.xsl \
)
lsq-txt:
db2vim --prefix=lq_ latex-suite-quickstart.xml > latex-suite-quickstart.txt
cvsci:
cvs ci latex-suite.xml latex-suite.txt
# vim:nowrap

View File

@@ -0,0 +1,110 @@
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
This file is outdated, please look at README.new for updated information
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
====================================
Generating Latex-Suite documentation
====================================
In order to generate the html files and vim-help files from the XML source,
you will need to do follow the following steps. The steps are complex only
for a windows machine. On most (modern) linux machines, the various
utilities are already installed and all you need to do is some
soft-linking.
1. Download the Docbook XSL stylesheets from
http://sourceforge.net/project/showfiles.php?group_id=21935
I downloaded docbook-xsl-1.61.2.tar.gz. Unpack this archive under the
present directory. You should see something like::
./docbook-xsl-1.XX.X/
Rename this to::
./docbook-xsl
Alternatively, if you are on a modern unix system, the docbook-xsl
stylesheets should already be installed on your system. Soft-linking
will thus work more simply. On a typical Debian box, just do::
ln -s /usr/share/sgml/docbook/stylesheet/xsl/nwalsh docbook-xsl
The docbook-xsl stylesheets can be installed via the docbook-xsl
package on Debian. (Just use apt-get).
2. Download the Docbook DTD from
http://www.oasis-open.org/docbook/xml/4.2/docbook-xml-4.2.zip
Extract this into a subdirectory ``docbook-xml/`` under the present
directory. You should see something like::
./docbook-xml/
with a file ``docbookx.dtd`` located there.
**CAUTION**:
The archive above does not create a top level directory but
unzips directly into the present directory. Therefore, make sure to
run the unzip by first creating ``./docbook-xml/``, copying the zip
file there and then unzipping.
Alternatively, if you are on a modern unix system, the docbook-xml DTD
will already be installed. Softlinking will thus work. On a typical
Debian box, you could do::
ln -s /usr/share/sgml/docbook/dtd/xml/4.2 docbook-xml
On debian, you need the docbook-xml package on Debian. (Just use
apt-get).
3. Download saxon.jar from
http://vim-latex.sourceforge.net/documentation/saxon.jar
This is the bare .jar file without any of the other things which saxon
comes with. Add the ``saxon.jar`` file to your ``$CLASSPATH`` setting.
**NOTE:**
The ``$CLASSPATH`` setting should point to the ``saxon.jar`` file,
not the directory where it resides.
Again, on a unix system, you might not need to download this. For debian
systems, the saxon.jar file resides in::
/usr/share/java/saxon.jar
You can point your ``$CLASSPATH`` to that file.
4. Download db2vim (created by me :)) via anonymous cvs::
mkdir -p ~/bin/db2vim
cvs -d :pserver:anonymous@cvs.vim-latex.sf.net:/cvsroot/vim-latex \
co -d ~/bin/db2vim db2vim
Add the ``~/bin/db2vim/`` directory thus created to your ``$PATH``
setting.
5. Create a new directory ``latex-suite/`` under the present directory for
the chunked html files to reside in. You should see something like::
./latex-suite/
6. Copy ``Makefile.in`` to ``Makefile`` or ``makefile`` and perform any
necessary customizations. For example, if you are using Activestate
python under windows, you will need to change the ls-txt: target as::
python e:/srinath/testing/db2vim/db2vim latex-suite.xml > latex-suite.txt
Thats it! You are ready. Now you can do::
make ls-chunk
make ls-flat
make ls-txt
to create the 3 formats.
Author: Srinath Avadhanula <srinath@fastmail.fm>

View File

@@ -0,0 +1,25 @@
====================================
Generating Latex-Suite documentation
====================================
You need:
- xsltproc
- Docbook XSL stylesheets (*)
- Docbook DTD (*)
(*) These files will be downloaded every time you create the documentation,
unless you install or download them.
To install the required packages, you can run as root on
Fedora:
yum install libxslt docbook-style-xsl docbook-dtds
Arch Linux:
pacman -S libxslt docbook-xml docbook-xsl
Ubuntu (16.04):
apt-get install xsltproc docbook-xsl

View File

@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<!DOCTYPE catalog
PUBLIC "-//OASIS/DTD Entity Resolution XML Catalog V1.0//EN"
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<rewriteSystem
systemIdStartString="http://docbook.sourceforge.net/release/xsl/current"
rewritePrefix="docbook-xsl/"/>
<rewriteURI
uriStartString="http://docbook.sourceforge.net/release/xsl/current/"
rewritePrefix="docbook-xsl/" />
</catalog>

View File

@@ -0,0 +1,27 @@
def GetTextFromElementNode(element, childNamePattern):
children = element.getElementsByTagName(childNamePattern)
texts = []
for child in children:
texts.append(GetText(child.childNodes))
return texts
def GetText(nodelist):
rc = ""
for node in nodelist:
if node.nodeType == node.TEXT_NODE:
rc = rc + node.data
return rc
def GetTextFromElement(element):
text = ""
child = element.firstChild
while not child.nextSibling is None:
child = child.nextSibling
print child
if child.nodeType == child.TEXT_NODE:
text = text + child.data
return text

View File

@@ -0,0 +1,715 @@
#!/usr/bin/env python2
r"""
db2vim [options] file.xml
SHORT OPTIONS
-d Prints some debugging information on stderr.
-s If given, the db2vim operates in a 'stict' conversion mode, i.e, any
element which does not have a handler defined for them it be
completeley ignored including all its children. Otherwise, db2vim will
recurse into an unknown tag and process any of its children it
recognizes. Since db2vim always recognizes text nodes, not using this
option has the effect that all text will be printed out, even if
somewhat incorrectly.
LONG OPTIONS
--prefix=<prefix>
This is a string like "ls_" which will be prepended to the section
numbers. Default to 'ls_' if unsupplied.
"""
import xml.dom.minidom
import getopt
import string
import re
import sys
# Okay. so I import *. Shoot me.
from textutils import *
from domutils import *
# define a bunch of constants for formatting.
TEXT_WIDTH = 80
BLOCK_QUOTE = 4
COL_SPACE = 2
# a bunch of globals used in creating the Table of contents.
#
# TOC_HASH['section 1.1 label'] = 'ls_1_1'
#
# LEVEL_HASH['section 1.1 label'] = 1
# (top level article has level 0)
#
# TITLE_HASH['section 1.1 label'] = 'Title of section 1.1'
#
# FILENAME = the name of the file being processed with the last extension
# changed to .txt
#
# TOC_PREFIX = 'ls_' (the prefix used to create the section labels).
TOC_HASH = {}
LEVEL_HASH = {}
TITLE_HASH = {}
FILENAME = ''
TOC_PREFIX = ''
ANCHOR_HASH = {}
URL_HASH = {}
# STDERR for printing debugging info.
DEBUG = 0
STDERR = sys.stderr
STRICT = 0
NUM_ANCHORS = {0: 1}
###############################################################################
# Miscellaneous utility functions
###############################################################################
def encodeTo52(num):
if num < 26:
return unichr(ord('a') + num)
elif num < 52:
return unichr(ord('A') + num - 26)
else:
return encodeTo52(int(num / 52)) + encodeTo52(num % 52)
def makeTocHash(rootElement, width, prefix='', level=0):
lastLabelUsed = 0
for section in rootElement.getChildrenByTagName('section'):
title = section.getChildrenByTagName('title')[0]
titleText = handleElement(title, width)
lastLabelUsed += 1
thisLabel = TOC_PREFIX + prefix + str(lastLabelUsed)
sectionid = section.getAttribute('id')
if not sectionid:
section.setAttribute('id', thisLabel)
sectionid = thisLabel
NUM_ANCHORS[0] += 1
ANCHOR_HASH[sectionid] = TOC_PREFIX + 'a_' + encodeTo52(
NUM_ANCHORS[0] + 52)
TOC_HASH[sectionid] = thisLabel
LEVEL_HASH[sectionid] = level
TITLE_HASH[sectionid] = titleText
if section.getChildrenByTagName('section'):
makeTocHash(section, width - 5, prefix=prefix +
str(lastLabelUsed) + '_', level=level + 1)
def makeAnchorHash(rootElement):
anchors = rootElement.getElementsByTagName(
'anchor') + rootElement.getElementsByTagName('note')
for anchor in anchors:
if not anchor.getAttribute('id'):
continue
NUM_ANCHORS[0] += 1
if anchor.getAttribute('id') in ANCHOR_HASH or \
anchor.getAttribute('id') in TOC_HASH:
sys.stderr.write("Warning: anchor [%s] multiply defined\n" %
anchor.getAttribute('id'))
ANCHOR_HASH[anchor.getAttribute(
'id')] = TOC_PREFIX + 'a_' + encodeTo52(NUM_ANCHORS[0] + 52)
def makeURLHash(rootElement):
urls = rootElement.getElementsByTagName('ulink')
numURLs = 0
for url in urls:
if not url.getAttribute('url') or url.getAttribute('url') in URL_HASH:
continue
numURLs += 1
URL_HASH[url.getAttribute('url')] = TOC_PREFIX + 'u_' + str(numURLs)
def makeTOC(node, width, maxlevel=1):
retText = ""
for section in node.getChildrenByTagName('section'):
sectionid = section.getAttribute('id')
thisLabel = TOC_HASH.get(sectionid, '')
titleText = TITLE_HASH.get(sectionid, '')
level = LEVEL_HASH.get(sectionid, 10)
if level <= maxlevel:
retText += '|' + thisLabel + '| ' + titleText + '\n'
if level < maxlevel and section.getChildrenByTagName('section'):
childText = makeTOC(section, width - 5)
retText += VertCatString(" ", 4, childText) + '\n'
retText = re.sub(r'\s+$', r'\n', retText)
return retText
###############################################################################
# Generalized function for handling dom elements.
###############################################################################
def IsInlineTag(self):
if self.nodeType == self.TEXT_NODE:
return 1
elif inlineTags.get(self.tagName, 0):
return 1
else:
return 0
def getChildrenByTagName(self, name):
"""
extension to the xml.dom.minidom.Element class. returns all direct
descendants of this Element.
"""
nodeList = []
child = self.firstChild
while not child is None:
if child.nodeType == child.ELEMENT_NODE and child.nodeName == name:
nodeList.append(child)
child = child.nextSibling
return nodeList
xml.dom.minidom.Element.getChildrenByTagName = getChildrenByTagName
def handleElement(rootElement, width=TEXT_WIDTH):
"""
Generalized function to handle an Element node in a DOM tree.
"""
retText = ""
child = rootElement.firstChild
while not child is None:
printerr('node type = %d' % child.nodeType)
if child.nodeType == child.ELEMENT_NODE:
printerr('processing [%s]' % child.tagName)
isinline = IsInlineTag(child)
# if the child is an Element and if a handler exists, then call it.
if not isinline \
and child.nodeType == child.ELEMENT_NODE \
and child.tagName in handlerMaps:
# offset the child text by the current indentation value
printerr('making recursive call to known child.')
retText += handlerMaps[child.tagName](child, width)
child = child.nextSibling
elif not isinline \
and child.nodeType == child.PROCESSING_INSTRUCTION_NODE \
and child.target == 'vimhelp':
if child.data in handlerMaps:
retText += handlerMaps[child.data](child, width)
child = child.nextSibling
# if its a text node or an inline element node, collect consecutive
# text nodes into a single paragraph and indent it.
elif isinline:
text = ""
while not child is None and IsInlineTag(child):
if child.nodeType == child.TEXT_NODE:
text += child.data
elif child.nodeType == child.ELEMENT_NODE:
if child.tagName in handlerMaps:
text += handlerMaps[child.tagName](child, width)
else:
text += GetText(child.childNodes)
child = child.nextSibling
retText += IndentParagraphs(text, width)
# If we cannot understand _anything_ about the element, then just
# handle its children hoping we have something to gather from
# there.
elif not STRICT:
printerr('making recursive call for unkown child')
retText += handleElement(child, width)
child = child.nextSibling
else:
child = child.nextSibling
return retText
###############################################################################
# Functions for handling various xml tags
###############################################################################
def handleArticleInfo(articleinfo, width):
makeTocHash(articleinfo.parentNode, width)
makeAnchorHash(articleinfo.parentNode)
makeURLHash(articleinfo.parentNode)
title = articleinfo.getChildrenByTagName('title')
if title is None:
print("Article should have a title!")
sys.exit(1)
name = GetText(title[0].childNodes)
authors = articleinfo.getChildrenByTagName('author')
authorText = ''
for author in authors:
firstname = ''
surname = ''
if author.getElementsByTagName('firstname'):
firstname = GetTextFromElementNode(author, 'firstname')[0]
if author.getChildrenByTagName('surname'):
surname = GetTextFromElementNode(author, 'surname')[0]
if author.getElementsByTagName('email'):
email = GetTextFromElementNode(author, 'email')[0]
authorText = authorText + firstname + ' ' + surname + \
' <' + email + '>\n'
abstractText = ''
abstract = articleinfo.getChildrenByTagName('abstract')
if abstract is not None:
abstractText = '\n\n' + CenterText('Abstract\n========', width)
abstractText += handleElement(abstract[0], width) + '\n'
retText = CenterText(name + '\n*' + FILENAME + '*\n' + authorText, width)
retText += abstractText
toc = makeTOC(articleinfo.parentNode, width)
return retText + '\n' + RightJustify('*' + FILENAME + '-toc*', width) + \
'\n' + toc
def handleOption(option, width):
retText = ""
names = GetTextFromElementNode(option, "name")
for name in names:
retText += string.rjust("*" + name + "*", width) + "\n"
nameTexts = ""
maxNameLen = -1
for name in names:
maxNameLen = max(maxNameLen, len(name + " "))
nameTexts += name + " \n"
desc = option.getChildrenByTagName("desc")[0]
descText = handleElement(desc, width=width - maxNameLen)
retText += VertCatString(nameTexts + " ", None, descText)
return retText + "\n"
def handleOptionDefault(default, width):
type = string.join(GetTextFromElementNode(default, "type"), "\n")
extra = string.join(GetTextFromElementNode(default, "extra"), "\n")
return type + "\t(" + extra + ")"
def handleTableRoot(root, width):
tgroup = root.getChildrenByTagName('tgroup')[0]
if tgroup is None:
return ''
rows = []
numHeadRows = 0
if tgroup.getChildrenByTagName('thead'):
thead = tgroup.getChildrenByTagName('thead')[0]
rows = thead.getChildrenByTagName('row')
numHeadRows = len(rows)
tbody = tgroup.getChildrenByTagName('tbody')[0]
rows += tbody.getChildrenByTagName('row')
widths, text = calculateColumnWidthsDoublePass(rows, width)
headText = text[0:numHeadRows]
bodyText = text[numHeadRows:]
headTable = FormatTable(headText, ROW_SPACE=1, COL_SPACE=
COL_SPACE, justify=0, widths=widths)
if headTable:
headTable = re.sub(r'\n|$', '\g<0>~', headTable)
bodyTable = FormatTable(bodyText, ROW_SPACE=1, COL_SPACE=
COL_SPACE, justify=0, widths=widths)
return headTable + '\n' + re.sub(r'\n+$', '', bodyTable) + '\n\n'
def calculateColumnWidths(rows, alloc_widths):
widths = {}
text = []
for row in rows:
cols = row.getChildrenByTagName("entry")
if len(alloc_widths) == 1:
alloc_widths *= len(cols)
colwidths = []
rowtext = []
for col, width in zip(cols, alloc_widths):
coltext = handleElement(col, width)
rowtext.append(coltext)
# This is the 'width' of the current cell including the
# whitespace padding.
colwidths.append(max(map(len, coltext.split("\n")))
+ COL_SPACE)
text.append(rowtext)
# update the widths of the columns by finding the maximum
# width of all cells in this column.
for i in range(len(colwidths)):
widths[i] = max(colwidths[i], widths.get(i, -1))
return widths, text
def calculateColumnWidthsDoublePass(rows, width):
maxwidths, text = calculateColumnWidths(rows, [width])
if reduce(lambda x, y: x + y, maxwidths.values()) <= width:
return maxwidths, text
# now find out how many columns exceed the maximum permitted width.
# nlarge: number of columns which are too wide.
# remainingWidth: width which these large columns can share.
nlarge = 0
remainingWidth = width
for colwidth in maxwidths.values():
if colwidth > width / len(maxwidths):
nlarge += 1
else:
remainingWidth += -colwidth
# newmaxwidth: width which each of the large columns is allowed.
newmaxwidth = remainingWidth / max(nlarge, 1)
newcolwidths = []
for colwidth in maxwidths.values():
newcolwidths += [min(colwidth, newmaxwidth)]
# make another run and this time ask each cell to restrict itself to
# newmaxwidth as calculated above.
newmaxwidth, newtext = calculateColumnWidths(rows, newcolwidths)
return newmaxwidth, newtext
def handleCode(code, width):
retText = GetText(code.childNodes)
return " &codebegin;\n" + VertCatString(" ", 4, retText) + "&codeend;"
def handleList(list, width, marker=0):
if list.tagName == 'simplelist':
child = 'member'
decoration = ''
elif list.tagName == 'orderedlist':
child = 'listitem'
else:
child = 'member'
decoration = '- '
retText = ""
items = list.getChildrenByTagName(child)
i = 1
for item in items:
if list.tagName == 'orderedlist':
decoration = str(i) + '. '
i = i + 1
itemText = handleElement(item, width - len(decoration))
itemText = VertCatString(decoration, None, itemText)
retText += '\n' + re.sub(r'\s+$', '', itemText) + "\n"
return retText
def handleNote(note, width):
title = None
if note.getChildrenByTagName('title'):
title = note.getChildrenByTagName('title')[0]
name = GetText(title.childNodes)
note.removeChild(title)
noteid = ''
if note.getAttribute('id'):
noteTagText = '*' + note.getAttribute('id') + '* '
noteTagText += '*' + ANCHOR_HASH[note.getAttribute('id')] + '*'
noteTagText = IndentParagraphs(noteTagText, width / 2)
noteid = RightJustify(noteTagText, width) + '\n'
noteText = handleElement(note, width - len("NOTE: "))
if title is not None:
noteText = name + '\n' + ('-' * len(name)) + '\n' + noteText
noteText = noteid + VertCatString("NOTE: ", None, noteText)
return noteText + "\n"
def handleParagraph(paragraph, width):
partext = handleElement(paragraph, width)
partext = re.sub(r'\n+$', '', partext)
partext = re.sub(r'^\n+', '', partext)
return partext + "\n\n"
def handleFormalParagraph(formalparagraph, width):
title = None
if formalparagraph.getChildrenByTagName('title'):
title = formalparagraph.getChildrenByTagName('title')[0]
name = GetText(title.childNodes)
formalparagraph.removeChild(title)
partext = handleElement(formalparagraph, width)
partext = re.sub(r'\n+$', '', partext)
partext = re.sub(r'^\n+', '', partext)
if title is not None:
partext = name + '\n' + ('-' * len(name)) + '\n' + partext
return partext + "\n\n"
def handleBlockQuote(block, width):
text = handleElement(block, width - BLOCK_QUOTE)
text = VertCatString(" " * BLOCK_QUOTE,
BLOCK_QUOTE, text)
return text + "\n"
def handleLink(link, width):
linkend = link.getAttribute('linkend')
if linkend not in ANCHOR_HASH:
print >> STDERR, "Warning: Link ID [%s] not found in TOC" % linkend
text = handleElement(link, width)
anchorpt = ANCHOR_HASH.get(linkend)
if not anchorpt:
anchorpt = ''
return text + ' [|' + anchorpt + '|]'
def handleAnchor(anchor, width):
anchorText = '*' + anchor.getAttribute('id') + '* '
anchorText += '*' + ANCHOR_HASH[anchor.getAttribute('id')] + '*'
return RightJustify(anchorText, width) + "\n"
def handleSection(section, width):
title = section.getChildrenByTagName('title')[0]
name = handleElement(title, width)
sectionid = section.getAttribute('id')
tagsformatted = ''
if sectionid in TOC_HASH:
tagsformatted = '*%s* ' % TOC_HASH[sectionid]
if sectionid in ANCHOR_HASH:
tagsformatted += '*%s* ' % ANCHOR_HASH[sectionid]
if sectionid and sectionid in TOC_HASH and \
sectionid != TOC_HASH[sectionid]:
tagsformatted += '*%s*' % sectionid
# try to indent to a width of 20
tagsformatted = RightJustify(IndentParagraphs(tagsformatted, 30), 0)
tagswidth = TextWidth(tagsformatted)
# width(name) + nspaces + width(tags) = 80
if len(tagsformatted) > 2:
header = VertCatString(name, 80 - tagswidth, tagsformatted)
else:
header = name
section.removeChild(title)
text = handleElement(section, width)
thislevel = LEVEL_HASH.get(sectionid, -1)
if thislevel == 0:
delim = '='
newlines = '\n\n'
elif thislevel == 1:
delim = '-'
newlines = '\n'
else:
delim = ''
newlines = '\n'
thisTOC = ''
if thislevel <= 1:
thisTOC = makeTOC(section, width, maxlevel=1)
return "\n" + (delim * TEXT_WIDTH) + \
"\n" + header + newlines + thisTOC + newlines + re.sub(
r'\n+$', '', text) + "\n"
def handleUlink(ulink, width):
url = ulink.getAttribute('url')
text = handleElement(ulink)
# URL_HASH is created at the very beginning
if url:
return text + ' |%s|' % URL_HASH[url]
else:
print >> STDERR, "Warning: url attribute empty for [%s]" % text
return text
def handleIndexTerm(indexterm, width):
return ''
def handleEmphasis(emphasis, width):
return '_' + GetText(emphasis.childNodes) + '_'
###############################################################################
# A dictionary for mapping xml tags to functions.
###############################################################################
handlerMaps = {
'articleinfo': handleArticleInfo,
'table': handleTableRoot,
'informaltable': handleTableRoot,
'code': handleCode,
'programlisting': handleCode,
'list': handleList,
'simplelist': handleList,
'orderedlist': handleList,
'para': handleParagraph,
'formalpara': handleFormalParagraph,
'note': handleNote,
'link': handleLink,
'anchor': handleAnchor,
'section': handleSection,
'blockquote': handleBlockQuote,
'ulink': handleUlink,
'emphasis': handleEmphasis,
'indexterm': handleIndexTerm
}
inlineTags = {'tag': 1, 'literal': 1, 'link': 1,
'ulink': 1, 'citetitle': 1, 'indexterm': 1,
'emphasis': 1, 'filename': 1}
# helper functions for usage() and printerr()
def usage():
print __doc__
def printerr(statement):
if DEBUG:
print >> STDERR, statement
def replaceComment(matchobj):
initspace = matchobj.group(1)
firstsent = matchobj.group(2)
code = matchobj.group(3)
if len(initspace) > 0:
if initspace[0] == '<':
lastspace = initspace
else:
lastspace = '<' + initspace[:-1]
else:
lastspace = initspace
return '\n' + initspace + firstsent + ' >\n' + code + '\n' + lastspace
if __name__ == "__main__":
option = {}
try:
opts, args = getopt.getopt(sys.argv[1:], 'ds', ['prefix=', 'help'])
for oa, ov in opts:
option[oa] = ov
except getopt.GetoptError:
print >> STDERR, "Usage error: db2vim --help for usage"
sys.exit(1)
if '--help' in option:
usage()
sys.exit(0)
TOC_PREFIX = option.get('--prefix', 'ls_')
DEBUG = '-d' in option
if len(args) != 1:
print >> STDERR, "Usage error: db2vim --help for usage"
sys.exit(1)
fileName = args[0]
FILENAME = re.sub(r'\.\w+$', r'.txt', fileName)
try:
fp = open(fileName)
except:
print "Error opening xml file"
dom = xml.dom.minidom.parse(fp)
modeline = r'''
================================================================================
About this file
This file was created automatically from its XML variant using db2vim. db2vim is
a python script which understands a very limited subset of the Docbook XML 4.2
DTD and outputs a plain text file in vim help format.
db2vim can be obtained via anonymous CVS from sourceforge.net. Use
cvs -d:pserver:anonymous@cvs.vim-latex.sf.net:/cvsroot/vim-latex co db2vim
Or you can visit the web-interface to sourceforge CVS at:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/vim-latex/db2vim/
================================================================================'''
STRICT = '-s' in option
pattern = re.compile(
r'\n([< ]*)([^\n]+)&codebegin;\n(.*?)&codeend;', re.DOTALL)
processedDoc = handleElement(dom.documentElement)
while re.search('&codebegin;', processedDoc):
processedDoc = re.sub(pattern, replaceComment, processedDoc)
urlsection = r"""
================================================================================
URLs used in this file
"""
labels = zip(URL_HASH.values(), URL_HASH.keys())
labels.sort()
for label, url in labels:
urlsection += '*%s* : %s\n' % (label, url)
processedDoc = processedDoc + urlsection + modeline
print processedDoc.encode('iso-8859-1')
# vim:et:sts=4

View File

@@ -0,0 +1,207 @@
#!/usr/bin/env python2
"""Contains functions to do word-wrapping on text paragraphs."""
import random
import re
import string
def JustifyLine(line, width):
"""Stretch a line to width by filling in spaces at word gaps.
The gaps are picked randomly one-after-another, before it starts
over again.
Author: Christopher Arndt <chris.arndt@web.de
"""
i = []
while 1:
# line not long enough already?
if len(' '.join(line)) < width:
if not i:
# index list is exhausted
# get list if indices excluding last word
i = range(max(1, len(line) - 1))
# and shuffle it
random.shuffle(i)
# append space to a random word and remove its index
line[i.pop(0)] += ' '
else:
# line has reached specified width or wider
return ' '.join(line)
def FillParagraphs(text, width=80, justify=0):
"""Split a text into paragraphs and wrap them to width linelength.
Optionally justify the paragraphs (i.e. stretch lines to fill width).
Inter-word space is reduced to one space character and paragraphs are
always separated by two newlines. Indention is currently also lost.
Author: Christopher Arndt <chris.arndt@web.de
"""
# split taxt into paragraphs at occurences of two or more newlines
paragraphs = re.split(r'\n\n+', text)
for i in range(len(paragraphs)):
# split paragraphs into a list of words
words = paragraphs[i].strip().split()
line = []
new_par = []
while 1:
if words:
if len(' '.join(line + [words[0]])) > width and line:
# the line is already long enough -> add it to paragraph
if justify:
# stretch line to fill width
new_par.append(JustifyLine(line, width))
else:
new_par.append(' '.join(line))
line = []
else:
# append next word
line.append(words.pop(0))
else:
# last line in paragraph
new_par.append(' '.join(line))
line = []
break
# replace paragraph with formatted version
paragraphs[i] = '\n'.join(new_par)
# return paragraphs separated by two newlines
return '\n\n'.join(paragraphs)
def IndentParagraphs(text, width=80, indent=0, justify=0):
"""Indent a paragraph, i.e:
. left (and optionally right) justify text to given width
. add an extra indent if desired.
This is nothing but a wrapper around FillParagraphs
"""
retText = re.sub(r"^|\n", "\g<0>" + " " * indent,
FillParagraphs(text, width, justify))
retText = re.sub(r"\n+$", '', retText)
return retText
def OffsetText(text, indent):
return re.sub("^|\n", "\g<0>" + " " * indent, text)
def RightJustify(lines, width):
if width == 0:
width = TextWidth(lines)
text = ""
for line in lines.split("\n"):
text += " " * (width - len(line)) + line + "\n"
text = re.sub('\n$', '', text)
return text
def CenterText(lines, width):
text = ''
for line in lines.split("\n"):
text += " " * (width / 2 - len(line) / 2) + line + '\n'
return text
def TextWidth(text):
"""
TextWidth(text)
returns the 'width' of the text, i.e the length of the longest segment
in the text not containing new-lines.
"""
return max(map(len, text.split('\n')))
def FormatTable(tableText, ROW_SPACE=2, COL_SPACE=3, COL_WIDTH=1000,
justify=0, widths=None):
"""
returns string
Given a 2 dimensional array of text as input, produces a plain text
formatted string which resembles the table output.
The optional arguments specify the inter row/column spacing and the
column width.
"""
# first find out the max width of the columns
# maxwidths is a dictionary, but can be accessed exactly like an
# array because the keys are integers.
if widths is None:
widths = {}
for row in tableText:
cellwidths = map(TextWidth, row)
for i in range(len(cellwidths)):
# Using: dictionary.get(key, default)
widths[i] = max(cellwidths[i], widths.get(i, -1))
# Truncate each of the maximum lengths to the maximum allowed.
for i in range(0, len(widths)):
widths[i] = min(widths[i], COL_WIDTH)
if justify:
formattedTable = []
for row in tableText:
formattedTable.append(map(FillParagraphs, row,
[COL_WIDTH] * len(row)))
else:
formattedTable = tableText
retTableText = ""
for row in formattedTable:
rowtext = row[0]
width = widths[0]
for i in range(1, len(row)):
rowtext = VertCatString(rowtext, width, " " * COL_SPACE)
rowtext = VertCatString(rowtext, width + COL_SPACE, row[i])
width = width + COL_SPACE + widths[i]
retTableText += string.join(rowtext, "")
retTableText += "\n" * ROW_SPACE
return re.sub(r"\n+$", "", retTableText)
def VertCatString(string1, width1, string2):
"""
VertCatString(string1, width1=None, string2)
returns string
Concatenates string1 and string2 vertically. The lines are assumed to
be "\n" separated.
width1 is the width of the string1 column (It is calculated if left out).
(Width refers to the maximum length of each line of a string)
NOTE: if width1 is specified < actual width, then bad things happen.
"""
lines1 = string1.split("\n")
lines2 = string2.split("\n")
if width1 is None:
width1 = -1
for line in lines1:
width1 = max(width1, len(line))
retlines = []
for i in range(0, max(len(lines1), len(lines2))):
if i >= len(lines1):
lines1.append(" " * width1)
lines1[i] = lines1[i] + " " * (width1 - len(lines1[i]))
if i >= len(lines2):
lines2.append("")
retlines.append(lines1[i] + lines2[i])
return string.join(retlines, "\n")
# vim:et:sts=4

View File

@@ -0,0 +1,86 @@
IMAP -- A fluid replacement for :imap
*imaps.txt*
Srinath Avadhanula <srinath AT fastmail DOT fm>
Abstract
========
This plugin provides a function IMAP() which emulates vims |:imap| function. The
motivation for providing this plugin is that |:imap| suffers from problems
which get increasingly annoying with a large number of mappings.
Consider an example. If you do >
imap lhs something
then a mapping is set up. However, there will be the following problems:
1. The 'ttimeout' option will generally limit how easily you can type the lhs.
if you type the left hand side too slowly, then the mapping will not be
activated.
2. If you mistype one of the letters of the lhs, then the mapping is deactivated
as soon as you backspace to correct the mistake.
3. The characters in lhs are shown on top of each other. This is fairly
distracting. This becomes a real annoyance when a lot of characters initiate
mappings.
This script provides a function IMAP() which does not suffer from these
problems.
*imaps.txt-toc*
|im_1| Using IMAP
================================================================================
Using IMAP *im_1* *imaps-usage*
Each call to IMAP is made using the syntax: >
call IMAP (lhs, rhs, ft [, phs, phe])
This is equivalent to having <lhs> map to <rhs> for all files of type <ft>.
Some characters in the <rhs> have special meaning which help in cursor placement
as described in |imaps-placeholders|. The optional arguments define these
special characters.
Example One: >
call IMAP ("bit`", "\\begin{itemize}\<cr>\\item <++>\<cr>\\end{itemize}<++>", "tex")
This effectively sets up the map for "bit`" whenever you edit a latex file. When
you type in this sequence of letters, the following text is inserted: >
\begin{itemize}
\item *
\end{itemize}<++>
where * shows the cursor position. The cursor position after inserting the text
is decided by the position of the first "place-holder". Place holders are
special characters which decide cursor placement and movement. In the example
above, the place holder characters are <+ and +>. After you have typed in the
item, press <C-j> and you will be taken to the next set of <++>'s. Therefore by
placing the <++> characters appropriately, you can minimize the use of movement
keys.
Set g:Imap_UsePlaceHolders to 0 to disable placeholders altogether.
Set g:Imap_PlaceHolderStart and g:Imap_PlaceHolderEnd to something else if you
want different place holder characters. Also, b:Imap_PlaceHolderStart and
b:Imap_PlaceHolderEnd override the values of g:Imap_PlaceHolderStart and
g:Imap_PlaceHolderEnd respectively. This is useful for setting buffer specific
place holders.
Example Two: You can use the <C-r> command to insert dynamic elements such as
dates. >
call IMAP ('date`', "\<c-r>=strftime('%b %d %Y')\<cr>", '')
With this mapping, typing date` will insert the present date into the file.
================================================================================

View File

@@ -0,0 +1,50 @@
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns="http://www.w3.org/TR/xhtml1/transitional"
exclude-result-prefixes="#default">
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/chunk.xsl"/>
<!-- import common customizations -->
<xsl:import href="latex-suite-common.xsl"/>
<!-- insert customization here -->
<xsl:param name="default.encoding" select="'ISO-8859-1'"/>
<xsl:param name="use.id.as.filename" select="'1'"/>
<xsl:param name="section.autolabel" select="1"/>
<xsl:param name="html.stylesheet" select="'../latex-suite.css'"/>
<!-- Chunk the first top-level section? -->
<xsl:param name="chunk.first.sections" select="1"/>
<!-- Depth to which sections should be chunked -->
<xsl:param name="chunk.section.depth" select="2"/>
<!-- How deep should recursive sections appear in the TOC? -->
<xsl:param name="toc.section.depth">2</xsl:param>
<!-- Control depth of TOC generation in sections -->
<xsl:param name="generate.section.toc.level" select="3"/>
<xsl:param name="chunker.output.method" select="'html'"/>
<xsl:param name="chunker.output.doctype-public"
select="'-//W3C//DTD HTML 4.01 Transitional//EN'"/>
<xsl:param name="chunker.output.doctype-system"
select="'http://www.w3.org/TR/html4/loose.dtd'"/>
<!-- this enables generation of TOC in appendix -->
<xsl:param name="generate.toc">
appendix toc
article/appendix toc
article toc
sect1 toc
sect2 toc
sect3 toc
sect4 toc
sect5 toc
section toc
</xsl:param>
</xsl:stylesheet>

View File

@@ -0,0 +1,62 @@
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns="http://www.w3.org/TR/xhtml1/transitional"
exclude-result-prefixes="#default">
<!-- Common customizations for all stylesheets -->
<!-- this omits the trailing '.' in numbered sections -->
<xsl:param name="autotoc.label.separator" select="' '"/>
<xsl:param name="local.l10n.xml" select="document('')"/>
<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
<l:l10n language="en">
<l:context name="title-numbered">
<l:template name="section" text="%n %t"/>
</l:context>
</l:l10n>
</l:i18n>
<!-- override template for revhistory table -->
<xsl:template match="revhistory" mode="titlepage.mode">
<xsl:variable name="numcols">
<xsl:choose>
<xsl:when test="//authorinitials">3</xsl:when>
<xsl:otherwise>2</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<div xmlns="http://www.w3.org/1999/xhtml" class="{name(.)}">
<table border="2" cellspacing="4" width="100%" summary="Revision history">
<tr>
<th align="left" valign="top" colspan="{$numcols}">
<b>
<xsl:call-template name="gentext">
<xsl:with-param name="key" select="'RevHistory'"/>
</xsl:call-template>
</b>
</th>
</tr>
<xsl:apply-templates mode="titlepage.mode">
<xsl:with-param name="numcols" select="$numcols"/>
</xsl:apply-templates>
</table>
</div>
</xsl:template>
<!--
<xsl:template name="user.header.content">
<div id="customheader">
<span class="logo">TeX Refs</span>
</div>
</xsl:template>
<xsl:template name="user.footer.content">
<div id="customfooter">
Copyright &#169; 2002 P. Karp, M. Wiedmann
</div>
</xsl:template>
-->
</xsl:stylesheet>

View File

@@ -0,0 +1,182 @@
/*
* Authors: Srinath Avadhanula and Mikolaj Machowski
* This style file borrows some elements from main.css, the style file used
* in cream.sf.net
*
* */
P {
font-size : 12pt ;
font-family : helvetica, arial, verdana, sans-serif ;
vertical-align : top;
}
DT {
font-size : 11pt ;
font-family : helvetica, arial, verdana, sans-serif ;
vertical-align : top;
}
LI {
font-size : 12pt ;
font-family : helvetica, arial, verdana, sans-serif ;
vertical-align : top;
}
DIV.header {
margin : 0.5cm ;
width : 800px ;
height : 100
}
.note {
}
TD {
font-size : 11pt ;
font-family : helvetica, arial, verdana, sans-serif ;
vertical-align : top;
}
TD.menu {
text-align : center ;
font-family : verdana, helvetica, sans-serif
}
TD.footright {
text-align : right ;
font-size : 10pt ;
font-family : verdana, helvetica, sans-serif
}
TD.leftpanel {
font-size: 14px ;
font-family: verdana, helvetica, sans-serif ;
vertical-align: top ;
width: 150px;
padding: 15px;
background-color: #88aaaa;
}
TD.mainpanel {
font-size : 12pt ;
font-family : helvetica, arial, verdana, sans-serif ;
vertical-align : top;
padding: 15px;
}
TD.footpanel {
font-size: 12px ;
font-family: verdana, helvetica, sans-serif ;
vertical-align: top ;
text-align: right;
padding: 5px;
background-color: #88aaaa;
}
.navigation {
vertical-align: top;
width: 150px;
padding: 15px;
background-color: #445555;
color: #fffcfc;
}
.navheader {
margin-top: -0.5em;
margin-bottom: 0.5em;
text-align: right;
color: #446644;
font-size: 14px;
font-weight: bold;
}
SPAN.menu {
text-align : center ;
font-size : 12pt ;
font-family : verdana, helvetica, sans-serif
}
DIV.merit {
margin : 0.5cm ;
width : 800px
}
TABLE.meritum {
margin : 0.5cm ;
border : 0
}
.foot {
margin : 0.5cm ;
width : 800px
}
.head {
margin : 0.5cm ;
}
CODE {
font-family: "Andale Mono", "Courier New", "Courier", monospace;
background-color: #eef0f3;
white-space: nowrap;
}
.singlesmall {
font-size: 14px;
}
.doublesmall {
font-size: 12px;
}
DIV.footer {
margin : 0.5cm ;
width : 800px
}
.qa {
margin : 0.5cm ;
font-size : 16px;
font-weight : bold;
}
.ans {
margin : 0.5cm ;
font-weight : normal;
}
H2.hline {
text-align : center ;
font-family : verdana, helvetica, sans-serif
}
A.extlinks {
font-size : 11pt ;
font-family : verdana, helvetica, sans-serif ;
font-weight : bold
}
TT {
font-family: courier,sans-serif;
font-size: 11pt;
}
PRE.programlisting {
font-family: courier,sans-serif;
font-size: 10pt;
background-color:#eef0f3;
border-color: #000000;
border-width: 1px;
border-style: solid;
}
SPAN.conflict {
font-size : small ;
font-family: courier,sans-serif;
color : #DD4444;
}
HR.navig {
color: #446644;
height: 1px;
margin-top: 1em;
border-top: 0px; /* Mozilla work-around to eliminate "groove" */
}
A.question {
color: #000000;
height: 1px;
margin-top: 1em;
border-top: 0px; /* Mozilla work-around to eliminate "groove" */
}
A.question:hover {
color: #000000;
background-color: #eef0f3;
height: 1px;
margin-top: 1em;
border-top: 0px; /* Mozilla work-around to eliminate "groove" */
}

View File

@@ -0,0 +1,391 @@
A (very) quick introduction to Latex-Suite
*latex-suite-quickstart.txt*
Srinath Avadhanula <srinath AT fastmail DOT fm>
Abstract
========
Latex-Suite is a comprehensive set of scripts to aid in editing, compiling and
viewing LaTeX documents. A thorough explanation of the full capabilities of
Latex-Suite is described in the user manual. This guide on the other hand,
provides a quick 30-45 minute running start to some of the more commonly used
functionalities of Latex-Suite.
*latex-suite-quickstart.txt-toc*
|lq_1| Using this tutorial
|lq_2| Inserting a template
|lq_3| Inserting a package
|lq_4| Inserting an Environment
|lq_5| A few keyboard shortcuts
|lq_6| Folding in Latex-Suite
|lq_7| Inserting a Reference
|lq_8| Compiling a document
|lq_8_1| Debugging LaTeX source files
|lq_9| Viewing DVI files
|lq_9_1| Performing forward searches
|lq_9_2| Performing inverse searches
|lq_10| Conclusions
================================================================================
Using this tutorial *lq_1* *lq_a_bc*
*lsq-using-tutorial*
This tutorial assumes that you have vim version 6.1+ installed on your machine.
To check, open vim and type >
:ver
You will see the version in the first line of the output. Get the latest vim
version from http://vim.sf.net |lq_u_1|.
Assuming you have Vim 6.1+ already up and running, follow the instructions here
|lq_u_2| to set up Latex-Suite.
Good, now you are all set to start the tutorial. Since this tutorial aims to
explain the newbie-friendly version of Latex-Suite, it needs some GUI
functionality. Therefore, at least for this tutorial, open the gui version of
vim. (On MS windows, this is the default). Open up this help file in either the
same gvim session in a split window or in a different session and follow the
(friendly) instructions.
================================================================================
Inserting a template *lq_2* *lq_a_bd*
*lsq-inserting-template*
Start up gvim and begin editing a new file. >
e newfile.tex
If the installation went well, you should see a new set of menus appear. Goto
Tex-Suite > Templates. You will see a number of templates to choose from. For
now, choose to insert a template for an article. You should get the following in
the main vim window (after possibly a hit-enter prompt). >
1 % File: sample.tex
2 % Created: Sun Jun 22 04:00 PM 2003 P
3 % Last Change: Sun Jun 22 04:00 PM 2003 P
4 %
5 \documentclass[a4paper]{article}
6 \begin{document}
7
8 \end{document}
9
10 ~
11 ~
12 ~
13 ~
-- INSERT -- 7,1 All
The cursor is left on line 7 (just after the \begin{document} line) from where
you can start typing straight away. Trying to lessen movement is a recurring
theme in Latex-Suite.
================================================================================
Inserting a package *lq_3* *lq_a_be*
*lsq-lsq-inserting-package*
Assume that we are writing a mathematical paper and we want to use the popular
amsmath package. We will use some functionality which Latex-Suite provides
specifically for including LaTeX packages, providing options etc. Navigate to
before the \begin{document} line (The portion of the document before the
\begin{document} is called the _preamble_ in LaTeX). On an empty line in the
preamble, type the single word amsmath and then press <F5> in normal mode. The
line will change to >
\usepackage[]{amsmath}<++>
with the cursor positioned conveniently between the []'s. For now, do not worry
about the trailing <++> at the end of this line. Assume we want to provide the
sumlimits options to amsmath. You can either type in this option manually, or
choose from a menu of package options which Latex-Suite automatically creates
when you insert a package using <F5>. With the cursor still placed between the
[], goto TeX-Suite > Packages > amsmath Options. Choose the sumlimits option.
The package line should get converted to: >
\usepackage[sumlimits,]{amsmath}<++>
with the cursor before ]. Press <C-j> in insert mode. You will see the cursor
jump to the end of the package line and the trailing <++> will disappear. What
just happened?! You had your first taste of _Placeholders_. Read more about them
(later) here |lq_u_3|. In short, pressing <C-j> in insert mode takes you to the
next <++> in the text.
================================================================================
Inserting an Environment *lq_4* *lq_a_bf*
*lsq-insert-environment*
Now let us type in a simple formula in LaTeX. Move back to the body of the
document (The portion of the document between \begin{document} and
\end{document} is called the body). Type in a few simple sentences and then on
an empty line, type the single word equation. Escape to normal mode and press
<F5>. (Remember: <F5> is very useful!) This time, the line will change to: >
\begin{equation}
<+content+>
\label{<+label+>}
\end{equation}<++>
<with the cursor on the <+content+>.
================================================================================
A few keyboard shortcuts *lq_5* *lq_a_bg*
*lsq-keyboard-shortcuts*
Now to type in the famous Euler formula. Our aim is to type >
e^{j\pi} + 1 = 0
Instead of typing this blindly, let us use a few shortcuts to reduce movement.
Start out by typing e^. Now instead of typing {, type another ^. You will see
the e^^ change instantly to e^{}<++> with the cursor on <+content+>. (The ^^
changed to ^{}<++>.) Continue with the following sequence of letters: j`p. This
will change instantly to j\pi. (The `p changed to \pi.) Having typed in all we
need to type between the {}'s, press <C-j>. You will pop back out of the
curly-braces. Continue typing the rest of the formula. Latex-Suite provides a
large number of shortcuts which should making typing much more fun and fast if
you get acquainted with them. A list is provided here |lq_u_4|. Definitely spend
some time getting a feel for them. Most of them are pretty intuitive like `/ for
\frac{}{}, `8 for \infty etc.
Now enter a label. Press <C-j> to jump to <+label+>. We will use eqn:euler.
After typing in eqn:euler, press <C-j>. This will take you outside the
curly-braces. Another time you used a Placeholder!
In order to understand the next section better, it will be helpful to have one
more \label. Lets use the handy <F5> key to insert another equation. This time
something simple like the following will do: >
\begin{equation}
\label{eqn:simple}
1 + 1 = 2
\end{equation}
================================================================================
Folding in Latex-Suite *lq_6* *lq_a_bh* *lsq-folding*
Okay, we have typed enough. At this stage, hopefully, your file is looking
something like this: >
1 % File: sample.tex
2 % Created: Sun Jun 22 04:00 PM 2003 P
3 % Last Change: Mon Dec 15 07:00 PM 2003
4 %
5 \documentclass[a4paper]{article}
6
7 \usepackage[sumlimits,]{amsmath}
8
9 \begin{document}
10 \begin{equation}
11 \label{eqn:euler}
12 e^{j\pi} + 1 = 0
13 \end{equation}
14 This is the famous euler equation. I
15 will type another equation, just as
16 true:
17 \begin{equation}
18 \label{eqn:simple}
19 1 + 1 = 2
20 \end{equation}
21 This is my contribution to mathematics.
22 \end{document}
In normal mode, press \rf. This will fold up the entire file and you should see
the file looking as below: >
1 % File: sample.tex
2 % Created: Sun Jun 22 04:00 PM 2003 P
3 % Last Change: Mon Dec 15 07:00 PM 2003
4 %
5 +-- 4 lines: Preamble: \documentclass[a4paper]{article} -----
9 \begin{document}
10 +-- 4 lines: equation (eqn:euler) \label{eqn:euler} -----------
14 This is the famous euler equation. I
15 will type another equation, just as
16 true:
10 +-- 4 lines: equation (eqn:simple) \label{eqn:simple} ---------
21 This is my contribution to mathematics.
22 \end{document}
What has happened is that Latex-Suite folded away blocks of LaTeX code into
folded regions. You can open and close folds by using the command za in normal
mode.
================================================================================
Inserting a Reference *lq_7* *lq_a_bi*
*lsq-inserting-reference*
A necessary part of LaTeX editing is referencing equations, figures,
bibliographic entries etc. This is done with the \ref and the \cite commands.
Latex-Suite provides an easy way to do this. Somewhere in the body of the
document, type in the following sentence >
This is a reference to (\ref{}).
With the cursor between the {} press <F9> in insert mode. Your vim session will
sprout a new windows showing all the \labels found in all the .tex files of your
current project. To insert the reference, just position the cursor on the
relevant line and press <enter>. The line which you were editing will change to: >
This is a reference to (\ref{eqn:euler})
and the bottom window closes automatically.
The <F9> key also works for inserting \cite commands to reference bibliographic
entries, inserting file names for the \inputgraphics command and just plain
searching for words. Click here |lq_u_5| for more information.
================================================================================
Compiling a document *lq_8* *lq_a_bj*
*lsq-compiling*
|lq_8_1| Debugging LaTeX source files
Great! We have just created a small latex file. The next step is to make the
latex compiler create a .dvi file from it. Compiling via latex-suite is simple.
Goto normal mode and press \ll (replace \ with whatever mapleader setting you
have). This will call the latex compiler. If all goes well, then the focus
should return to the vim window.
Nothing happend? Ouch! You might need to do some additional settings as
described here. |lq_u_6|
--------------------------------------------------------------------------------
Debugging LaTeX source files *lq_8_1* *lq_a_bk*
*lsq-debugging*
To illustrate the debugging procedure, let's create a few mistakes in the file.
Insert the following ``mistakes'' in the file: >
This is a $\mistake$.
And this is $\another$
Now press \ll again. This time you will notice that after compilation finishes,
the cursor automatically lands on $\mistake$. In addition, 2 new windows will
appear as shown here:
The middle window is an _Error List_ window showing you the errors which the
latex compiler found. The bottom window is a _Log Preview_ window, which shows
you the context of the error made by displaying the relevant portion of the .log
file created during the latex compilation procedure. Jump to the _Error List_
window and try scrolling around in it using either the j, k keys or the arrow
keys. You will notice that the _Log Preview_ window scrolls automatically to
retain the context of the error you are currently located on. If you press
<enter> on any line, you will see the cursor jump to the location of the error.
Latex-Suite tries to guess the column location as best as it can so you can
continue typing straight away.
Having got a taste for compiling, proceed by deleting the erroneous lines and
re-compiling.
The Latex-Suite compiler is capable of much more including selectively filtering
out common errors which you might want to ignore for the moment, compiling parts
of a document, setting levels of verbosity in the compiler output etc. See here
|lq_u_7| for more.
================================================================================
Viewing DVI files *lq_9* *lq_a_bl*
*lsq-viewing-dvi*
|lq_9_1| Performing forward searches
|lq_9_2| Performing inverse searches
Now that you have compiled your first latex source, its time to view it. Again,
this should be pretty simple. Press \lv in normal mode. Depending on your
platform, a DVI viewer program should open up and display the dvi file generated
in compilation step previously.
Nothing happend? Ouch! You might need to do some additional settings as
described here. |lq_u_8|
--------------------------------------------------------------------------------
Performing forward searches *lq_9_1* *lq_a_bm*
*lsq-quick-forward-searching*
If you are using a modern DVI viewer, then it is possible to do what is called
forward and inverse searching. However, you will need to customize the standard
Latex-Suite distribution in order to utilize this functionality. Type in the
following on the command line: >
:let g:Tex_CompileRule_dvi = 'latex -src-specials -interaction=nonstopmode $*'
:TCTarget dvi
Now recompile the latex file by pressing \ll. This time, instead of pressing \lv
to view the file, press \ls from within the tex file. If the DVI viewer supports
forward searching (most of them do), then the viewer will actually display the
portion of the DVI file corresponding to the location where you were editing the
tex file.
NOTE: The reason Latex-Suite does not have this setting by default is that on
some systems this causes unpredictable results in the DVI output. If you
find the DVI output satisfactory, then you can insert the first of the 2
lines above into your $VIM/ftplugin/tex.vim file. $VIM is ~/vimfiles for
windows and ~/.vim for *nix machines.
--------------------------------------------------------------------------------
Performing inverse searches *lq_9_2* *lq_a_bn*
*lsq-quick-inverse-searching*
Most DVI viewers also support inverse searching, whereby you can make the DVI
viewer ask vim to display the tex source corresponding to the DVI file being
shown. This is extremely helpful while proofreading large documents.
Simply double-click anywhere in the viewer window. If the viewer supports it,
then it will attempt to open an editor window at the location corresponding to
where you double-clicked. On *nix platforms, Latex-Suite attempts to start the
viewer program in such a way that it already knows to use vim to open the tex
source. Thus you should see a vim window open up showing the tex file. However,
if there is an error, or some other program is used, you will need to tell the
viewer program to use gvim as the editor. On windows platforms, if you use the
commonly available yap viewer (available as part of the miktex distribution),
then this option can be set from View > Options > Inverse Search. In the Command
line: window, write >
"C:\Program Files\vim\vim61\gvim" -c ":RemoteOpen +%l %f"
(Customize the path according to where you have installed gvim). If you double
click in the view pane now, you will see gvim start up and take you to the
relevant portion of the tex file.
================================================================================
Conclusions *lq_10* *lq_a_bo*
*lsq-conclusions*
Thats all folks! By now, you should know enough of the basic functions of
latex-suite. Ofcourse, latex-suite is capable of much, much more such as
compiling files multiple times to resolve changed labels, compiling
dependencies, handling user packages and more. To get a feel for that, you will
need to take a look at the Latex-Suite user manual. |lq_u_9|
================================================================================
URLs used in this file
*lq_u_1* : http://vim.sf.net
*lq_u_2* : http://vim-latex.sourceforge.net/index.php?subject=download&title=Download
*lq_u_3* : http://vim-latex.sourceforge.net/documentation/latex-suite/latex-macros.html
*lq_u_4* : http://vim-latex.sourceforge.net/documentation/latex-suite/auc-tex-mappings.html
*lq_u_5* : http://vim-latex.sourceforge.net/documentation/latex-suite/latex-completion.html
*lq_u_6* : http://vim-latex.sourceforge.net/index.php?subject=faq&title=FAQ#faq-2
*lq_u_7* : http://vim-latex.sourceforge.net/documentation/latex-suite/latex-compiling.html
*lq_u_8* : http://vim-latex.sourceforge.net/index.php?subject=faq&title=FAQ#faq-3
*lq_u_9* : http://vim-latex.sourceforge.net/index.php?subject=manual&title=Manual#user-manual
================================================================================
About this file
This file was created automatically from its XML variant using db2vim. db2vim is
a python script which understands a very limited subset of the Docbook XML 4.2
DTD and outputs a plain text file in vim help format.
db2vim can be obtained via anonymous CVS from sourceforge.net. Use
cvs -d:pserver:anonymous@cvs.vim-latex.sf.net:/cvsroot/vim-latex co db2vim
Or you can visit the web-interface to sourceforge CVS at:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/vim-latex/db2vim/
================================================================================

View File

@@ -0,0 +1,433 @@
<?xml version='1.0' encoding='ISO-8859-1'?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"docbook-xml/docbookx.dtd"
[<!ENTITY dummy "dummy">
<!ENTITY date "$Date$">
<!ENTITY ls "Latex-Suite">
<!ENTITY latex "LaTeX">
<!ENTITY vim "Vim">
<!ENTITY ph "&lt;++&gt;">
]>
<article lang="en">
<articleinfo id="lsq-articleinfo">
<title id="lsq-articleinfo-title">A (very) quick introduction to Latex-Suite</title>
<author>
<firstname>Srinath</firstname>
<surname>Avadhanula</surname>
<affiliation>
<address><email>srinath AT fastmail DOT fm</email></address>
</affiliation>
</author>
<abstract>
&ls; is a comprehensive set of scripts to aid in editing, compiling and
viewing &latex; documents. A thorough explanation of the full
capabilities of &ls; is described in the user manual. This guide on the
other hand, provides a quick 30-45 minute running start to some of the
more commonly used functionalities of &ls;.
</abstract>
<date>&date;</date>
</articleinfo>
<section id="lsq-using-tutorial">
<title id="using-tutorial">Using this tutorial</title>
<para>
This tutorial assumes that you have vim version 6.1+ installed on your
machine. To check, open vim and type
<programlisting>:ver</programlisting>
You will see the version in the first line of the output. Get the latest
vim version from <ulink url="http://vim.sf.net">http://vim.sf.net</ulink>.
</para>
<para>
Assuming you have Vim 6.1+ already up and running, follow the
instructions <ulink
url="http://vim-latex.sourceforge.net/index.php?subject=download&amp;title=Download">here</ulink>
to set up Latex-Suite.
</para>
<para>
Good, now you are all set to start the tutorial. Since this tutorial
aims to explain the newbie-friendly version of &ls;, it needs some GUI
functionality. Therefore, at least for this tutorial, open the gui
version of vim. (On MS windows, this is the default). Open up this help
file in either the same gvim session in a split window or in a different
session and follow the (friendly) instructions.
</para>
</section>
<section id="lsq-inserting-template">
<title id="inserting-template-title">Inserting a template</title>
<para>
Start up gvim and begin editing a new file.
<programlisting>e newfile.tex</programlisting>
If the installation went well, you should see a new set of
menus appear. Goto <literal>Tex-Suite &gt; Templates</literal>. You will see
a number of templates to choose from. For now, choose to insert a
template for an article. You should get the following in the main
vim window (after possibly a hit-enter prompt).
<programlisting>
1 % File: sample.tex
2 % Created: Sun Jun 22 04:00 PM 2003 P
3 % Last Change: Sun Jun 22 04:00 PM 2003 P
4 %
5 \documentclass[a4paper]{article}
6 \begin{document}
7
8 \end{document}
9
10 ~
11 ~
12 ~
13 ~
-- INSERT -- 7,1 All
</programlisting>
</para>
<imageobject>
<imagedata fileref="" format="png"></imagedata>
</imageobject>
<para>
The cursor is left on line 7 (just after the
<literal>\begin{document}</literal> line) from where you can start
typing straight away. Trying to lessen movement is a recurring theme in
Latex-Suite.
</para>
</section>
<section id="lsq-lsq-inserting-package">
<title>Inserting a package</title>
<para>
Assume that we are writing a mathematical paper and we want to use the
popular amsmath package. We will use some functionality which
Latex-Suite provides specifically for including LaTeX packages,
providing options etc. Navigate to before the
<literal>\begin{document}</literal> line (The portion of the document
before the <literal>\begin{document}</literal> is called the
<emphasis>preamble</emphasis> in LaTeX). On an empty line in the
preamble, type the single word <literal>amsmath</literal> and then press
<literal>&lt;F5&gt;</literal> in normal mode. The line will change to
<programlisting>\usepackage[]{amsmath}&ph;</programlisting>
with the cursor positioned conveniently between the
<literal>[]</literal>'s. For now, do not worry about the trailing
<literal>&ph;</literal> at the end of this line. Assume we want to
provide the <literal>sumlimits</literal> options to amsmath. You can
either type in this option manually, or choose from a menu of package
options which Latex-Suite automatically creates when you insert a
package using <literal>&lt;F5&gt;</literal>. With the cursor still
placed between the <literal>[]</literal>, goto <literal>TeX-Suite &gt;
Packages &gt; amsmath Options</literal>. Choose the
<literal>sumlimits</literal> option. The package line should get
converted to:
<programlisting>\usepackage[sumlimits,]{amsmath}&ph;</programlisting>
</para>
<para>
with the cursor before <literal>]</literal>. Press
<literal>&lt;C-j&gt;</literal> in insert mode. You will see the cursor
jump to the end of the package line and the trailing
<literal>&ph;</literal> will disappear. What just happened?! You had
your first taste of <emphasis>Placeholders</emphasis>. Read more about
them (later) <ulink
url="http://vim-latex.sourceforge.net/documentation/latex-suite/latex-macros.html">here</ulink>.
In short, pressing <literal>&lt;C-j&gt;</literal> in insert mode takes
you to the next <literal>&ph;</literal> in the text.
</para>
</section>
<section id="lsq-insert-environment">
<title>Inserting an Environment</title>
<para>
Now let us type in a simple formula in LaTeX. Move back to the body of
the document (The portion of the document between
<literal>\begin{document}</literal> and
<literal>\end{document}</literal> is called the body). Type in a few
simple sentences and then on an empty line, type the single word
<literal>equation</literal>. Escape to normal mode and press
<literal>&lt;F5&gt;</literal>. (Remember:
<literal>&lt;F5&gt;</literal> is very useful!) This time, the line will
change to:
<programlisting>\begin{equation}
&lt;+content+&gt;
\label{&lt;+label+&gt;}
\end{equation}&ph;</programlisting>
with the cursor on the <literal>&lt;+content+&gt;</literal>.
</para>
</section>
<section id="lsq-keyboard-shortcuts">
<title>A few keyboard shortcuts</title>
<para>
Now to type in the famous Euler formula. Our aim is to type
<programlisting>e^{j\pi} + 1 = 0</programlisting> Instead
of typing this blindly, let us use a few shortcuts to reduce
movement. Start out by typing <literal>e^</literal>. Now instead of
typing <literal>{</literal>, type another <literal>^</literal>. You
will see the <literal>e^^</literal> change instantly to
<literal>e^{}&ph;</literal> with the cursor on
<literal>&lt;+content+&gt;</literal>. (The <literal>^^</literal> changed to
<literal>^{}&ph;</literal>.) Continue with the following sequence of
letters: <literal>j`p</literal>. This will change instantly to
<literal>j\pi</literal>. (The <literal>`p</literal> changed to
<literal>\pi</literal>.) Having typed in all we need to type between
the <literal>{}</literal>'s, press <literal>&lt;C-j&gt;</literal>.
You will pop back out of the curly-braces. Continue typing the rest
of the formula.
Latex-Suite provides a large number
of shortcuts which should making typing much more fun and fast
if you get acquainted with them. A list is provided <ulink
url="http://vim-latex.sourceforge.net/documentation/latex-suite/auc-tex-mappings.html">here</ulink>. Definitely spend some time getting a feel for
them. Most of them are pretty intuitive like <literal>`/</literal>
for <literal>\frac{}{}</literal>, <literal>`8</literal> for
<literal>\infty</literal> etc.
</para>
<para>
Now enter a label.
Press <literal>&lt;C-j&gt;</literal> to jump to
<literal>&lt;+label+&gt;</literal>.
We
will use <literal>eqn:euler</literal>. After typing in
<literal>eqn:euler</literal>, press <literal>&lt;C-j&gt;</literal>. This
will take you outside the curly-braces. Another time you used a
Placeholder!
</para>
<para>
In order to understand the next section better, it will be helpful
to have one more <literal>\label</literal>. Lets use the handy
<literal>&lt;F5&gt;</literal>
key to insert another equation. This time something simple like the
following will do:
<programlisting>\begin{equation}
\label{eqn:simple}
1 + 1 = 2
\end{equation}</programlisting>
</para>
</section>
<section id="lsq-folding">
<title>Folding in &ls;</title>
<para>
Okay, we have typed enough. At this stage, hopefully, your file is
looking something like this:
<programlisting>
1 % File: sample.tex
2 % Created: Sun Jun 22 04:00 PM 2003 P
3 % Last Change: Mon Dec 15 07:00 PM 2003
4 %
5 \documentclass[a4paper]{article}
6
7 \usepackage[sumlimits,]{amsmath}
8
9 \begin{document}
10 \begin{equation}
11 \label{eqn:euler}
12 e^{j\pi} + 1 = 0
13 \end{equation}
14 This is the famous euler equation. I
15 will type another equation, just as
16 true:
17 \begin{equation}
18 \label{eqn:simple}
19 1 + 1 = 2
20 \end{equation}
21 This is my contribution to mathematics.
22 \end{document}
</programlisting>
In normal mode, press <literal>\rf</literal>. This will fold up the
entire file and you should see the file looking as below:
<programlisting>
1 % File: sample.tex
2 % Created: Sun Jun 22 04:00 PM 2003 P
3 % Last Change: Mon Dec 15 07:00 PM 2003
4 %
5 +-- 4 lines: Preamble: \documentclass[a4paper]{article} -----
9 \begin{document}
10 +-- 4 lines: equation (eqn:euler) \label{eqn:euler} -----------
14 This is the famous euler equation. I
15 will type another equation, just as
16 true:
10 +-- 4 lines: equation (eqn:simple) \label{eqn:simple} ---------
21 This is my contribution to mathematics.
22 \end{document}
</programlisting>
What has happened is that &ls; folded away blocks of &latex; code into
folded regions. You can open and close folds by using the command
<literal>za</literal> in normal mode.
</para>
</section>
<section id="lsq-inserting-reference">
<title>Inserting a Reference</title>
<para>
A necessary part of LaTeX editing is referencing equations, figures,
bibliographic entries etc. This is done with the
<literal>\ref</literal> and the <literal>\cite</literal> commands.
Latex-Suite provides an easy way to do this. Somewhere in the body of
the document, type in the following sentence
<programlisting>This is a reference to (\ref{}).</programlisting>
With the cursor between the <literal>{}</literal> press
<literal>&lt;F9&gt;</literal> in insert mode. Your vim session will
sprout a new windows showing all the
<literal>\label</literal>s found in all the <literal>.tex</literal> files
of your current project.
To insert the reference, just position the cursor on
the relevant line and press
<literal>&lt;enter&gt;</literal>. The line which you were editing will change
to:
<programlisting>This is a reference to (\ref{eqn:euler})</programlisting>
and the bottom window closes automatically.
</para>
<para>
The <literal>&lt;F9&gt;</literal> key also works for inserting
<literal>\cite</literal> commands to reference bibliographic entries,
inserting file names for the <literal>\inputgraphics</literal> command
and just plain searching for words. Click <ulink
url="http://vim-latex.sourceforge.net/documentation/latex-suite/latex-completion.html">here</ulink>
for more information.
</para>
</section>
<section id="lsq-compiling">
<title>Compiling a document</title>
<para>
Great! We have just created a small latex file. The next step is to
make the latex compiler create a .dvi file from it. Compiling via
latex-suite is simple. Goto normal mode and press <literal>\ll</literal>
(replace <literal>\</literal> with whatever <literal>mapleader</literal> setting you
have). This will call the latex compiler. If all goes well, then
the focus should return to the vim window.
</para>
<para>
Nothing happend? Ouch! You might need to do some additional settings as
described <ulink
url="http://vim-latex.sourceforge.net/index.php?subject=faq&amp;title=FAQ#faq-2">here.</ulink>
</para>
<section id="lsq-debugging">
<title>Debugging LaTeX source files</title>
<para>
To illustrate the debugging procedure, let's create a few mistakes
in the file. Insert the following ``mistakes'' in the file:
<programlisting>This is a $\mistake$.
And this is $\another$</programlisting>
Now press <literal>\ll</literal> again. This time you will notice that
after compilation finishes, the cursor automatically lands on
<literal>$\mistake$</literal>. In addition, 2 new windows will appear
as shown here:
</para>
<imageobject>
<imagedata fileref="" format=""></imagedata>
</imageobject>
<para>
The middle window is an <emphasis>Error List</emphasis> window
showing you the errors which the latex compiler found. The bottom
window is a <emphasis>Log Preview</emphasis> window, which shows you
the context of the error made by displaying the relevant portion of
the <literal>.log</literal> file created during the latex
compilation procedure. Jump to the <emphasis>Error List</emphasis>
window and try scrolling around in it using either the <literal>j,
k</literal> keys or the arrow keys. You will notice that the
<emphasis>Log Preview</emphasis> window scrolls automatically to
retain the context of the error you are currently located on. If you
press <literal>&lt;enter&gt;</literal> on any line, you will see the
cursor jump to the location of the error. Latex-Suite tries to guess
the column location as best as it can so you can continue typing
straight away.
</para>
</section>
<para>
Having got a taste for compiling, proceed by deleting the erroneous
lines and re-compiling.
</para>
<para>
The Latex-Suite compiler is capable of much more including
selectively filtering out common errors which you might want to
ignore for the moment, compiling parts of a document, setting
levels of verbosity in the compiler output etc. See <ulink
url="http://vim-latex.sourceforge.net/documentation/latex-suite/latex-compiling.html">here</ulink>
for more.
</para>
</section>
<section id="lsq-viewing-dvi">
<title>Viewing DVI files</title>
<para>
Now that you have compiled your first latex source, its time to
view it. Again, this should be pretty simple. Press
<literal>\lv</literal> in normal mode. Depending on your platform, a DVI
viewer program should open up and display the dvi file generated in
compilation step previously.
</para>
<para>
Nothing happend? Ouch! You might need to do some additional settings as
described <ulink
url="http://vim-latex.sourceforge.net/index.php?subject=faq&amp;title=FAQ#faq-3">here.</ulink>
</para>
<section id="lsq-quick-forward-searching">
<title>Performing forward searches</title>
<para>
If you are using a modern DVI viewer, then it is possible to do what
is called forward and inverse searching. However, you will need to
customize the standard Latex-Suite distribution in order to utilize
this functionality. Type in the following on the command line:
<programlisting>:let g:Tex_CompileRule_dvi = 'latex -src-specials -interaction=nonstopmode $*'
:TCTarget dvi</programlisting>
Now recompile the latex file by pressing <literal>\ll</literal>.
This time, instead of pressing <literal>\lv</literal> to view the
file, press <literal>\ls</literal> from within the tex file. If the
DVI viewer supports forward searching (most of them do), then the
viewer will actually display the portion of the DVI file
corresponding to the location where you were editing the tex file.
</para>
<note>
<para>
The reason Latex-Suite does not have this setting by default is
that on some systems this causes unpredictable results in the DVI
output. If you find the DVI output satisfactory, then you can
insert the first of the 2 lines above into your
<literal>$VIM/ftplugin/tex.vim</literal> file.
<literal>$VIM</literal> is <literal>~/vimfiles</literal> for
windows and <literal>~/.vim</literal> for *nix machines.
</para>
</note>
</section>
<section id="lsq-quick-inverse-searching">
<title>Performing inverse searches</title>
<para>
Most DVI viewers also support inverse searching, whereby you can
make the DVI viewer ask vim to display the tex source corresponding
to the DVI file being shown. This is extremely helpful while
proofreading large documents.
</para>
<para>
Simply double-click anywhere in the viewer window. If the viewer
supports it, then it will attempt to open an editor window at the
location corresponding to where you double-clicked. On *nix
platforms, Latex-Suite attempts to start the viewer program in such
a way that it already knows to use vim to open the tex source. Thus
you should see a vim window open up showing the tex file. However,
if there is an error, or some other program is used, you will need
to tell the viewer program to use gvim as the editor. On windows
platforms, if you use the commonly available <literal>yap</literal>
viewer (available as part of the miktex distribution), then this
option can be set from <literal>View &gt; Options &gt; Inverse
Search</literal>. In the <literal>Command line:</literal> window,
write
<programlisting>"C:\Program Files\vim\vim61\gvim" -c ":RemoteOpen +%l %f"</programlisting>
(Customize the path according to where you have installed gvim).
If you double click in the view pane now, you will see gvim start
up and take you to the relevant portion of the tex file.
</para>
</section>
</section>
<section id="lsq-conclusions">
<title>Conclusions</title>
<para>
Thats all folks! By now, you should know enough of the basic functions
of latex-suite. Ofcourse, latex-suite is capable of much, much more such
as compiling files multiple times to resolve changed labels, compiling
dependencies, handling user packages and more. To get a feel for that,
you will need to take a look at the <ulink
url="http://vim-latex.sourceforge.net/index.php?subject=manual&amp;title=Manual#user-manual">&ls;
user manual.</ulink>
</para>
</section>
</article>
<!--
vim: et:sw=1:ts=1
-->

View File

@@ -0,0 +1,182 @@
/*
* Authors: Srinath Avadhanula and Mikolaj Machowski
* This style file borrows some elements from main.css, the style file used
* in cream.sf.net
*
* */
P {
font-size : 12pt ;
font-family : helvetica, arial, verdana, sans-serif ;
vertical-align : top;
}
DT {
font-size : 11pt ;
font-family : helvetica, arial, verdana, sans-serif ;
vertical-align : top;
}
LI {
font-size : 12pt ;
font-family : helvetica, arial, verdana, sans-serif ;
vertical-align : top;
}
DIV.header {
margin : 0.5cm ;
width : 800px ;
height : 100
}
.note {
}
TD {
font-size : 11pt ;
font-family : helvetica, arial, verdana, sans-serif ;
vertical-align : top;
}
TD.menu {
text-align : center ;
font-family : verdana, helvetica, sans-serif
}
TD.footright {
text-align : right ;
font-size : 10pt ;
font-family : verdana, helvetica, sans-serif
}
TD.leftpanel {
font-size: 14px ;
font-family: verdana, helvetica, sans-serif ;
vertical-align: top ;
width: 150px;
padding: 15px;
background-color: #88aaaa;
}
TD.mainpanel {
font-size : 12pt ;
font-family : helvetica, arial, verdana, sans-serif ;
vertical-align : top;
padding: 15px;
}
TD.footpanel {
font-size: 12px ;
font-family: verdana, helvetica, sans-serif ;
vertical-align: top ;
text-align: right;
padding: 5px;
background-color: #88aaaa;
}
.navigation {
vertical-align: top;
width: 150px;
padding: 15px;
background-color: #445555;
color: #fffcfc;
}
.navheader {
margin-top: -0.5em;
margin-bottom: 0.5em;
text-align: right;
color: #446644;
font-size: 14px;
font-weight: bold;
}
SPAN.menu {
text-align : center ;
font-size : 12pt ;
font-family : verdana, helvetica, sans-serif
}
DIV.merit {
margin : 0.5cm ;
width : 800px
}
TABLE.meritum {
margin : 0.5cm ;
border : 0
}
.foot {
margin : 0.5cm ;
width : 800px
}
.head {
margin : 0.5cm ;
}
CODE {
font-family: "Andale Mono", "Courier New", "Courier", monospace;
background-color: #eef0f3;
white-space: nowrap;
}
.singlesmall {
font-size: 14px;
}
.doublesmall {
font-size: 12px;
}
DIV.footer {
margin : 0.5cm ;
width : 800px
}
.qa {
margin : 0.5cm ;
font-size : 16px;
font-weight : bold;
}
.ans {
margin : 0.5cm ;
font-weight : normal;
}
H2.hline {
text-align : center ;
font-family : verdana, helvetica, sans-serif
}
A.extlinks {
font-size : 11pt ;
font-family : verdana, helvetica, sans-serif ;
font-weight : bold
}
TT {
font-family: courier,sans-serif;
font-size: 11pt;
}
PRE.programlisting {
font-family: courier,sans-serif;
font-size: 10pt;
background-color:#eef0f3;
border-color: #000000;
border-width: 1px;
border-style: solid;
}
SPAN.conflict {
font-size : small ;
font-family: courier,sans-serif;
color : #DD4444;
}
HR.navig {
color: #446644;
height: 1px;
margin-top: 1em;
border-top: 0px; /* Mozilla work-around to eliminate "groove" */
}
A.question {
color: #000000;
height: 1px;
margin-top: 1em;
border-top: 0px; /* Mozilla work-around to eliminate "groove" */
}
A.question:hover {
color: #000000;
background-color: #eef0f3;
height: 1px;
margin-top: 1em;
border-top: 0px; /* Mozilla work-around to eliminate "groove" */
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns="http://www.w3.org/TR/xhtml1/transitional"
exclude-result-prefixes="#default">
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"/>
<!-- import common customizations -->
<xsl:import href="latex-suite-common.xsl"/>
<xsl:output method="html"
encoding="ISO-8859-1"
indent="no"/>
<!-- insert customization here -->
<xsl:param name="section.autolabel" select="1"/>
<xsl:param name="html.stylesheet" select="'latex-suite.css'"/>
</xsl:stylesheet>

View File

@@ -0,0 +1,619 @@
Alt-B latex-suite.txt /*Alt-B*
Alt-C latex-suite.txt /*Alt-C*
Alt-I latex-suite.txt /*Alt-I*
Alt-L latex-suite.txt /*Alt-L*
IMAP_PutTextWithMovement latex-suite.txt /*IMAP_PutTextWithMovement*
Imap_DeleteEmptyPlaceHolders latex-suite.txt /*Imap_DeleteEmptyPlaceHolders*
Imap_FreezeImap latex-suite.txt /*Imap_FreezeImap*
Imap_GoToSelectMode latex-suite.txt /*Imap_GoToSelectMode*
Imap_PlaceHolderEnd latex-suite.txt /*Imap_PlaceHolderEnd*
Imap_PlaceHolderStart latex-suite.txt /*Imap_PlaceHolderStart*
Imap_StickyPlaceHolders latex-suite.txt /*Imap_StickyPlaceHolders*
Imap_UsePlaceHolders latex-suite.txt /*Imap_UsePlaceHolders*
Plug_IMAP_DeleteAndJumBack latex-suite.txt /*Plug_IMAP_DeleteAndJumBack*
Plug_IMAP_DeleteAndJumpForward latex-suite.txt /*Plug_IMAP_DeleteAndJumpForward*
Plug_IMAP_JumpBack latex-suite.txt /*Plug_IMAP_JumpBack*
Plug_IMAP_JumpForward latex-suite.txt /*Plug_IMAP_JumpForward*
Plug_Tex_InsertItemOnThisLine latex-suite.txt /*Plug_Tex_InsertItemOnThisLine*
Plug_Tex_LeftRight latex-suite.txt /*Plug_Tex_LeftRight*
Plug_Tex_MathBF latex-suite.txt /*Plug_Tex_MathBF*
Plug_Tex_MathCal latex-suite.txt /*Plug_Tex_MathCal*
TLook latex-suite.txt /*TLook*
TLookAll latex-suite.txt /*TLookAll*
TLookBib latex-suite.txt /*TLookBib*
TMacro latex-suite.txt /*TMacro*
TMacroDelete latex-suite.txt /*TMacroDelete*
TMacroEdit latex-suite.txt /*TMacroEdit*
TMacroNew latex-suite.txt /*TMacroNew*
TPackage latex-suite.txt /*TPackage*
TPackageUpdate latex-suite.txt /*TPackageUpdate*
TPackageUpdateAll latex-suite.txt /*TPackageUpdateAll*
TPartComp latex-suite.txt /*TPartComp*
TPartView latex-suite.txt /*TPartView*
TSection latex-suite.txt /*TSection*
TSectionAdvanced latex-suite.txt /*TSectionAdvanced*
TTemplate latex-suite.txt /*TTemplate*
Tex_AutoFolding latex-suite.txt /*Tex_AutoFolding*
Tex_BIBINPUTS latex-suite.txt /*Tex_BIBINPUTS*
Tex_CatchVisMapErrors latex-suite.txt /*Tex_CatchVisMapErrors*
Tex_Com_name latex-suite.txt /*Tex_Com_name*
Tex_Com_name_aliasto latex-suite.txt /*Tex_Com_name_aliasto*
Tex_CompileRule_format latex-suite.txt /*Tex_CompileRule_format*
Tex_CustomTemplateDirectory latex-suite.txt /*Tex_CustomTemplateDirectory*
Tex_Debug latex-suite.txt /*Tex_Debug*
Tex_DefaultTargetFormat latex-suite.txt /*Tex_DefaultTargetFormat*
Tex_Diacritics latex-suite.txt /*Tex_Diacritics*
Tex_EnvEndWithCR latex-suite.txt /*Tex_EnvEndWithCR*
Tex_EnvLabelprefix_name latex-suite.txt /*Tex_EnvLabelprefix_name*
Tex_Env_name latex-suite.txt /*Tex_Env_name*
Tex_Env_name_aliasto latex-suite.txt /*Tex_Env_name_aliasto*
Tex_EnvironmentMaps latex-suite.txt /*Tex_EnvironmentMaps*
Tex_EnvironmentMenus latex-suite.txt /*Tex_EnvironmentMenus*
Tex_ExplorerHeight latex-suite.txt /*Tex_ExplorerHeight*
Tex_FoldedCommands latex-suite.txt /*Tex_FoldedCommands*
Tex_FoldedEnvironments latex-suite.txt /*Tex_FoldedEnvironments*
Tex_FoldedMisc latex-suite.txt /*Tex_FoldedMisc*
Tex_FoldedSections latex-suite.txt /*Tex_FoldedSections*
Tex_Folding latex-suite.txt /*Tex_Folding*
Tex_FontMaps latex-suite.txt /*Tex_FontMaps*
Tex_FontMenus latex-suite.txt /*Tex_FontMenus*
Tex_GotoError latex-suite.txt /*Tex_GotoError*
Tex_HotKeyMappings latex-suite.txt /*Tex_HotKeyMappings*
Tex_IgnoreLevel latex-suite.txt /*Tex_IgnoreLevel*
Tex_IgnoredWarnings latex-suite.txt /*Tex_IgnoredWarnings*
Tex_ImageDir latex-suite.txt /*Tex_ImageDir*
Tex_ItemStyle_environment latex-suite.txt /*Tex_ItemStyle_environment*
Tex_ItemsWithCR latex-suite.txt /*Tex_ItemsWithCR*
Tex_LabelAfterContent latex-suite.txt /*Tex_LabelAfterContent*
Tex_Leader latex-suite.txt /*Tex_Leader*
Tex_Leader2 latex-suite.txt /*Tex_Leader2*
Tex_MainFileExpression latex-suite.txt /*Tex_MainFileExpression*
Tex_MainMenuLocation latex-suite.txt /*Tex_MainMenuLocation*
Tex_MathMenus latex-suite.txt /*Tex_MathMenus*
Tex_MenuPrefix latex-suite.txt /*Tex_MenuPrefix*
Tex_Menus latex-suite.txt /*Tex_Menus*
Tex_MultipleCompileFormats latex-suite.txt /*Tex_MultipleCompileFormats*
Tex_NestElementMenus latex-suite.txt /*Tex_NestElementMenus*
Tex_NestPackagesMenu latex-suite.txt /*Tex_NestPackagesMenu*
Tex_PackagesMenu latex-suite.txt /*Tex_PackagesMenu*
Tex_ProjectSourceFiles latex-suite.txt /*Tex_ProjectSourceFiles*
Tex_PromptedCommands latex-suite.txt /*Tex_PromptedCommands*
Tex_PromptedEnvironments latex-suite.txt /*Tex_PromptedEnvironments*
Tex_RememberCiteSearch latex-suite.txt /*Tex_RememberCiteSearch*
Tex_SectionMaps latex-suite.txt /*Tex_SectionMaps*
Tex_SectionMenus latex-suite.txt /*Tex_SectionMenus*
Tex_SmartKeyBS latex-suite.txt /*Tex_SmartKeyBS*
Tex_SmartKeyQuote latex-suite.txt /*Tex_SmartKeyQuote*
Tex_TEXINPUTS latex-suite.txt /*Tex_TEXINPUTS*
Tex_UseCiteCompletionVer2 latex-suite.txt /*Tex_UseCiteCompletionVer2*
Tex_UseMakefile latex-suite.txt /*Tex_UseMakefile*
Tex_UseMenuWizard latex-suite.txt /*Tex_UseMenuWizard*
Tex_UseOutlineCompletion latex-suite.txt /*Tex_UseOutlineCompletion*
Tex_UsePython latex-suite.txt /*Tex_UsePython*
Tex_UseSimpleLabelSearch latex-suite.txt /*Tex_UseSimpleLabelSearch*
Tex_UseUtfMenus latex-suite.txt /*Tex_UseUtfMenus*
Tex_ViewRuleComplete_format latex-suite.txt /*Tex_ViewRuleComplete_format*
Tex_ViewRule_format latex-suite.txt /*Tex_ViewRule_format*
Tex_ViewerCwindowHeight latex-suite.txt /*Tex_ViewerCwindowHeight*
Tex_ViewerPreviewHeight latex-suite.txt /*Tex_ViewerPreviewHeight*
Tshortcuts latex-suite.txt /*Tshortcuts*
adding-bib-options latex-suite.txt /*adding-bib-options*
altkey-mappings latex-suite.txt /*altkey-mappings*
auc-tex-mappings latex-suite.txt /*auc-tex-mappings*
automatic-package-detection latex-suite.txt /*automatic-package-detection*
bibtex-bindings latex-suite.txt /*bibtex-bindings*
changing-commands latex-suite.txt /*changing-commands*
changing-environments latex-suite.txt /*changing-environments*
compiler-dependency latex-suite.txt /*compiler-dependency*
compiler-output-customization latex-suite.txt /*compiler-output-customization*
compiler-rules latex-suite.txt /*compiler-rules*
compiling-multiple latex-suite.txt /*compiling-multiple*
completion-window-preferences latex-suite.txt /*completion-window-preferences*
custom-macros-menu latex-suite.txt /*custom-macros-menu*
custom-packages latex-suite.txt /*custom-packages*
customize-alt-key-maps latex-suite.txt /*customize-alt-key-maps*
customize-imap-maps latex-suite.txt /*customize-imap-maps*
customizing-compiling latex-suite.txt /*customizing-compiling*
customizing-directories latex-suite.txt /*customizing-directories*
customizing-folding latex-suite.txt /*customizing-folding*
customizing-latex-completion latex-suite.txt /*customizing-latex-completion*
customizing-latex-suite latex-suite.txt /*customizing-latex-suite*
customizing-macros latex-suite.txt /*customizing-macros*
customizing-macros-commands latex-suite.txt /*customizing-macros-commands*
customizing-macros-environments latex-suite.txt /*customizing-macros-environments*
customizing-menus latex-suite.txt /*customizing-menus*
customizing-packages latex-suite.txt /*customizing-packages*
customizing-place-holders latex-suite.txt /*customizing-place-holders*
customizing-smart-keys latex-suite.txt /*customizing-smart-keys*
customizing-viewing latex-suite.txt /*customizing-viewing*
customizing-what-to-fold latex-suite.txt /*customizing-what-to-fold*
default-folding latex-suite.txt /*default-folding*
diacritic-mappings latex-suite.txt /*diacritic-mappings*
enabling-searching latex-suite.txt /*enabling-searching*
enclosing-commands latex-suite.txt /*enclosing-commands*
enclosing-env-f5 latex-suite.txt /*enclosing-env-f5*
enclosing-env-threeletter latex-suite.txt /*enclosing-env-threeletter*
enclosing-environments latex-suite.txt /*enclosing-environments*
environment-mappings latex-suite.txt /*environment-mappings*
external-compiling latex-suite.txt /*external-compiling*
fold-setting-adding latex-suite.txt /*fold-setting-adding*
fold-setting-advanced latex-suite.txt /*fold-setting-advanced*
font-maps latex-suite.txt /*font-maps*
forward-searching latex-suite.txt /*forward-searching*
greek-letter-mappings latex-suite.txt /*greek-letter-mappings*
im_1 imaps.txt /*im_1*
imaps-usage imaps.txt /*imaps-usage*
imaps.txt imaps.txt /*imaps.txt*
imaps.txt-toc imaps.txt /*imaps.txt-toc*
inserting-commands latex-suite.txt /*inserting-commands*
inserting-env-f5 latex-suite.txt /*inserting-env-f5*
inserting-env-shift-f1 latex-suite.txt /*inserting-env-shift-f1*
inserting-env-threeletter latex-suite.txt /*inserting-env-threeletter*
inserting-environments latex-suite.txt /*inserting-environments*
inserting-packages latex-suite.txt /*inserting-packages*
inverse-searching latex-suite.txt /*inverse-searching*
latex-command-maps latex-suite.txt /*latex-command-maps*
latex-compiling latex-suite.txt /*latex-compiling*
latex-completion latex-suite.txt /*latex-completion*
latex-completion-cite latex-suite.txt /*latex-completion-cite*
latex-folding latex-suite.txt /*latex-folding*
latex-macros latex-suite.txt /*latex-macros*
latex-master-file latex-suite.txt /*latex-master-file*
latex-package-scanning latex-suite.txt /*latex-package-scanning*
latex-packages latex-suite.txt /*latex-packages*
latex-project latex-suite.txt /*latex-project*
latex-project-example latex-suite.txt /*latex-project-example*
latex-project-settings latex-suite.txt /*latex-project-settings*
latex-suite-commands latex-suite.txt /*latex-suite-commands*
latex-suite-commands-maps latex-suite.txt /*latex-suite-commands-maps*
latex-suite-credits latex-suite.txt /*latex-suite-credits*
latex-suite-maintainer latex-suite.txt /*latex-suite-maintainer*
latex-suite-maps latex-suite.txt /*latex-suite-maps*
latex-suite-quickstart.txt latex-suite-quickstart.txt /*latex-suite-quickstart.txt*
latex-suite-quickstart.txt-toc latex-suite-quickstart.txt /*latex-suite-quickstart.txt-toc*
latex-suite-templates latex-suite.txt /*latex-suite-templates*
latex-suite.txt latex-suite.txt /*latex-suite.txt*
latex-suite.txt-toc latex-suite.txt /*latex-suite.txt-toc*
latex-viewing latex-suite.txt /*latex-viewing*
latex-viewing-rules latex-suite.txt /*latex-viewing-rules*
lq_1 latex-suite-quickstart.txt /*lq_1*
lq_10 latex-suite-quickstart.txt /*lq_10*
lq_2 latex-suite-quickstart.txt /*lq_2*
lq_3 latex-suite-quickstart.txt /*lq_3*
lq_4 latex-suite-quickstart.txt /*lq_4*
lq_5 latex-suite-quickstart.txt /*lq_5*
lq_6 latex-suite-quickstart.txt /*lq_6*
lq_7 latex-suite-quickstart.txt /*lq_7*
lq_8 latex-suite-quickstart.txt /*lq_8*
lq_8_1 latex-suite-quickstart.txt /*lq_8_1*
lq_9 latex-suite-quickstart.txt /*lq_9*
lq_9_1 latex-suite-quickstart.txt /*lq_9_1*
lq_9_2 latex-suite-quickstart.txt /*lq_9_2*
lq_a_bc latex-suite-quickstart.txt /*lq_a_bc*
lq_a_bd latex-suite-quickstart.txt /*lq_a_bd*
lq_a_be latex-suite-quickstart.txt /*lq_a_be*
lq_a_bf latex-suite-quickstart.txt /*lq_a_bf*
lq_a_bg latex-suite-quickstart.txt /*lq_a_bg*
lq_a_bh latex-suite-quickstart.txt /*lq_a_bh*
lq_a_bi latex-suite-quickstart.txt /*lq_a_bi*
lq_a_bj latex-suite-quickstart.txt /*lq_a_bj*
lq_a_bk latex-suite-quickstart.txt /*lq_a_bk*
lq_a_bl latex-suite-quickstart.txt /*lq_a_bl*
lq_a_bm latex-suite-quickstart.txt /*lq_a_bm*
lq_a_bn latex-suite-quickstart.txt /*lq_a_bn*
lq_a_bo latex-suite-quickstart.txt /*lq_a_bo*
lq_u_1 latex-suite-quickstart.txt /*lq_u_1*
lq_u_2 latex-suite-quickstart.txt /*lq_u_2*
lq_u_3 latex-suite-quickstart.txt /*lq_u_3*
lq_u_4 latex-suite-quickstart.txt /*lq_u_4*
lq_u_5 latex-suite-quickstart.txt /*lq_u_5*
lq_u_6 latex-suite-quickstart.txt /*lq_u_6*
lq_u_7 latex-suite-quickstart.txt /*lq_u_7*
lq_u_8 latex-suite-quickstart.txt /*lq_u_8*
lq_u_9 latex-suite-quickstart.txt /*lq_u_9*
ls-completion-custom latex-suite.txt /*ls-completion-custom*
ls-completion-ref latex-suite.txt /*ls-completion-ref*
ls-filename-completion latex-suite.txt /*ls-filename-completion*
ls-general-purpose-settings latex-suite.txt /*ls-general-purpose-settings*
ls-imap-f7 latex-suite.txt /*ls-imap-f7*
ls-imap-s-f7 latex-suite.txt /*ls-imap-s-f7*
ls-imaps-syntax latex-suite.txt /*ls-imaps-syntax*
ls-new-macros latex-suite.txt /*ls-new-macros*
ls-set-grepprg latex-suite.txt /*ls-set-grepprg*
ls-vmap-f7 latex-suite.txt /*ls-vmap-f7*
ls_1 latex-suite.txt /*ls_1*
ls_10 latex-suite.txt /*ls_10*
ls_10_1 latex-suite.txt /*ls_10_1*
ls_10_1_1 latex-suite.txt /*ls_10_1_1*
ls_10_1_2 latex-suite.txt /*ls_10_1_2*
ls_10_2 latex-suite.txt /*ls_10_2*
ls_10_2_1 latex-suite.txt /*ls_10_2_1*
ls_10_2_10 latex-suite.txt /*ls_10_2_10*
ls_10_2_11 latex-suite.txt /*ls_10_2_11*
ls_10_2_12 latex-suite.txt /*ls_10_2_12*
ls_10_2_13 latex-suite.txt /*ls_10_2_13*
ls_10_2_14 latex-suite.txt /*ls_10_2_14*
ls_10_2_15 latex-suite.txt /*ls_10_2_15*
ls_10_2_16 latex-suite.txt /*ls_10_2_16*
ls_10_2_2 latex-suite.txt /*ls_10_2_2*
ls_10_2_3 latex-suite.txt /*ls_10_2_3*
ls_10_2_4 latex-suite.txt /*ls_10_2_4*
ls_10_2_5 latex-suite.txt /*ls_10_2_5*
ls_10_2_6 latex-suite.txt /*ls_10_2_6*
ls_10_2_7 latex-suite.txt /*ls_10_2_7*
ls_10_2_8 latex-suite.txt /*ls_10_2_8*
ls_10_2_9 latex-suite.txt /*ls_10_2_9*
ls_11 latex-suite.txt /*ls_11*
ls_11_1 latex-suite.txt /*ls_11_1*
ls_11_10 latex-suite.txt /*ls_11_10*
ls_11_10_1 latex-suite.txt /*ls_11_10_1*
ls_11_11 latex-suite.txt /*ls_11_11*
ls_11_11_1 latex-suite.txt /*ls_11_11_1*
ls_11_1_1 latex-suite.txt /*ls_11_1_1*
ls_11_1_2 latex-suite.txt /*ls_11_1_2*
ls_11_2 latex-suite.txt /*ls_11_2*
ls_11_2_1 latex-suite.txt /*ls_11_2_1*
ls_11_2_2 latex-suite.txt /*ls_11_2_2*
ls_11_2_3 latex-suite.txt /*ls_11_2_3*
ls_11_2_4 latex-suite.txt /*ls_11_2_4*
ls_11_2_5 latex-suite.txt /*ls_11_2_5*
ls_11_3 latex-suite.txt /*ls_11_3*
ls_11_3_1 latex-suite.txt /*ls_11_3_1*
ls_11_3_1_1 latex-suite.txt /*ls_11_3_1_1*
ls_11_3_1_2 latex-suite.txt /*ls_11_3_1_2*
ls_11_3_1_3 latex-suite.txt /*ls_11_3_1_3*
ls_11_3_1_4 latex-suite.txt /*ls_11_3_1_4*
ls_11_3_1_5 latex-suite.txt /*ls_11_3_1_5*
ls_11_3_1_6 latex-suite.txt /*ls_11_3_1_6*
ls_11_3_1_7 latex-suite.txt /*ls_11_3_1_7*
ls_11_3_1_8 latex-suite.txt /*ls_11_3_1_8*
ls_11_3_1_9 latex-suite.txt /*ls_11_3_1_9*
ls_11_3_2 latex-suite.txt /*ls_11_3_2*
ls_11_3_2_1 latex-suite.txt /*ls_11_3_2_1*
ls_11_3_2_2 latex-suite.txt /*ls_11_3_2_2*
ls_11_3_2_3 latex-suite.txt /*ls_11_3_2_3*
ls_11_3_2_4 latex-suite.txt /*ls_11_3_2_4*
ls_11_3_3 latex-suite.txt /*ls_11_3_3*
ls_11_3_4 latex-suite.txt /*ls_11_3_4*
ls_11_3_5 latex-suite.txt /*ls_11_3_5*
ls_11_3_6 latex-suite.txt /*ls_11_3_6*
ls_11_3_7 latex-suite.txt /*ls_11_3_7*
ls_11_3_8 latex-suite.txt /*ls_11_3_8*
ls_11_4 latex-suite.txt /*ls_11_4*
ls_11_4_1 latex-suite.txt /*ls_11_4_1*
ls_11_4_2 latex-suite.txt /*ls_11_4_2*
ls_11_5 latex-suite.txt /*ls_11_5*
ls_11_5_1 latex-suite.txt /*ls_11_5_1*
ls_11_5_2 latex-suite.txt /*ls_11_5_2*
ls_11_5_3 latex-suite.txt /*ls_11_5_3*
ls_11_5_4 latex-suite.txt /*ls_11_5_4*
ls_11_5_5 latex-suite.txt /*ls_11_5_5*
ls_11_5_6 latex-suite.txt /*ls_11_5_6*
ls_11_5_7 latex-suite.txt /*ls_11_5_7*
ls_11_6 latex-suite.txt /*ls_11_6*
ls_11_6_1 latex-suite.txt /*ls_11_6_1*
ls_11_6_2 latex-suite.txt /*ls_11_6_2*
ls_11_6_3 latex-suite.txt /*ls_11_6_3*
ls_11_6_4 latex-suite.txt /*ls_11_6_4*
ls_11_6_5 latex-suite.txt /*ls_11_6_5*
ls_11_6_6 latex-suite.txt /*ls_11_6_6*
ls_11_6_7 latex-suite.txt /*ls_11_6_7*
ls_11_6_8 latex-suite.txt /*ls_11_6_8*
ls_11_7 latex-suite.txt /*ls_11_7*
ls_11_7_1 latex-suite.txt /*ls_11_7_1*
ls_11_7_2 latex-suite.txt /*ls_11_7_2*
ls_11_8 latex-suite.txt /*ls_11_8*
ls_11_8_1 latex-suite.txt /*ls_11_8_1*
ls_11_8_2 latex-suite.txt /*ls_11_8_2*
ls_11_8_3 latex-suite.txt /*ls_11_8_3*
ls_11_8_4 latex-suite.txt /*ls_11_8_4*
ls_11_8_5 latex-suite.txt /*ls_11_8_5*
ls_11_8_6 latex-suite.txt /*ls_11_8_6*
ls_11_8_7 latex-suite.txt /*ls_11_8_7*
ls_11_8_8 latex-suite.txt /*ls_11_8_8*
ls_11_9 latex-suite.txt /*ls_11_9*
ls_11_9_1 latex-suite.txt /*ls_11_9_1*
ls_11_9_2 latex-suite.txt /*ls_11_9_2*
ls_12 latex-suite.txt /*ls_12*
ls_2 latex-suite.txt /*ls_2*
ls_3 latex-suite.txt /*ls_3*
ls_3_1 latex-suite.txt /*ls_3_1*
ls_3_10 latex-suite.txt /*ls_3_10*
ls_3_10_1 latex-suite.txt /*ls_3_10_1*
ls_3_10_2 latex-suite.txt /*ls_3_10_2*
ls_3_10_3 latex-suite.txt /*ls_3_10_3*
ls_3_10_4 latex-suite.txt /*ls_3_10_4*
ls_3_11 latex-suite.txt /*ls_3_11*
ls_3_12 latex-suite.txt /*ls_3_12*
ls_3_12_1 latex-suite.txt /*ls_3_12_1*
ls_3_12_2 latex-suite.txt /*ls_3_12_2*
ls_3_1_1 latex-suite.txt /*ls_3_1_1*
ls_3_1_1_1 latex-suite.txt /*ls_3_1_1_1*
ls_3_1_1_2 latex-suite.txt /*ls_3_1_1_2*
ls_3_1_1_3 latex-suite.txt /*ls_3_1_1_3*
ls_3_1_2 latex-suite.txt /*ls_3_1_2*
ls_3_1_2_1 latex-suite.txt /*ls_3_1_2_1*
ls_3_1_2_2 latex-suite.txt /*ls_3_1_2_2*
ls_3_1_3 latex-suite.txt /*ls_3_1_3*
ls_3_2 latex-suite.txt /*ls_3_2*
ls_3_2_1 latex-suite.txt /*ls_3_2_1*
ls_3_2_2 latex-suite.txt /*ls_3_2_2*
ls_3_2_3 latex-suite.txt /*ls_3_2_3*
ls_3_3 latex-suite.txt /*ls_3_3*
ls_3_4 latex-suite.txt /*ls_3_4*
ls_3_5 latex-suite.txt /*ls_3_5*
ls_3_6 latex-suite.txt /*ls_3_6*
ls_3_7 latex-suite.txt /*ls_3_7*
ls_3_8 latex-suite.txt /*ls_3_8*
ls_3_8_1 latex-suite.txt /*ls_3_8_1*
ls_3_9 latex-suite.txt /*ls_3_9*
ls_4 latex-suite.txt /*ls_4*
ls_4_1 latex-suite.txt /*ls_4_1*
ls_4_2 latex-suite.txt /*ls_4_2*
ls_4_3 latex-suite.txt /*ls_4_3*
ls_4_3_1 latex-suite.txt /*ls_4_3_1*
ls_4_4 latex-suite.txt /*ls_4_4*
ls_4_4_1 latex-suite.txt /*ls_4_4_1*
ls_4_4_2 latex-suite.txt /*ls_4_4_2*
ls_5 latex-suite.txt /*ls_5*
ls_5_1 latex-suite.txt /*ls_5_1*
ls_5_2 latex-suite.txt /*ls_5_2*
ls_5_3 latex-suite.txt /*ls_5_3*
ls_5_4 latex-suite.txt /*ls_5_4*
ls_6 latex-suite.txt /*ls_6*
ls_6_1 latex-suite.txt /*ls_6_1*
ls_6_2 latex-suite.txt /*ls_6_2*
ls_6_3 latex-suite.txt /*ls_6_3*
ls_6_4 latex-suite.txt /*ls_6_4*
ls_6_5 latex-suite.txt /*ls_6_5*
ls_6_6 latex-suite.txt /*ls_6_6*
ls_7 latex-suite.txt /*ls_7*
ls_7_1 latex-suite.txt /*ls_7_1*
ls_7_2 latex-suite.txt /*ls_7_2*
ls_7_3 latex-suite.txt /*ls_7_3*
ls_8 latex-suite.txt /*ls_8*
ls_8_1 latex-suite.txt /*ls_8_1*
ls_8_2 latex-suite.txt /*ls_8_2*
ls_8_2_1 latex-suite.txt /*ls_8_2_1*
ls_8_2_2 latex-suite.txt /*ls_8_2_2*
ls_8_2_3 latex-suite.txt /*ls_8_2_3*
ls_8_2_4 latex-suite.txt /*ls_8_2_4*
ls_8_2_5 latex-suite.txt /*ls_8_2_5*
ls_9 latex-suite.txt /*ls_9*
ls_9_1 latex-suite.txt /*ls_9_1*
ls_9_2 latex-suite.txt /*ls_9_2*
ls_a_bA latex-suite.txt /*ls_a_bA*
ls_a_bB latex-suite.txt /*ls_a_bB*
ls_a_bC latex-suite.txt /*ls_a_bC*
ls_a_bD latex-suite.txt /*ls_a_bD*
ls_a_bE latex-suite.txt /*ls_a_bE*
ls_a_bF latex-suite.txt /*ls_a_bF*
ls_a_bG latex-suite.txt /*ls_a_bG*
ls_a_bH latex-suite.txt /*ls_a_bH*
ls_a_bI latex-suite.txt /*ls_a_bI*
ls_a_bJ latex-suite.txt /*ls_a_bJ*
ls_a_bK latex-suite.txt /*ls_a_bK*
ls_a_bL latex-suite.txt /*ls_a_bL*
ls_a_bM latex-suite.txt /*ls_a_bM*
ls_a_bN latex-suite.txt /*ls_a_bN*
ls_a_bO latex-suite.txt /*ls_a_bO*
ls_a_bP latex-suite.txt /*ls_a_bP*
ls_a_bQ latex-suite.txt /*ls_a_bQ*
ls_a_bR latex-suite.txt /*ls_a_bR*
ls_a_bS latex-suite.txt /*ls_a_bS*
ls_a_bT latex-suite.txt /*ls_a_bT*
ls_a_bU latex-suite.txt /*ls_a_bU*
ls_a_bV latex-suite.txt /*ls_a_bV*
ls_a_bW latex-suite.txt /*ls_a_bW*
ls_a_bX latex-suite.txt /*ls_a_bX*
ls_a_bY latex-suite.txt /*ls_a_bY*
ls_a_bZ latex-suite.txt /*ls_a_bZ*
ls_a_bc latex-suite.txt /*ls_a_bc*
ls_a_bd latex-suite.txt /*ls_a_bd*
ls_a_be latex-suite.txt /*ls_a_be*
ls_a_bf latex-suite.txt /*ls_a_bf*
ls_a_bg latex-suite.txt /*ls_a_bg*
ls_a_bh latex-suite.txt /*ls_a_bh*
ls_a_bi latex-suite.txt /*ls_a_bi*
ls_a_bj latex-suite.txt /*ls_a_bj*
ls_a_bk latex-suite.txt /*ls_a_bk*
ls_a_bl latex-suite.txt /*ls_a_bl*
ls_a_bm latex-suite.txt /*ls_a_bm*
ls_a_bn latex-suite.txt /*ls_a_bn*
ls_a_bo latex-suite.txt /*ls_a_bo*
ls_a_bp latex-suite.txt /*ls_a_bp*
ls_a_bq latex-suite.txt /*ls_a_bq*
ls_a_br latex-suite.txt /*ls_a_br*
ls_a_bs latex-suite.txt /*ls_a_bs*
ls_a_bt latex-suite.txt /*ls_a_bt*
ls_a_bu latex-suite.txt /*ls_a_bu*
ls_a_bv latex-suite.txt /*ls_a_bv*
ls_a_bw latex-suite.txt /*ls_a_bw*
ls_a_bx latex-suite.txt /*ls_a_bx*
ls_a_by latex-suite.txt /*ls_a_by*
ls_a_bz latex-suite.txt /*ls_a_bz*
ls_a_cA latex-suite.txt /*ls_a_cA*
ls_a_cB latex-suite.txt /*ls_a_cB*
ls_a_cC latex-suite.txt /*ls_a_cC*
ls_a_cD latex-suite.txt /*ls_a_cD*
ls_a_cE latex-suite.txt /*ls_a_cE*
ls_a_cF latex-suite.txt /*ls_a_cF*
ls_a_cG latex-suite.txt /*ls_a_cG*
ls_a_cH latex-suite.txt /*ls_a_cH*
ls_a_cI latex-suite.txt /*ls_a_cI*
ls_a_cJ latex-suite.txt /*ls_a_cJ*
ls_a_cK latex-suite.txt /*ls_a_cK*
ls_a_cL latex-suite.txt /*ls_a_cL*
ls_a_cM latex-suite.txt /*ls_a_cM*
ls_a_cN latex-suite.txt /*ls_a_cN*
ls_a_cO latex-suite.txt /*ls_a_cO*
ls_a_cP latex-suite.txt /*ls_a_cP*
ls_a_cQ latex-suite.txt /*ls_a_cQ*
ls_a_cR latex-suite.txt /*ls_a_cR*
ls_a_cS latex-suite.txt /*ls_a_cS*
ls_a_cT latex-suite.txt /*ls_a_cT*
ls_a_cU latex-suite.txt /*ls_a_cU*
ls_a_cV latex-suite.txt /*ls_a_cV*
ls_a_cW latex-suite.txt /*ls_a_cW*
ls_a_cX latex-suite.txt /*ls_a_cX*
ls_a_cY latex-suite.txt /*ls_a_cY*
ls_a_cZ latex-suite.txt /*ls_a_cZ*
ls_a_ca latex-suite.txt /*ls_a_ca*
ls_a_cb latex-suite.txt /*ls_a_cb*
ls_a_cc latex-suite.txt /*ls_a_cc*
ls_a_cd latex-suite.txt /*ls_a_cd*
ls_a_ce latex-suite.txt /*ls_a_ce*
ls_a_cf latex-suite.txt /*ls_a_cf*
ls_a_cg latex-suite.txt /*ls_a_cg*
ls_a_ch latex-suite.txt /*ls_a_ch*
ls_a_ci latex-suite.txt /*ls_a_ci*
ls_a_cj latex-suite.txt /*ls_a_cj*
ls_a_ck latex-suite.txt /*ls_a_ck*
ls_a_cl latex-suite.txt /*ls_a_cl*
ls_a_cm latex-suite.txt /*ls_a_cm*
ls_a_cn latex-suite.txt /*ls_a_cn*
ls_a_co latex-suite.txt /*ls_a_co*
ls_a_cp latex-suite.txt /*ls_a_cp*
ls_a_cq latex-suite.txt /*ls_a_cq*
ls_a_cr latex-suite.txt /*ls_a_cr*
ls_a_cs latex-suite.txt /*ls_a_cs*
ls_a_ct latex-suite.txt /*ls_a_ct*
ls_a_cu latex-suite.txt /*ls_a_cu*
ls_a_cv latex-suite.txt /*ls_a_cv*
ls_a_cw latex-suite.txt /*ls_a_cw*
ls_a_cx latex-suite.txt /*ls_a_cx*
ls_a_cy latex-suite.txt /*ls_a_cy*
ls_a_cz latex-suite.txt /*ls_a_cz*
ls_a_dA latex-suite.txt /*ls_a_dA*
ls_a_dB latex-suite.txt /*ls_a_dB*
ls_a_dC latex-suite.txt /*ls_a_dC*
ls_a_dD latex-suite.txt /*ls_a_dD*
ls_a_dE latex-suite.txt /*ls_a_dE*
ls_a_dF latex-suite.txt /*ls_a_dF*
ls_a_dG latex-suite.txt /*ls_a_dG*
ls_a_dH latex-suite.txt /*ls_a_dH*
ls_a_dI latex-suite.txt /*ls_a_dI*
ls_a_dJ latex-suite.txt /*ls_a_dJ*
ls_a_dK latex-suite.txt /*ls_a_dK*
ls_a_dL latex-suite.txt /*ls_a_dL*
ls_a_dM latex-suite.txt /*ls_a_dM*
ls_a_dN latex-suite.txt /*ls_a_dN*
ls_a_dO latex-suite.txt /*ls_a_dO*
ls_a_dP latex-suite.txt /*ls_a_dP*
ls_a_dQ latex-suite.txt /*ls_a_dQ*
ls_a_dR latex-suite.txt /*ls_a_dR*
ls_a_dS latex-suite.txt /*ls_a_dS*
ls_a_dT latex-suite.txt /*ls_a_dT*
ls_a_dU latex-suite.txt /*ls_a_dU*
ls_a_dV latex-suite.txt /*ls_a_dV*
ls_a_dW latex-suite.txt /*ls_a_dW*
ls_a_dX latex-suite.txt /*ls_a_dX*
ls_a_dY latex-suite.txt /*ls_a_dY*
ls_a_dZ latex-suite.txt /*ls_a_dZ*
ls_a_da latex-suite.txt /*ls_a_da*
ls_a_db latex-suite.txt /*ls_a_db*
ls_a_dc latex-suite.txt /*ls_a_dc*
ls_a_dd latex-suite.txt /*ls_a_dd*
ls_a_de latex-suite.txt /*ls_a_de*
ls_a_df latex-suite.txt /*ls_a_df*
ls_a_dg latex-suite.txt /*ls_a_dg*
ls_a_dh latex-suite.txt /*ls_a_dh*
ls_a_di latex-suite.txt /*ls_a_di*
ls_a_dj latex-suite.txt /*ls_a_dj*
ls_a_dk latex-suite.txt /*ls_a_dk*
ls_a_dl latex-suite.txt /*ls_a_dl*
ls_a_dm latex-suite.txt /*ls_a_dm*
ls_a_dn latex-suite.txt /*ls_a_dn*
ls_a_do latex-suite.txt /*ls_a_do*
ls_a_dp latex-suite.txt /*ls_a_dp*
ls_a_dq latex-suite.txt /*ls_a_dq*
ls_a_dr latex-suite.txt /*ls_a_dr*
ls_a_ds latex-suite.txt /*ls_a_ds*
ls_a_dt latex-suite.txt /*ls_a_dt*
ls_a_du latex-suite.txt /*ls_a_du*
ls_a_dv latex-suite.txt /*ls_a_dv*
ls_a_dw latex-suite.txt /*ls_a_dw*
ls_a_dx latex-suite.txt /*ls_a_dx*
ls_a_dy latex-suite.txt /*ls_a_dy*
ls_a_dz latex-suite.txt /*ls_a_dz*
ls_a_eA latex-suite.txt /*ls_a_eA*
ls_a_eB latex-suite.txt /*ls_a_eB*
ls_a_eC latex-suite.txt /*ls_a_eC*
ls_a_eD latex-suite.txt /*ls_a_eD*
ls_a_eE latex-suite.txt /*ls_a_eE*
ls_a_eF latex-suite.txt /*ls_a_eF*
ls_a_eG latex-suite.txt /*ls_a_eG*
ls_a_eH latex-suite.txt /*ls_a_eH*
ls_a_eI latex-suite.txt /*ls_a_eI*
ls_a_eJ latex-suite.txt /*ls_a_eJ*
ls_a_eK latex-suite.txt /*ls_a_eK*
ls_a_eL latex-suite.txt /*ls_a_eL*
ls_a_eM latex-suite.txt /*ls_a_eM*
ls_a_eN latex-suite.txt /*ls_a_eN*
ls_a_eO latex-suite.txt /*ls_a_eO*
ls_a_eP latex-suite.txt /*ls_a_eP*
ls_a_eQ latex-suite.txt /*ls_a_eQ*
ls_a_eR latex-suite.txt /*ls_a_eR*
ls_a_ea latex-suite.txt /*ls_a_ea*
ls_a_eb latex-suite.txt /*ls_a_eb*
ls_a_ec latex-suite.txt /*ls_a_ec*
ls_a_ed latex-suite.txt /*ls_a_ed*
ls_a_ee latex-suite.txt /*ls_a_ee*
ls_a_ef latex-suite.txt /*ls_a_ef*
ls_a_eg latex-suite.txt /*ls_a_eg*
ls_a_eh latex-suite.txt /*ls_a_eh*
ls_a_ei latex-suite.txt /*ls_a_ei*
ls_a_ej latex-suite.txt /*ls_a_ej*
ls_a_ek latex-suite.txt /*ls_a_ek*
ls_a_el latex-suite.txt /*ls_a_el*
ls_a_em latex-suite.txt /*ls_a_em*
ls_a_en latex-suite.txt /*ls_a_en*
ls_a_eo latex-suite.txt /*ls_a_eo*
ls_a_ep latex-suite.txt /*ls_a_ep*
ls_a_eq latex-suite.txt /*ls_a_eq*
ls_a_es latex-suite.txt /*ls_a_es*
ls_a_et latex-suite.txt /*ls_a_et*
ls_a_eu latex-suite.txt /*ls_a_eu*
ls_a_ev latex-suite.txt /*ls_a_ev*
ls_a_ew latex-suite.txt /*ls_a_ew*
ls_a_ex latex-suite.txt /*ls_a_ex*
ls_a_ey latex-suite.txt /*ls_a_ey*
ls_a_ez latex-suite.txt /*ls_a_ez*
ls_u_1 latex-suite.txt /*ls_u_1*
ls_u_10 latex-suite.txt /*ls_u_10*
ls_u_11 latex-suite.txt /*ls_u_11*
ls_u_2 latex-suite.txt /*ls_u_2*
ls_u_3 latex-suite.txt /*ls_u_3*
ls_u_4 latex-suite.txt /*ls_u_4*
ls_u_5 latex-suite.txt /*ls_u_5*
ls_u_6 latex-suite.txt /*ls_u_6*
ls_u_7 latex-suite.txt /*ls_u_7*
ls_u_8 latex-suite.txt /*ls_u_8*
ls_u_9 latex-suite.txt /*ls_u_9*
lsq-compiling latex-suite-quickstart.txt /*lsq-compiling*
lsq-conclusions latex-suite-quickstart.txt /*lsq-conclusions*
lsq-debugging latex-suite-quickstart.txt /*lsq-debugging*
lsq-folding latex-suite-quickstart.txt /*lsq-folding*
lsq-insert-environment latex-suite-quickstart.txt /*lsq-insert-environment*
lsq-inserting-reference latex-suite-quickstart.txt /*lsq-inserting-reference*
lsq-inserting-template latex-suite-quickstart.txt /*lsq-inserting-template*
lsq-keyboard-shortcuts latex-suite-quickstart.txt /*lsq-keyboard-shortcuts*
lsq-lsq-inserting-package latex-suite-quickstart.txt /*lsq-lsq-inserting-package*
lsq-quick-forward-searching latex-suite-quickstart.txt /*lsq-quick-forward-searching*
lsq-quick-inverse-searching latex-suite-quickstart.txt /*lsq-quick-inverse-searching*
lsq-using-tutorial latex-suite-quickstart.txt /*lsq-using-tutorial*
lsq-viewing-dvi latex-suite-quickstart.txt /*lsq-viewing-dvi*
macro-enabling latex-suite.txt /*macro-enabling*
overriding-macros latex-suite.txt /*overriding-macros*
package-actions latex-suite.txt /*package-actions*
part-compiling latex-suite.txt /*part-compiling*
pausing-imaps latex-suite.txt /*pausing-imaps*
place-holder latex-suite.txt /*place-holder*
place-holders latex-suite.txt /*place-holders*
recommended-settings latex-suite.txt /*recommended-settings*
remapping-latex-suite-keys latex-suite.txt /*remapping-latex-suite-keys*
section-mappings latex-suite.txt /*section-mappings*
smart-backspace latex-suite.txt /*smart-backspace*
smart-keys latex-suite.txt /*smart-keys*
supporting-packages latex-suite.txt /*supporting-packages*
why-IMAP latex-suite.txt /*why-IMAP*