Add support for the esint package

* src/LaTeXFeatures.C
	(LaTeXFeatures::getPackages): handle esint and wasysym

	* src/mathed/MathMacroTable.[Ch]
	(requires_): New member: tell the feature this macro requires
	(MacroTable::insert): take new requires arg

	* src/mathed/MathMacroTemplate.C
	(MathMacroTemplate::asMacroData): adjust to change above

	* src/mathed/MathSupport.C
	(fontinfos): add esint10 font

	* src/mathed/InsetMathHull.C
	(InsetMathHull::doDispatch): AMS_ON -> package_on

	* src/mathed/MathMacroTable.h

	* src/mathed/MathFactory.C
	(initSymbols): read and store requires field for symbols

	* src/mathed/InsetMathSymbol.C
	(InsetMathSymbol::metrics): handle esint
	(InsetMathSymbol::takesLimits): ditto

	* src/buffer.C
	(LYX_FORMAT): update format
	(Buffer::validate): handle esint, AMS_ON -> package_on

	* src/bufferparams.C:
	(AMSTranslator): Rename to PackageTranslator
	(BufferParams::readToken): Read \use_esint
	(BufferParams::writeFile): Write \use_esint

	* src/frontends/qt4/QDocumentDialog.C: handle esint

	* src/frontends/qt4/ui/MathsUi.ui : add esint checkboxes

	* src/frontends/qt4/GuiFontLoader.C
	(symbol_fonts: Add esint10 font
	(symbolFamily): handle esint10 font
	(isChosenFont): Add comment

	* src/frontends/controllers/ControlMath.C
	(latex_varsz): Add new integral symbols

	* src/support/fontutils.C
	(win_fonts_truetype): Add esint10 font

	* src/bufferparams.h
	(enum AMS): rename to enum Package
	(use_esint): new parameter

	* src/lyxfont.[Ch]: Add esint font

	* lib/symbols: Add new integral symbols

	* lib/lyx2lyx/LyX.py
	(format_relation): Update format

	* lib/lyx2lyx/lyx_1_5.py: handle new format

	* lib/chkconfig.ltx: Test esint package

	* lib/images/math/oiintop.xpm
	* lib/images/math/sqintop.xpm
	* lib/images/math/sqint.xpm
	* lib/images/math/ointctrclockwiseop.xpm
	* lib/images/math/ointctrclockwise.xpm
	* lib/images/math/iiintop.xpm
	* lib/images/math/iintop.xpm
	* lib/images/math/sqiint.xpm
	* lib/images/math/iiint.xpm
	* lib/images/math/ointclockwiseop.xpm
	* lib/images/math/oiint.xpm
	* lib/images/math/dotsintop.xpm
	* lib/images/math/sqiintop.xpm
	* lib/images/math/ointclockwise.xpm
	* lib/images/math/iiiintop.xpm
	* lib/images/math/dotsint.xpm
	* lib/images/math/iiiint.xpm
	* lib/images/math/iint.xpm: new icons

	* lib/doc/LaTeXConfig.lyx.in: Add docs for esint package

	* lib/doc/UserGuide.lyx: Add short documentation of integral symbols

	* lib/Makefile.am: Add new files

	* development/scons/scons_manifest.py: ditto


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15907 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Georg Baum 2006-11-13 17:35:18 +00:00
parent 3b91a07daa
commit 2db7521b70
46 changed files with 1110 additions and 68 deletions

View File

@ -16,10 +16,6 @@ Prizes (donated by Michael):
PENDING FEATURES:
-----------------
* esint (GBaum)
* navigate through child docs (GBaum)
BUGS:
-----

View File

@ -1,6 +1,12 @@
LyX file-format changes
-----------------------§
2006-11-13 Georg Baum <Georg.Baum@post.rwth-aachen.de>
* format incremented to 254: new header parameter \use_esint.
It can have the same values as \use_amsmath: 0 (off), 1 (auto) and
2 (on).
2006-10-18 Georg Baum <Georg.Baum@post.rwth-aachen.de>
* format incremented to 253: new nomenclature and printnomenclature

View File

@ -1645,6 +1645,8 @@ lib_images_math_files = Split('''
dot.xpm
doteq.xpm
doteqdot.xpm
dotsint.xpm
dotsintop.xpm
dotplus.xpm
doublebarwedge.xpm
downarrow.xpm
@ -1695,6 +1697,12 @@ lib_images_math_files = Split('''
hookrightarrow.xpm
hphantom.xpm
hslash.xpm
iiiint.xpm
iiiintop.xpm
iiint.xpm
iiintop.xpm
iintop.xpm
iint.xpm
imath.xpm
in.xpm
infty.xpm
@ -1824,7 +1832,13 @@ lib_images_math_files = Split('''
nvdash3.xpm
nwarrow.xpm
odot.xpm
oiint.xpm
oiintop.xpm
oint.xpm
ointclockwise.xpm
ointclockwiseop.xpm
ointctrclockwise.xpm
ointctrclockwiseop.xpm
ointop.xpm
omega.xpm
omega2.xpm
@ -1898,6 +1912,10 @@ lib_images_math_files = Split('''
sphericalangle.xpm
sqcap.xpm
sqcup.xpm
sqiint.xpm
sqiintop.xpm
sqint.xpm
sqintop.xpm
sqrt.xpm
sqsubset.xpm
sqsubseteq.xpm

View File

@ -378,6 +378,8 @@ dist_imagesmath_DATA = \
images/math/doteq.xpm \
images/math/doteqdot.xpm \
images/math/dotplus.xpm \
images/math/dotsint.xpm \
images/math/dotsintop.xpm \
images/math/doublebarwedge.xpm \
images/math/downarrow.xpm \
images/math/downarrow2.xpm \
@ -427,6 +429,12 @@ dist_imagesmath_DATA = \
images/math/hookrightarrow.xpm \
images/math/hphantom.xpm \
images/math/hslash.xpm \
images/math/iiiint.xpm \
images/math/iiiintop.xpm \
images/math/iiint.xpm \
images/math/iiintop.xpm \
images/math/iint.xpm \
images/math/iintop.xpm \
images/math/imath.xpm \
images/math/in.xpm \
images/math/infty.xpm \
@ -556,7 +564,13 @@ dist_imagesmath_DATA = \
images/math/nvdash3.xpm \
images/math/nwarrow.xpm \
images/math/odot.xpm \
images/math/oiint.xpm \
images/math/oiintop.xpm \
images/math/oint.xpm \
images/math/ointclockwise.xpm \
images/math/ointclockwiseop.xpm \
images/math/ointctrclockwise.xpm \
images/math/ointctrclockwiseop.xpm \
images/math/ointop.xpm \
images/math/omega.xpm \
images/math/omega2.xpm \
@ -630,6 +644,10 @@ dist_imagesmath_DATA = \
images/math/sphericalangle.xpm \
images/math/sqcap.xpm \
images/math/sqcup.xpm \
images/math/sqiint.xpm \
images/math/sqiintop.xpm \
images/math/sqint.xpm \
images/math/sqintop.xpm \
images/math/sqrt.xpm \
images/math/sqsubset.xpm \
images/math/sqsubseteq.xpm \

View File

@ -214,6 +214,7 @@
\TestPackage{booktabs}
\TestPackage{color} % this one should be there if graphics.sty is there.
\TestPackage{dvipost}
\TestPackage{esint}
\TestPackage{fancybox}
\TestPackage{fancyhdr}
\TestPackage{floatflt}

View File

@ -2399,7 +2399,7 @@ Notes: The package
\family sans
color
\family default
is needed by LyX to handled colored text.
is needed by LyX to handle colored text.
These colors will not show in the DVI preview window, but will be correct
on the printed output or with a PostScript® previewer.
This package is bundled with the
@ -2682,6 +2682,43 @@ dvipost
needs teTeX version 2 or newer.
\end_layout
\begin_layout Subsection
esint
\end_layout
\begin_layout Description
Found: @chk_esint@
\end_layout
\begin_layout Description
CTAN:
\family typewriter
macros/latex/contrib/esint/
\end_layout
\begin_layout Description
Notes: The package
\family sans
esint
\family default
is used to typeset mathematical integral signs.
The most commonly used integral signs can be typeset without this package,
but they do not always look consistent, since they come from different
fonts.
The
\family sans
esint
\family default
package offers a consistent look of all integral symbols, and more advanced
integrals such as the triple integral
\family typewriter
\backslash
iiint
\family default
.
\end_layout
\begin_layout Subsection
fancybox
\end_layout

View File

@ -1,4 +1,4 @@
#LyX 1.4.3svn created this file. For more info see http://www.lyx.org/
#LyX 1.4.4svn created this file. For more info see http://www.lyx.org/
\lyxformat 245
\begin_document
\begin_header
@ -16,6 +16,7 @@
% provides missing characters,
% see note in chapter 'Character Tables'
\usepackage{textcomp}
\usepackage{wasysym}
\usepackage{ifpdf} % part of the hyperref bundle
\ifpdf % if pdflatex is used
@ -18669,6 +18670,104 @@ functions
.
\end_layout
\begin_layout Subsubsection
Special integral symbols
\end_layout
\begin_layout Standard
Standard LaTeX does only provide a very limited set of integral symbols.
Therefore several packages implement additional symbols, e.g.\InsetSpace ~
moredimensional
integrals like
\begin_inset Formula $\iint$
\end_inset
(
\family typewriter
\backslash
iint
\family default
).
Unfortunately they do not always look consistent, e.g.\InsetSpace ~
the
\family typewriter
\begin_inset Formula $\iint$
\end_inset
(
\backslash
iint)
\family default
symbol from the
\family typewriter
wasysym
\family default
package looks like
\family typewriter
\begin_inset Formula $\varint$
\end_inset
(
\backslash
varint
\family default
), not
\family typewriter
\begin_inset Formula $\int$
\end_inset
(
\backslash
int
\family default
).
Therefore you should enable the automatic loading of the
\family typewriter
esint
\family default
package in
\family sans
\bar under
D
\bar default
ocument\SpecialChar \menuseparator
\bar under
S
\bar default
ettings
\family default
if you need special integrals.
This package defines a complete set of consistent looking integral symbols.
You can find most of them in the math panel.
This document does use the
\family typewriter
wasysym
\family default
package instead of the
\family typewriter
esint
\family default
package, because the latter is not yet included in all TeX distributions,
so you can see the different looking integral symbols using
\family sans
\bar under
V
\bar default
iew\SpecialChar \menuseparator
\bar under
D
\bar default
VI
\family default
.
\end_layout
\begin_layout Subsection
The Math Panel
\begin_inset LatexCommand \label{sec:math-panel}

View File

@ -0,0 +1,35 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"40 26 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXXX...XXXXXXXXXXXXXXXXXXXX...XXXX",
"XXXXXXXXX.....XXXXXXXXXXXXXXXXXX.....XXX",
"XXXXXXXX..XXX.XXXXXXXXXXXXXX.XX..XXX.XXX",
"XXXXXXXX..XX..XXXXXXXXXXXXX..XX..XX..XXX",
"XXXXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXX",
"XXXXXXX..XXXX..XXX..XXX..XXXXX..XXXXXXXX",
"XXXXXX..XXXXX..XXX..XXX..XXXX..XXXXXXXXX",
"XXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXXX",
"XXXXX..XXXXXXXXXXXXXXXXXXXXX..XX.X.X.X.X",
"X..XX..XXXXXXXXXXXXXXXXX..XX..XXXXXXXXXX",
"X.XXX..XXXXXXXXXXXXXXXXX.XXX..XX.XXXXX.X",
"X.....XXXXXXXXXXXXXXXXXX.....XXXXXXXXXXX",
"XX...XXXXXXXXXXXXXXXXXXXX...XXXX.X.X.X.X"
};

View File

@ -0,0 +1,41 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"39 32 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXXX...XXXXXXXXXXXXXXXXXXXX...XXX",
"XXXXXXXXX.....XXXXXXXXXXXXXXXXXX.....XX",
"XXXXXXXX..XXX.XXXXXXXXXXXXXX.XX..XXX.XX",
"XXXXXXXX..XX..XXXXXXXXXXXXX..XX..XX..XX",
"XXXXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXX",
"XXXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXX",
"XXXXXXX..XXXX..XXX..XXX..XXXXX..XXXXXXX",
"XXXXXX..XXXXX..XXX..XXX..XXXX..XXXXXXXX",
"XXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXX",
"XXXXX..XXXXXXXXXXXXXXXXXXXXX..XXXXXXXXX",
"X..XX..XXXXXXXXXXXXXXXXX..XX..XXXXXXXXX",
"X.XXX..XXXXXXXXXXXXXXXXX.XXX..XXXXXXXXX",
"X.....XXXXXXXXXXXXXXXXXX.....XXXXXXXXXX",
"XX...XXXXXXXXXXXXXXXXXXXX...XXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX.X.X.X.XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX.XXXXX.XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX.X.X.X.XXXXXXXXXXXXXXXX"
};

View File

@ -0,0 +1,35 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"41 26 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXXX...XXXXX...XXXXX...XXXXX...XXXX",
"XXXXXXXXX.....XXX.....XXX.....XXX.....XXX",
"XXXXXXXX..XXX.XX..XXX.XX..XXX.XX..XXX.XXX",
"XXXXXXXX..XX..XX..XX..XX..XX..XX..XX..XXX",
"XXXXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXX",
"XXXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXX..XXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXXX",
"XXXXX..XXXXXX..XXXXXX..XXXXXX..XX.X.X.X.X",
"X..XX..XX..XX..XX..XX..XX..XX..XXXXXXXXXX",
"X.XXX..XX.XXX..XX.XXX..XX.XXX..XX.XXXXX.X",
"X.....XXX.....XXX.....XXX.....XXXXXXXXXXX",
"XX...XXXXX...XXXXX...XXXXX...XXXX.X.X.X.X"
};

View File

@ -0,0 +1,41 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"41 32 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXXX...XXXXX...XXXXX...XXXXX...XXXX",
"XXXXXXXXX.....XXX.....XXX.....XXX.....XXX",
"XXXXXXXX..XXX.XX..XXX.XX..XXX.XX..XXX.XXX",
"XXXXXXXX..XX..XX..XX..XX..XX..XX..XX..XXX",
"XXXXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXX",
"XXXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXX..XXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXXX",
"XXXXX..XXXXXX..XXXXXX..XXXXXX..XXXXXXXXXX",
"X..XX..XX..XX..XX..XX..XX..XX..XXXXXXXXXX",
"X.XXX..XX.XXX..XX.XXX..XX.XXX..XXXXXXXXXX",
"X.....XXX.....XXX.....XXX.....XXXXXXXXXXX",
"XX...XXXXX...XXXXX...XXXXX...XXXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX.X.X.X.XXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX.XXXXX.XXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX.X.X.X.XXXXXXXXXXXXXXXXXX"
};

35
lib/images/math/iiint.xpm Normal file
View File

@ -0,0 +1,35 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"35 26 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXXX...XXXXXX...XXXXXX...XXXX",
"XXXXXXXXX.....XXXX.....XXXX.....XXX",
"XXXXXXXX..XXX.XXX..XXX.XXX..XXX.XXX",
"XXXXXXXX..XX..XXX..XX..XXX..XX..XXX",
"XXXXXXXX..XXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX..XXXXXXXXX",
"XXXXX..XXXXXXX..XXXXXXX..XX.X.X.X.X",
"X..XX..XXX..XX..XXX..XX..XXXXXXXXXX",
"X.XXX..XXX.XXX..XXX.XXX..XX.XXXXX.X",
"X.....XXXX.....XXXX.....XXXXXXXXXXX",
"XX...XXXXXX...XXXXXX...XXXX.X.X.X.X"
};

View File

@ -0,0 +1,41 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"34 32 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXXX...XXXXXX...XXXXXX...XXX",
"XXXXXXXXX.....XXXX.....XXXX.....XX",
"XXXXXXXX..XXX.XXX..XXX.XXX..XXX.XX",
"XXXXXXXX..XX..XXX..XX..XXX..XX..XX",
"XXXXXXXX..XXXXXXX..XXXXXXX..XXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXX..XXXXXXX..XXXXXXX..XXXXXXXXX",
"X..XX..XXX..XX..XXX..XX..XXXXXXXXX",
"X.XXX..XXX.XXX..XXX.XXX..XXXXXXXXX",
"X.....XXXX.....XXXX.....XXXXXXXXXX",
"XX...XXXXXX...XXXXXX...XXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXX.X.X.X.XXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXX.XXXXX.XXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXX.X.X.X.XXXXXXXXXXXXXX"
};

35
lib/images/math/iint.xpm Normal file
View File

@ -0,0 +1,35 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"26 26 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXXX...XXXXXX...XXXX",
"XXXXXXXXX.....XXXX.....XXX",
"XXXXXXXX..XXX.XXX..XXX.XXX",
"XXXXXXXX..XX..XXX..XX..XXX",
"XXXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXXXX",
"XXXXX..XXXXXXX..XX.X.X.X.X",
"X..XX..XXX..XX..XXXXXXXXXX",
"X.XXX..XXX.XXX..XX.XXXXX.X",
"X.....XXXX.....XXXXXXXXXXX",
"XX...XXXXXX...XXXX.X.X.X.X"
};

View File

@ -0,0 +1,41 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"25 32 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXXX...XXXXXX...XXX",
"XXXXXXXXX.....XXXX.....XX",
"XXXXXXXX..XXX.XXX..XXX.XX",
"XXXXXXXX..XX..XXX..XX..XX",
"XXXXXXXX..XXXXXXX..XXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXXX",
"XXXXX..XXXXXXX..XXXXXXXXX",
"X..XX..XXX..XX..XXXXXXXXX",
"X.XXX..XXX.XXX..XXXXXXXXX",
"X.....XXXX.....XXXXXXXXXX",
"XX...XXXXXX...XXXXXXXXXXX"
"XXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXX.X.X.X.XXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXX.XXXXX.XXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXX.X.X.X.XXXXXXXXX"
};

35
lib/images/math/oiint.xpm Normal file
View File

@ -0,0 +1,35 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"24 26 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXX...XXXXXX...XXX",
"XXXXXXXX.....XXXX.....XX",
"XXXXXXX..XXX.XXX..XXX.XX",
"XXXXXXX..XX..XXX..XX..XX",
"XXXXXXX..XXXXXXX..XXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX",
"XXXX..............XXXXXX",
"XX...X..XXXXXXX....XXXXX",
"X..XXX..XXXXXXX..XX.XXXX",
"X..XXX..XXXXXXX..XX.XXXX",
"X..XX..XXXXXXX..XXX.XXXX",
"X...X..XXXXXXX..XXX.XXXX",
"XX.....XXXXXXX..X..XXXXX",
"XXXX.............XXXXXXX",
"XXXXX..XXXXXXX..XXXXXXXX",
"XXXXX..XXXXXXX..XXXXXXXX",
"XXXXX..XXXXXXX..XXXXXXXX",
"XXXXX..XXXXXXX..XXXXXXXX",
"XXXX..XXXXXXX..XX.X.X.X.",
"..XX..XXX..XX..XXXXXXXXX",
".XXX..XXX.XXX..XX.XXXXX.",
".....XXXX.....XXXXXXXXXX",
"X...XXXXXX...XXXX.X.X.X."
};

View File

@ -0,0 +1,41 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"24 32 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXX...XXXXXX...XXX",
"XXXXXXXX.....XXXX.....XX",
"XXXXXXX..XXX.XXX..XXX.XX",
"XXXXXXX..XX..XXX..XX..XX",
"XXXXXXX..XXXXXXX..XXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX",
"XXXX..............XXXXXX",
"XX...X..XXXXXXX....XXXXX",
"X..XXX..XXXXXXX..XX.XXXX",
"X..XXX..XXXXXXX..XX.XXXX",
"X..XX..XXXXXXX..XXX.XXXX",
"X...X..XXXXXXX..XXX.XXXX",
"XX.....XXXXXXX..X..XXXXX",
"XXXX.............XXXXXXX",
"XXXXX..XXXXXXX..XXXXXXXX",
"XXXXX..XXXXXXX..XXXXXXXX",
"XXXXX..XXXXXXX..XXXXXXXX",
"XXXXX..XXXXXXX..XXXXXXXX",
"XXXX..XXXXXXX..XXXXXXXXX",
"..XX..XXX..XX..XXXXXXXXX",
".XXX..XXX.XXX..XXXXXXXXX",
".....XXXX.....XXXXXXXXXX",
"X...XXXXXX...XXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXX.X.X.X.XXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXX.XXXXX.XXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXX.X.X.X.XXXXXXXXX"
};

View File

@ -0,0 +1,35 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"16 26 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXXX...XXX",
"XXXXXXXXX.....XX",
"XXXXXXXX..XXX.XX",
"XXXXXXXX..XX..XX",
"XXXXXXXX..XXXXXX",
"XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX",
"XXXXXXX..XXXXXXX",
"XXXXX.....XXXXXX",
"XXX...X....XXXXX",
"XX.XXXX..XX.XXXX",
"X...XXX..XX.XXXX",
".X.X.X..XXX.XXXX",
"XX.XXX..XXX.XXXX",
"XXX.....X..XXXXX",
"XXXXX....XXXXXXX",
"XXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXXX",
"XXXXXX..XXXXXXXX",
"XXXXX..XX.X.X.X.",
"X..XX..XXXXXXXXX",
"X.XXX..XX.XXXXX.",
"X.....XXXXXXXXXX",
"XX...XXXX.X.X.X."
};

View File

@ -0,0 +1,41 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"15 32 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXXX...XX",
"XXXXXXXXX.....X",
"XXXXXXXX..XXX.X",
"XXXXXXXX..XX..X",
"XXXXXXXX..XXXXX",
"XXXXXXX..XXXXXX",
"XXXXXXX..XXXXXX",
"XXXXXXX..XXXXXX",
"XXXXXXX..XXXXXX",
"XXXXX.....XXXXX",
"XXX...X....XXXX",
"XX.XXXX..XX.XXX",
"X...XXX..XX.XXX",
".X.X.X..XXX.XXX",
"XX.XXX..XXX.XXX",
"XXX.....X..XXXX",
"XXXXX....XXXXXX",
"XXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX",
"XXXXX..XXXXXXXX",
"X..XX..XXXXXXXX",
"X.XXX..XXXXXXXX",
"X.....XXXXXXXXX",
"XX...XXXXXXXXXX"
"XXXXXXXXXXXXXXX",
"XXXX.X.X.X.XXXX",
"XXXXXXXXXXXXXXX",
"XXXX.XXXXX.XXXX",
"XXXXXXXXXXXXXXX",
"XXXX.X.X.X.XXXX",
};

View File

@ -0,0 +1,35 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"15 26 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXX...XXX",
"XXXXXXXX.....XX",
"XXXXXXX..XXX.XX",
"XXXXXXX..XX..XX",
"XXXXXXX..XXXXXX",
"XXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX",
"XXXX.....XXXXXX",
"XX...X....XXXXX",
"X..XXX..XX.XXXX",
"X..XXX..X...XXX",
"X..XX..X.X.X.XX",
"X...X..XXX.XXXX",
"XX.....X..XXXXX",
"XXXX....XXXXXXX",
"XXXXX..XXXXXXXX",
"XXXXX..XXXXXXXX",
"XXXXX..XXXXXXXX",
"XXXXX..XXXXXXXX",
"XXXX..XX.X.X.X.",
"..XX..XXXXXXXXX",
".XXX..XX.XXXXX.",
".....XXXXXXXXXX",
"X...XXXX.X.X.X."
};

View File

@ -0,0 +1,41 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"15 32 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXX...XXX",
"XXXXXXXX.....XX",
"XXXXXXX..XXX.XX",
"XXXXXXX..XX..XX",
"XXXXXXX..XXXXXX",
"XXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX",
"XXXX.....XXXXXX",
"XX...X....XXXXX",
"X..XXX..XX.XXXX",
"X..XXX..X...XXX",
"X..XX..X.X.X.XX",
"X...X..XXX.XXXX",
"XX.....X..XXXXX",
"XXXX....XXXXXXX",
"XXXXX..XXXXXXXX",
"XXXXX..XXXXXXXX",
"XXXXX..XXXXXXXX",
"XXXXX..XXXXXXXX",
"XXXX..XXXXXXXXX",
"..XX..XXXXXXXXX",
".XXX..XXXXXXXXX",
".....XXXXXXXXXX",
"X...XXXXXXXXXXX",
"XXXXXXXXXXXXXXX",
"XXXX.X.X.X.XXXX",
"XXXXXXXXXXXXXXX",
"XXXX.XXXXX.XXXX",
"XXXXXXXXXXXXXXX",
"XXXX.X.X.X.XXXX"
};

View File

@ -0,0 +1,35 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"24 26 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXX...XXXXXX...XXX",
"XXXXXXXX.....XXXX.....XX",
"XXXXXXX..XXX.XXX..XXX.XX",
"XXXXXXX..XX..XXX..XX..XX",
"XXXXXXX..XXXXXXX..XXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX",
"X...................XXXX",
"X.XXXX..XXXXXXX..XX.XXXX",
"X.XXXX..XXXXXXX..XX.XXXX",
"X.XXXX..XXXXXXX..XX.XXXX",
"X.XXX..XXXXXXX..XXX.XXXX",
"X.XXX..XXXXXXX..XXX.XXXX",
"X.XXX..XXXXXXX..XXX.XXXX",
"X...................XXXX",
"XXXXX..XXXXXXX..XXXXXXXX",
"XXXXX..XXXXXXX..XXXXXXXX",
"XXXXX..XXXXXXX..XXXXXXXX",
"XXXXX..XXXXXXX..XXXXXXXX",
"XXXX..XXXXXXX..XX.X.X.X.",
"..XX..XXX..XX..XXXXXXXXX",
".XXX..XXX.XXX..XX.XXXXX.",
".....XXXX.....XXXXXXXXXX",
"X...XXXXXX...XXXX.X.X.X."
};

View File

@ -0,0 +1,41 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"24 32 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXX...XXXXXX...XXX",
"XXXXXXXX.....XXXX.....XX",
"XXXXXXX..XXX.XXX..XXX.XX",
"XXXXXXX..XX..XXX..XX..XX",
"XXXXXXX..XXXXXXX..XXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX..XXXXXXX",
"X....................XXX",
"X.XXXX..XXXXXXX..XXX.XXX",
"X.XXXX..XXXXXXX..XXX.XXX",
"X.XXXX..XXXXXXX..XXX.XXX",
"X.XXX..XXXXXXX..XXXX.XXX",
"X.XXX..XXXXXXX..XXXX.XXX",
"X.XXX..XXXXXXX..XXXX.XXX",
"X....................XXX",
"XXXXX..XXXXXXX..XXXXXXXX",
"XXXXX..XXXXXXX..XXXXXXXX",
"XXXXX..XXXXXXX..XXXXXXXX",
"XXXXX..XXXXXXX..XXXXXXXX",
"XXXX..XXXXXXX..XXXXXXXXX",
"..XX..XXX..XX..XXXXXXXXX",
".XXX..XXX.XXX..XXXXXXXXX",
".....XXXX.....XXXXXXXXXX",
"X...XXXXXX...XXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXX.X.X.X.XXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXX.XXXXX.XXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXX.X.X.X.XXXXXXXXX"
};

35
lib/images/math/sqint.xpm Normal file
View File

@ -0,0 +1,35 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"15 26 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXX...XXX",
"XXXXXXXX.....XX",
"XXXXXXX..XXX.XX",
"XXXXXXX..XX..XX",
"XXXXXXX..XXXXXX",
"XXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX",
"XXXXXX..XXXXXXX",
"X...........XXX",
"X.XXXX..XXX.XXX",
"X.XXXX..XXX.XXX",
"X.XXXX..XXX.XXX",
"X.XXX..XXXX.XXX",
"X.XXX..XXXX.XXX",
"X.XXX..XXXX.XXX",
"X...........XXX",
"XXXXX..XXXXXXXX",
"XXXXX..XXXXXXXX",
"XXXXX..XXXXXXXX",
"XXXXX..XXXXXXXX",
"XXXX..XX.X.X.X.",
"..XX..XXXXXXXXX",
".XXX..XX.XXXXX.",
".....XXXXXXXXXX",
"X...XXXX.X.X.X."
};

View File

@ -0,0 +1,41 @@
/* XPM */
static char *a[] = {
/* columns rows colors chars-per-pixel */
"13 32 3 1",
" c #000000",
". c #000000",
"X c None",
/* pixels */
"XXXXXXXXX...X",
"XXXXXXXX.....",
"XXXXXXX..XXX.",
"XXXXXXX..XX..",
"XXXXXXX..XXXX",
"XXXXXX..XXXXX",
"XXXXXX..XXXXX",
"XXXXXX..XXXXX",
"XXXXXX..XXXXX",
"X...........X",
"X.XXXX..XXX.X",
"X.XXXX..XXX.X",
"X.XXXX..XXX.X",
"X.XXX..XXXX.X",
"X.XXX..XXXX.X",
"X.XXX..XXXX.X",
"X...........X",
"XXXXX..XXXXXX",
"XXXXX..XXXXXX",
"XXXXX..XXXXXX",
"XXXXX..XXXXXX",
"XXXX..XXXXXXX",
"..XX..XXXXXXX",
".XXX..XXXXXXX",
".....XXXXXXXX",
"X...XXXXXXXXX",
"XXXXXXXXXXXXX",
"XXX.X.X.X.XXX",
"XXXXXXXXXXXXX",
"XXX.XXXXX.XXX",
"XXXXXXXXXXXXX",
"XXX.X.X.X.XXX",
};

View File

@ -73,7 +73,7 @@ format_relation = [("0_06", [200], generate_minor_versions("0.6" , 4)),
("1_2", [220], generate_minor_versions("1.2" , 4)),
("1_3", [221], generate_minor_versions("1.3" , 7)),
("1_4", range(222,246), generate_minor_versions("1.4" , 3)),
("1_5", range(246,254), generate_minor_versions("1.5" , 0))]
("1_5", range(246,255), generate_minor_versions("1.5" , 0))]
def formats_list():

View File

@ -584,6 +584,29 @@ def revert_printnomenclature(document):
document.preamble.append('\\makenomenclature')
def convert_esint(document):
" Add \\use_esint setting to header. "
i = find_token(document.header, "\\cite_engine", 0)
if i == -1:
document.warning("Malformed LyX document: Missing `\\cite_engine'.")
return
# 0 is off, 1 is auto, 2 is on.
document.header.insert(i, '\\use_esint 0')
def revert_esint(document):
" Remove \\use_esint setting from header. "
i = find_token(document.header, "\\use_esint", 0)
if i == -1:
document.warning("Malformed LyX document: Missing `\\use_esint'.")
return
use_esint = document.header[i].split()[1]
del document.header[i]
# 0 is off, 1 is auto, 2 is on.
if (use_esint == 2):
document.preamble.append('\\usepackage{esint}')
##
# Conversion hub
#
@ -596,9 +619,11 @@ convert = [[246, []],
[250, []],
[251, []],
[252, [convert_commandparams, convert_bibitem]],
[253, []]]
[253, []],
[254, [convert_esint]]]
revert = [[252, [revert_nomenclature, revert_printnomenclature]],
revert = [[253, [revert_esint]],
[252, [revert_nomenclature, revert_printnomenclature]],
[251, [revert_commandparams]],
[250, [revert_cs_label]],
[249, []],

View File

@ -245,15 +245,11 @@ bigwedge cmex 86 0 mathop x
biguplus cmex 85 0 mathop x
bigcap cmex 84 0 mathop x
bigcup cmex 83 0 mathop x
int cmex 82 242 mathop &int;
intop cmex 82 242 mathop &int;
prod cmex 81 213 mathop x
sum cmex 80 229 mathop x
bigotimes cmex 78 0 mathop x
bigoplus cmex 76 0 mathop x
bigodot cmex 74 0 mathop x
oint cmex 72 0 mathop x
ointop cmex 72 0 mathop x
bigsqcup cmex 70 0 mathop x
smallint cmsy 115 0 mathop x
triangleleft cmm 47 0 mathbin x
@ -757,10 +753,76 @@ invneg wasy 24 0 mathrel x
ocircle wasy 35 0 mathbin x
logof wasy 22 0 mathrel x
varint wasy 114 0 mathop x
iint wasy 115 0 mathop x
iiint wasy 116 0 mathop x
varoint wasy 117 0 mathop x
oiint wasy 118 0 mathop x
# From the esint package:
# We emulate some symbols if the esint10 font is not available.
# It is important that they have the same requirements in both cases,
# otherwise the LaTeX output would depend on the availability of the esint10
# font in the GUI
iffont esint
int esint 001 0 mathop &int; esint
intop esint 001 0 mathop &int; esint
iint esint 003 0 mathop x esint
iintop esint 003 0 mathop x esint
iiint esint 005 0 mathop x esint
iiintop esint 005 0 mathop x esint
iiiint esint 007 0 mathop x esint
iiiintop esint 007 0 mathop x esint
dotsint esint 009 0 mathop x esint
dotsintop esint 009 0 mathop x esint
oint esint 011 0 mathop x esint
ointop esint 011 0 mathop x esint
oiint esint 013 0 mathop x esint
oiintop esint 013 0 mathop x esint
sqint esint 015 0 mathop x esint
sqintop esint 015 0 mathop x esint
sqiint esint 017 0 mathop x esint
sqiintop esint 017 0 mathop x esint
ointctrclockwise esint 023 0 mathop x esint
ointctrclockwiseop esint 023 0 mathop x esint
ointclockwise esint 025 0 mathop x esint
ointclockwiseop esint 025 0 mathop x esint
else
int cmex 82 242 mathop &int; esint
intop cmex 82 242 mathop &int; esint
iint wasy 115 0 mathop x esint
iintop wasy 115 0 mathop x esint
iiint wasy 116 0 mathop x esint
iiintop wasy 116 0 mathop x esint
\def\iiiint{\int\kern-6mu\int\kern-6mu\int\kern-6mu\int} esint
\def\iiiintop{\int\kern-6mu\int\kern-6mu\int\kern-6mu\int} esint
\def\dotsint{\int\kern-3mu\cdots\kern-3mu\int} esint
\def\dotsintop{\int\kern-3mu\cdots\kern-3mu\int} esint
oint cmex 72 0 mathop x esint
ointop cmex 72 0 mathop x esint
oiint wasy 118 0 mathop x esint
oiintop wasy 118 0 mathop x esint
\def\sqint{\square\kern-17mu\int\kern6mu} esint
\def\sqintop{\square\kern-17mu\int\kern6mu} esint
\def\sqiint{\square\kern-20mu\iint\kern3mu} esint
\def\sqiintop{\square\kern-20mu\iint\kern3mu} esint
\def\ointctrclockwise{\circlearrowleft\kern-21mu\int\kern6mu} esint
\def\ointctrclockwiseop{\circlearrowleft\kern-21mu\int\kern6mu} esint
\def\ointclockwise{\circlearrowright\kern-21mu\int\kern6mu} esint
\def\ointclockwiseop{\circlearrowright\kern-21mu\int\kern6mu} esint
endif
varointclockwise esint 027 0 mathop x esint
varointclockwiseop esint 027 0 mathop x esint
varointctrclockwise esint 029 0 mathop x esint
varointctrclockwiseop esint 029 0 mathop x esint
varoiint esint 033 0 mathop x esint
varoiintop esint 033 0 mathop x esint
landupint esint 035 0 mathop x esint
landupintop esint 035 0 mathop x esint
landdownint esint 037 0 mathop x esint
landdownintop esint 037 0 mathop x esint
# From the amsmath package:
\def\idotsint{\int\kern-3mu\cdots\kern-3mu\int} amsmath
log lyxblacktext 0 0 func x

View File

@ -277,13 +277,19 @@ string const LaTeXFeatures::getPackages() const
if (isRequired("amsmath")
&& !tclass.provides(LyXTextClass::amsmath)
&& params_.use_amsmath != BufferParams::AMS_OFF) {
&& params_.use_amsmath != BufferParams::package_off) {
packages << "\\usepackage{amsmath}\n";
}
// wasysym is a simple feature, but it must be after amsmath if both
// are used
if (isRequired("wasysym"))
// wasysym redefines some integrals (e.g. iint) from amsmath. That
// leads to inconsistent integrals. We only load this package if
// esint is used, since esint redefines all relevant integral
// symbols from wasysym and amsmath.
// See http://bugzilla.lyx.org/show_bug.cgi?id=1942
if (isRequired("wasysym") && isRequired("esint") &&
params_.use_esint != BufferParams::package_off)
packages << "\\usepackage{wasysym}\n";
// color.sty
@ -353,8 +359,14 @@ string const LaTeXFeatures::getPackages() const
}
// amssymb.sty
if (isRequired("amssymb") || params_.use_amsmath == BufferParams::AMS_ON)
if (isRequired("amssymb") || params_.use_amsmath == BufferParams::package_on)
packages << "\\usepackage{amssymb}\n";
// esint must be after amsmath and wasysym, since it will redeclare
// inconsistent integral symbols
if (isRequired("esint") && params_.use_esint != BufferParams::package_off)
packages << "\\usepackage{esint}\n";
// url.sty
if (isRequired("url") && ! tclass.provides(LyXTextClass::url))
packages << "\\IfFileExists{url.sty}{\\usepackage{url}}\n"

View File

@ -143,7 +143,7 @@ using std::string;
namespace {
int const LYX_FORMAT = 253;
int const LYX_FORMAT = 254;
} // namespace anon
@ -1162,9 +1162,11 @@ void Buffer::validate(LaTeXFeatures & features) const
features.require("dvipost");
// AMS Style is at document level
if (params().use_amsmath == BufferParams::AMS_ON
if (params().use_amsmath == BufferParams::package_on
|| tclass.provides(LyXTextClass::amsmath))
features.require("amsmath");
if (params().use_esint == BufferParams::package_on)
features.require("esint");
for_each(paragraphs().begin(), paragraphs().end(),
boost::bind(&Paragraph::validate, _1, boost::ref(features)));

View File

@ -174,23 +174,22 @@ SidesTranslator const & sidestranslator()
}
// AMS
typedef Translator<int, BufferParams::AMS> AMSTranslator;
// LaTeX packages
typedef Translator<int, BufferParams::Package> PackageTranslator;
AMSTranslator const init_amstranslator()
PackageTranslator const init_packagetranslator()
{
AMSTranslator translator(0, BufferParams::AMS_OFF);
translator.addPair(1, BufferParams::AMS_AUTO);
translator.addPair(2, BufferParams::AMS_ON);
PackageTranslator translator(0, BufferParams::package_off);
translator.addPair(1, BufferParams::package_auto);
translator.addPair(2, BufferParams::package_on);
return translator;
}
AMSTranslator const & amstranslator()
PackageTranslator const & packagetranslator()
{
static AMSTranslator translator = init_amstranslator();
static PackageTranslator translator = init_packagetranslator();
return translator;
}
@ -297,7 +296,8 @@ BufferParams::BufferParams()
papersize = PAPER_DEFAULT;
orientation = ORIENTATION_PORTRAIT;
use_geometry = false;
use_amsmath = AMS_AUTO;
use_amsmath = package_auto;
use_esint = package_auto;
cite_engine = biblio::ENGINE_BASIC;
use_bibtopic = false;
trackChanges = false;
@ -482,7 +482,11 @@ string const BufferParams::readToken(LyXLex & lex, string const & token)
} else if (token == "\\use_amsmath") {
int use_ams;
lex >> use_ams;
use_amsmath = amstranslator().find(use_ams);
use_amsmath = packagetranslator().find(use_ams);
} else if (token == "\\use_esint") {
int useesint;
lex >> useesint;
use_esint = packagetranslator().find(useesint);
} else if (token == "\\cite_engine") {
string engine;
lex >> engine;
@ -632,6 +636,7 @@ void BufferParams::writeFile(ostream & os) const
os << "\\papersize " << string_papersize[papersize]
<< "\n\\use_geometry " << convert<string>(use_geometry)
<< "\n\\use_amsmath " << use_amsmath
<< "\n\\use_esint " << use_esint
<< "\n\\cite_engine " << citeenginetranslator().find(cite_engine)
<< "\n\\use_bibtopic " << convert<string>(use_bibtopic)
<< "\n\\paperorientation " << string_orientation[orientation]

View File

@ -214,13 +214,21 @@ public:
///
void readBulletsLaTeX(LyXLex &);
/// use AMS package, not, or auto
enum AMS {
AMS_OFF,
AMS_AUTO,
AMS_ON
/// Whether to load a package such as amsmath or esint.
/// The enum values must not be changed (file format!)
enum Package {
/// Don't load the package. For experts only.
package_off = 0,
/// Load the package if needed (recommended)
package_auto = 1,
/// Always load the package (e.g. if the document contains
/// some ERT that needs the package)
package_on = 2
};
AMS use_amsmath;
/// Whether and how to load amsmath
Package use_amsmath;
/// Whether and how to load esint
Package use_esint;
///
biblio::CiteEngine cite_engine;
///

View File

@ -195,7 +195,11 @@ char const * latex_misc[] = {
int const nr_latex_misc = sizeof(latex_misc) / sizeof(char const *);
char const * latex_varsz[] = {
"sum", "int", "intop", "oint", "ointop",
"sum", "int", "intop", "iint", "iintop", "iiint", "iiintop",
"iiiint", "iiiintop", "dotsint", "dotsintop",
"oint", "ointop", "oiint", "oiintop", "ointctrclockwise",
"ointctrclockwiseop", "ointclockwise", "ointclockwiseop",
"sqint", "sqintop", "sqiint", "sqiintop",
"prod", "coprod", "bigsqcup",
"bigotimes", "bigodot", "bigoplus",
"bigcap", "bigcup", "biguplus",

View File

@ -91,7 +91,11 @@ symbol_font symbol_fonts[] = {
{ LyXFont::WASY_FAMILY,
"wasy10",
"-*-wasy10-medium-*-*-*-*-*-*-*-*-*-*-*" }
"-*-wasy10-medium-*-*-*-*-*-*-*-*-*-*-*" },
{ LyXFont::ESINT_FAMILY,
"esint10",
"-*-esint10-medium-*-*-*-*-*-*-*-*-*-*-*" }
};
size_t const nr_symbol_fonts = sizeof(symbol_fonts) / sizeof(symbol_font);
@ -121,7 +125,7 @@ string const symbolFamily(LyXFont::FONT_FAMILY family)
bool isSymbolFamily(LyXFont::FONT_FAMILY family)
{
return family >= LyXFont::SYMBOL_FAMILY &&
family <= LyXFont::WASY_FAMILY;
family <= LyXFont::ESINT_FAMILY;
}
@ -130,6 +134,10 @@ bool isChosenFont(QFont & font, string const & family)
lyxerr[Debug::FONT] << "raw: " << fromqstr(font.rawName()) << endl;
QFontInfo fi(font);
// QFontInfo won't find a font that has only a few glyphs at unusual
// positions, e.g. the original esint10 font.
// The workaround is to add dummy glyphs at least at all ASCII
// positions.
// Note Qt lies about family quite often
lyxerr[Debug::FONT] << "alleged fi family: "

View File

@ -342,10 +342,12 @@ QDocumentDialog::QDocumentDialog(QDocument * form)
mathsModule = new UiWidget<Ui::MathsUi>;
connect(mathsModule->amsautoCB, SIGNAL(toggled(bool)), mathsModule->amsCB, SLOT(setDisabled(bool)));
connect(mathsModule->esintautoCB, SIGNAL(toggled(bool)), mathsModule->esintCB, SLOT(setDisabled(bool)));
// maths
connect(mathsModule->amsCB, SIGNAL(toggled(bool)), this, SLOT(change_adaptor()));
connect(mathsModule->amsautoCB, SIGNAL(toggled(bool)), this, SLOT(change_adaptor()));
connect(mathsModule->esintCB, SIGNAL(toggled(bool)), this, SLOT(change_adaptor()));
connect(mathsModule->esintautoCB, SIGNAL(toggled(bool)), this, SLOT(change_adaptor()));
latexModule = new UiWidget<Ui::LaTeXUi>;
// latex class
@ -717,12 +719,21 @@ void QDocumentDialog::apply(BufferParams & params)
fromqstr(latexModule->psdriverCO->currentText());
if (mathsModule->amsautoCB->isChecked()) {
params.use_amsmath = BufferParams::AMS_AUTO;
params.use_amsmath = BufferParams::package_auto;
} else {
if (mathsModule->amsCB->isChecked())
params.use_amsmath = BufferParams::AMS_ON;
params.use_amsmath = BufferParams::package_on;
else
params.use_amsmath = BufferParams::AMS_OFF;
params.use_amsmath = BufferParams::package_off;
}
if (mathsModule->esintautoCB->isChecked())
params.use_esint = BufferParams::package_auto;
else {
if (mathsModule->esintCB->isChecked())
params.use_esint = BufferParams::package_on;
else
params.use_esint = BufferParams::package_off;
}
// text layout
@ -994,9 +1005,14 @@ void QDocumentDialog::update(BufferParams const & params)
mathsModule->amsCB->setChecked(
params.use_amsmath == BufferParams::AMS_ON);
params.use_amsmath == BufferParams::package_on);
mathsModule->amsautoCB->setChecked(
params.use_amsmath == BufferParams::AMS_AUTO);
params.use_amsmath == BufferParams::package_auto);
mathsModule->esintCB->setChecked(
params.use_esint == BufferParams::package_on);
mathsModule->esintautoCB->setChecked(
params.use_esint == BufferParams::package_auto);
switch (params.spacing().getSpace()) {
case Spacing::Other: nitem = 3; break;

View File

@ -39,6 +39,23 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="esintautoCB" >
<property name="text" >
<string>Use esint package &amp;automatically</string>
</property>
<property name="checked" >
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="esintCB" >
<property name="text" >
<string>Use &amp;esint package</string>
</property>
</widget>
</item>
<item>
<spacer>
<property name="orientation" >
@ -63,6 +80,7 @@
</includes>
<tabstops>
<tabstop>amsautoCB</tabstop>
<tabstop>esintautoCB</tabstop>
</tabstops>
<resources/>
<connections/>

View File

@ -51,7 +51,7 @@ namespace {
char const * GUIFamilyNames[LyXFont::NUM_FAMILIES + 2 /* default & error */] =
{ N_("Roman"), N_("Sans Serif"), N_("Typewriter"), N_("Symbol"),
"cmr", "cmsy", "cmm", "cmex", "msa", "msb", "eufrak", "wasy",
"cmr", "cmsy", "cmm", "cmex", "msa", "msb", "eufrak", "wasy", "esint",
N_("Inherit"), N_("Ignore") };
char const * GUISeriesNames[4] =
@ -75,7 +75,7 @@ char const * GUIMiscNames[5] =
//
char const * LyXFamilyNames[LyXFont::NUM_FAMILIES + 2 /* default & error */] =
{ "roman", "sans", "typewriter", "symbol",
"cmr", "cmsy", "cmm", "cmex", "msa", "msb", "eufrak", "wasy",
"cmr", "cmsy", "cmm", "cmex", "msa", "msb", "eufrak", "wasy", "esint",
"default", "error" };
char const * LyXSeriesNames[4] =

View File

@ -62,6 +62,8 @@ public:
///
WASY_FAMILY,
///
ESINT_FAMILY,
///
INHERIT_FAMILY,
///
IGNORE_FAMILY,
@ -379,6 +381,7 @@ bool LyXFont::isSymbolFont() const
case LyXFont::MSA_FAMILY:
case LyXFont::MSB_FAMILY:
case LyXFont::WASY_FAMILY:
case LyXFont::ESINT_FAMILY:
return true;
default:
return false;

View File

@ -1053,7 +1053,7 @@ void InsetMathHull::doDispatch(LCursor & cur, FuncRequest & cmd)
if (type_ == hullSimple || type_ == hullEquation) {
recordUndoInset(cur);
bool const align =
cur.bv().buffer()->params().use_amsmath == BufferParams::AMS_ON;
cur.bv().buffer()->params().use_amsmath == BufferParams::package_on;
mutate(align ? hullAlign : hullEqnArray);
cur.idx() = 0;
cur.pos() = cur.lastpos();

View File

@ -79,7 +79,8 @@ void InsetMathSymbol::metrics(MetricsInfo & mi, Dimension & dim) const
scriptable_ = false;
if (mi.base.style == LM_ST_DISPLAY)
if (sym_->inset == "cmex" || sym_->extra == "funclim")
if (sym_->inset == "cmex" || sym_->inset == "esint" ||
sym_->extra == "funclim")
scriptable_ = true;
width_ = dim.wid;
@ -120,6 +121,7 @@ bool InsetMathSymbol::takesLimits() const
return
sym_->inset == "cmex" ||
sym_->inset == "lyxboldsymb" ||
sym_->inset == "esint" ||
sym_->extra == "funclim";
}

View File

@ -147,7 +147,11 @@ void initSymbols()
// special case of pre-defined macros
if (line.size() > 8 && line.substr(0, 5) == "\\def\\") {
//lyxerr << "macro definition: '" << line << '\'' << endl;
MacroTable::globalMacros().insert(from_utf8(line));
istringstream is(line);
string macro;
string requires;
is >> macro >> requires;
MacroTable::globalMacros().insert(from_utf8(macro), requires);
continue;
}
@ -158,7 +162,10 @@ void initSymbols()
is >> charid >> fallbackid >> tmp.extra >> tmp.xmlname;
else
is >> tmp.extra;
if (!is) {
// requires is optional
if (is)
is >> tmp.requires;
else {
lyxerr[Debug::MATHED] << "skipping line '" << line << '\'' << endl;
lyxerr[Debug::MATHED]
<< to_utf8(tmp.name) << ' ' << to_utf8(tmp.inset) << ' ' << to_utf8(tmp.extra) << endl;
@ -170,11 +177,11 @@ void initSymbols()
// create fallbacks if necessary
// store requirements as long as we can
if (tmp.inset == "msa" || tmp.inset == "msb")
if (tmp.requires.empty() &&
(tmp.inset == "msa" || tmp.inset == "msb"))
tmp.requires = from_ascii("amssymb");
// See http://bugzilla.lyx.org/show_bug.cgi?id=1942
// else if (tmp.inset == "wasy")
// tmp.requires = "wasysym";
else if (tmp.inset == "wasy")
tmp.requires = from_ascii("wasysym");
// symbol font is not available sometimes
docstring symbol_font = from_ascii("lyxsymbol");
@ -216,6 +223,7 @@ void initSymbols()
<< " inset: " << to_utf8(tmp.inset)
<< " draw: " << int(tmp.draw.empty() ? 0 : tmp.draw[0])
<< " extra: " << to_utf8(tmp.extra)
<< " requires: " << to_utf8(tmp.requires)
<< '\'' << endl;
}
docstring tmp = from_ascii("cmm");

View File

@ -40,8 +40,8 @@ MacroData::MacroData()
{}
MacroData::MacroData(docstring const & def, int numargs, docstring const & disp)
: def_(def), numargs_(numargs), disp_(disp)
MacroData::MacroData(docstring const & def, int numargs, docstring const & disp, string const & requires)
: def_(def), numargs_(numargs), disp_(disp), requires_(requires)
{}
@ -99,11 +99,13 @@ void MacroTable::insert(docstring const & name, MacroData const & data)
}
void MacroTable::insert(docstring const & def)
void MacroTable::insert(docstring const & def, string const & requires)
{
//lyxerr << "MacroTable::insert, def: " << to_utf8(def) << endl;
MathMacroTemplate mac(def);
insert(mac.name(), mac.asMacroData());
MacroData data = mac.asMacroData();
data.requires() = requires;
insert(mac.name(), data);
}

View File

@ -28,7 +28,7 @@ public:
///
MacroData();
///
MacroData(docstring const & def, int nargs, docstring const & disp);
MacroData(docstring const & def, int nargs, docstring const & disp, std::string const &);
///
docstring def() const { return def_; }
///
@ -37,6 +37,10 @@ public:
int numargs() const { return numargs_; }
/// replace #1,#2,... by given MathAtom 0,1,..
void expand(std::vector<MathArray> const & from, MathArray & to) const;
///
std::string requires() const { return requires_; }
///
std::string & requires() { return requires_; }
private:
///
@ -45,6 +49,8 @@ private:
int numargs_;
///
docstring disp_;
///
std::string requires_;
};
@ -55,8 +61,8 @@ private:
class MacroTable : public std::map<docstring, MacroData>
{
public:
/// Parse full "\def..." or "\newcommand..." or ...
void insert(docstring const & definition);
/// Parse full "\\def..." or "\\newcommand..." or ...
void insert(docstring const & definition, std::string const &);
/// Insert pre-digested macro definition
void insert(docstring const & name, MacroData const & data);
/// Do we have a macro by that name?

View File

@ -226,7 +226,7 @@ void MathMacroTemplate::write(WriteStream & os) const
MacroData MathMacroTemplate::asMacroData() const
{
return MacroData(asString(cell(0)), numargs(), asString(cell(1)));
return MacroData(asString(cell(0)), numargs(), asString(cell(1)), std::string());
}

View File

@ -551,6 +551,8 @@ fontinfo fontinfos[] = {
inh_shape, LColor::math},
{"wasy", LyXFont::WASY_FAMILY, inh_series,
inh_shape, LColor::none},
{"esint", LyXFont::ESINT_FAMILY, inh_series,
inh_shape, LColor::none},
// Text fonts
{"text", inh_family, inh_series,

View File

@ -44,7 +44,7 @@ namespace os = lyx::support::os;
using std::string;
string const win_fonts_truetype[] = {"cmex10", "cmmi10", "cmr10", "cmsy10",
"eufm10", "msam10", "msbm10", "wasy10"};
"eufm10", "msam10", "msbm10", "wasy10", "esint10"};
const int num_fonts_truetype = sizeof(win_fonts_truetype) / sizeof(*win_fonts_truetype);
#endif