namespace lyx {
+//
+// Strings used to read and write .lyx format files
+//
+// These are defined in FontInfo.cpp
+extern char const ** LyXFamilyNames;
+extern char const ** LyXSeriesNames;
+extern char const ** LyXShapeNames;
+extern char const ** LyXSizeNames;
+extern char const ** LyXMiscNames;
+
//
// Names for the GUI
//
char const * GUIMiscNames[5] =
{ N_("Off"), N_("On"), N_("Toggle"), N_("Inherit"), N_("Ignore") };
-
-//
-// Strings used to read and write .lyx format files
-//
-char const * LyXFamilyNames[NUM_FAMILIES + 2 /* default & error */] =
-{ "roman", "sans", "typewriter", "symbol",
- "cmr", "cmsy", "cmm", "cmex", "msa", "msb", "eufrak", "wasy", "esint",
- "default", "error" };
-
-char const * LyXSeriesNames[4] =
-{ "medium", "bold", "default", "error" };
-
-char const * LyXShapeNames[6] =
-{ "up", "italic", "slanted", "smallcaps", "default", "error" };
-
-char const * LyXSizeNames[14] =
-{ "tiny", "scriptsize", "footnotesize", "small", "normal", "large",
- "larger", "largest", "huge", "giant",
- "increase", "decrease", "default", "error" };
-
-char const * LyXMiscNames[5] =
-{ "off", "on", "toggle", "default", "error" };
-
//
// Strings used to write LaTeX files
//
}
-// Set family according to lyx format string
-void setLyXFamily(string const & fam, FontInfo & f)
-{
- string const s = ascii_lowercase(fam);
-
- int i = 0;
- while (LyXFamilyNames[i] != s &&
- LyXFamilyNames[i] != string("error"))
- ++i;
- if (s == LyXFamilyNames[i])
- f.setFamily(FontFamily(i));
- else
- lyxerr << "setLyXFamily: Unknown family `"
- << s << '\'' << endl;
-}
-
-
-// Set series according to lyx format string
-void setLyXSeries(string const & ser, FontInfo & f)
-{
- string const s = ascii_lowercase(ser);
-
- int i = 0;
- while (LyXSeriesNames[i] != s &&
- LyXSeriesNames[i] != string("error")) ++i;
- if (s == LyXSeriesNames[i]) {
- f.setSeries(FontSeries(i));
- } else
- lyxerr << "setLyXSeries: Unknown series `"
- << s << '\'' << endl;
-}
-
-
-// Set shape according to lyx format string
-void setLyXShape(string const & sha, FontInfo & f)
-{
- string const s = ascii_lowercase(sha);
-
- int i = 0;
- while (LyXShapeNames[i] != s && LyXShapeNames[i] != string("error"))
- ++i;
- if (s == LyXShapeNames[i])
- f.setShape(FontShape(i));
- else
- lyxerr << "Font::setLyXShape: Unknown shape `"
- << s << '\'' << endl;
-}
-
-
-// Set size according to lyx format string
-void setLyXSize(string const & siz, FontInfo & f)
-{
- string const s = ascii_lowercase(siz);
- int i = 0;
- while (LyXSizeNames[i] != s && LyXSizeNames[i] != string("error"))
- ++i;
- if (s == LyXSizeNames[i]) {
- f.setSize(FontSize(i));
- } else
- lyxerr << "Font::setLyXSize: Unknown size `"
- << s << '\'' << endl;
-}
-
-
-// Set size according to lyx format string
-FontState Font::setLyXMisc(string const & siz)
-{
- string const s = ascii_lowercase(siz);
- int i = 0;
- while (LyXMiscNames[i] != s &&
- LyXMiscNames[i] != string("error")) ++i;
- if (s == LyXMiscNames[i])
- return FontState(i);
- lyxerr << "Font::setLyXMisc: Unknown misc flag `"
- << s << '\'' << endl;
- return FONT_OFF;
-}
-
-
-/// Sets color after LyX text format
-void setLyXColor(string const & col, FontInfo & f)
-{
- f.setColor(lcolor.getFromLyXName(col));
-}
-
-
// Returns size in latex format
string const Font::latexSize() const
{
}
-// Read a font definition from given file in lyx format
-// Used for layouts
-FontInfo lyxRead(Lexer & lex, FontInfo const & fi)
-{
- FontInfo f = fi;
- bool error = false;
- bool finished = false;
- while (!finished && lex.isOK() && !error) {
- lex.next();
- string const tok = ascii_lowercase(lex.getString());
-
- if (tok.empty()) {
- continue;
- } else if (tok == "endfont") {
- finished = true;
- } else if (tok == "family") {
- lex.next();
- string const ttok = lex.getString();
- setLyXFamily(ttok, f);
- } else if (tok == "series") {
- lex.next();
- string const ttok = lex.getString();
- setLyXSeries(ttok, f);
- } else if (tok == "shape") {
- lex.next();
- string const ttok = lex.getString();
- setLyXShape(ttok, f);
- } else if (tok == "size") {
- lex.next();
- string const ttok = lex.getString();
- setLyXSize(ttok, f);
- } else if (tok == "misc") {
- lex.next();
- string const ttok = ascii_lowercase(lex.getString());
-
- if (ttok == "no_bar") {
- f.setUnderbar(FONT_OFF);
- } else if (ttok == "no_strikeout") {
- f.setStrikeout(FONT_OFF);
- } else if (ttok == "no_uuline") {
- f.setUuline(FONT_OFF);
- } else if (ttok == "no_uwave") {
- f.setUwave(FONT_OFF);
- } else if (ttok == "no_emph") {
- f.setEmph(FONT_OFF);
- } else if (ttok == "no_noun") {
- f.setNoun(FONT_OFF);
- } else if (ttok == "emph") {
- f.setEmph(FONT_ON);
- } else if (ttok == "underbar") {
- f.setUnderbar(FONT_ON);
- } else if (ttok == "strikeout") {
- f.setStrikeout(FONT_ON);
- } else if (ttok == "uuline") {
- f.setUuline(FONT_ON);
- } else if (ttok == "uwave") {
- f.setUwave(FONT_ON);
- } else if (ttok == "noun") {
- f.setNoun(FONT_ON);
- } else {
- lex.printError("Illegal misc type");
- }
- } else if (tok == "color") {
- lex.next();
- string const ttok = lex.getString();
- setLyXColor(ttok, f);
- } else {
- lex.printError("Unknown tag");
- error = true;
- }
- }
- return f;
-}
-
-
/// Writes the changes from this font to orgfont in .lyx format in file
void Font::lyxWriteChanges(Font const & orgfont,
ostream & os) const
#ifndef FONT_H
#define FONT_H
-#ifdef TEX2LYX
-#include "tex2lyx/Font.h"
-#else
-
#include "ColorCode.h"
#include "FontInfo.h"
namespace lyx {
-class Lexer;
class BufferParams;
class Language;
class LaTeXFeatures;
///
void setLanguage(Language const * l);
- /// Returns misc flag after LyX text format
- FontState setLyXMisc(std::string const &);
-
-
/// Returns size of font in LaTeX text notation
std::string const latexSize() const;
*/
std::string const freefont2string();
-
-/// Set family after LyX text format
-void setLyXFamily(std::string const &, FontInfo &);
-
-/// Set series after LyX text format
-void setLyXSeries(std::string const &, FontInfo &);
-
-/// Set shape after LyX text format
-void setLyXShape(std::string const &, FontInfo &);
-
-/// Set size after LyX text format
-void setLyXSize(std::string const &, FontInfo &);
-
-/// Sets color after LyX text format
-void setLyXColor(std::string const &, FontInfo &);
-
-/// Read a font specification from Lexer. Used for layout files.
-FontInfo lyxRead(Lexer &, FontInfo const & fi = sane_font);
-
} // namespace lyx
-#endif // TEX2LYX
#endif
#include <config.h>
+#include "ColorSet.h"
#include "FontInfo.h"
+#include "Lexer.h"
#include "support/debug.h"
#include "support/docstring.h"
+#include "support/lstrings.h"
using namespace std;
+using namespace lyx::support;
namespace lyx {
+//
+// Strings used to read and write .lyx format files
+//
+char const * LyXFamilyNames[NUM_FAMILIES + 2 /* default & error */] =
+{ "roman", "sans", "typewriter", "symbol",
+ "cmr", "cmsy", "cmm", "cmex", "msa", "msb", "eufrak", "wasy", "esint",
+ "default", "error" };
+
+char const * LyXSeriesNames[4] =
+{ "medium", "bold", "default", "error" };
+
+char const * LyXShapeNames[6] =
+{ "up", "italic", "slanted", "smallcaps", "default", "error" };
+
+char const * LyXSizeNames[14] =
+{ "tiny", "scriptsize", "footnotesize", "small", "normal", "large",
+ "larger", "largest", "huge", "giant",
+ "increase", "decrease", "default", "error" };
+
+char const * LyXMiscNames[5] =
+{ "off", "on", "toggle", "default", "error" };
+
+
FontInfo const sane_font(
ROMAN_FAMILY,
MEDIUM_SERIES,
return from_ascii(retval);
}
+// Set family according to lyx format string
+void setLyXFamily(string const & fam, FontInfo & f)
+{
+ string const s = ascii_lowercase(fam);
+
+ int i = 0;
+ while (LyXFamilyNames[i] != s &&
+ LyXFamilyNames[i] != string("error"))
+ ++i;
+ if (s == LyXFamilyNames[i])
+ f.setFamily(FontFamily(i));
+ else
+ LYXERR0("Unknown family `" << s << '\'');
+}
+
+
+// Set series according to lyx format string
+void setLyXSeries(string const & ser, FontInfo & f)
+{
+ string const s = ascii_lowercase(ser);
+
+ int i = 0;
+ while (LyXSeriesNames[i] != s &&
+ LyXSeriesNames[i] != string("error")) ++i;
+ if (s == LyXSeriesNames[i]) {
+ f.setSeries(FontSeries(i));
+ } else
+ LYXERR0("Unknown series `" << s << '\'');
+}
+
+
+// Set shape according to lyx format string
+void setLyXShape(string const & sha, FontInfo & f)
+{
+ string const s = ascii_lowercase(sha);
+
+ int i = 0;
+ while (LyXShapeNames[i] != s && LyXShapeNames[i] != string("error"))
+ ++i;
+ if (s == LyXShapeNames[i])
+ f.setShape(FontShape(i));
+ else
+ LYXERR0("Unknown shape `" << s << '\'');
+}
+
+
+// Set size according to lyx format string
+void setLyXSize(string const & siz, FontInfo & f)
+{
+ string const s = ascii_lowercase(siz);
+ int i = 0;
+ while (LyXSizeNames[i] != s && LyXSizeNames[i] != string("error"))
+ ++i;
+ if (s == LyXSizeNames[i]) {
+ f.setSize(FontSize(i));
+ } else
+ LYXERR0("Unknown size `" << s << '\'');
+}
+
+
+// Set size according to lyx format string
+FontState setLyXMisc(string const & siz)
+{
+ string const s = ascii_lowercase(siz);
+ int i = 0;
+ while (LyXMiscNames[i] != s &&
+ LyXMiscNames[i] != string("error")) ++i;
+ if (s == LyXMiscNames[i])
+ return FontState(i);
+ LYXERR0("Unknown misc flag `" << s << '\'');
+ return FONT_OFF;
+}
+
+
+/// Sets color after LyX text format
+void setLyXColor(string const & col, FontInfo & f)
+{
+ f.setColor(lcolor.getFromLyXName(col));
+}
+
+
+// Read a font definition from given file in lyx format
+// Used for layouts
+FontInfo lyxRead(Lexer & lex, FontInfo const & fi)
+{
+ FontInfo f = fi;
+ bool error = false;
+ bool finished = false;
+ while (!finished && lex.isOK() && !error) {
+ lex.next();
+ string const tok = ascii_lowercase(lex.getString());
+
+ if (tok.empty()) {
+ continue;
+ } else if (tok == "endfont") {
+ finished = true;
+ } else if (tok == "family") {
+ lex.next();
+ string const ttok = lex.getString();
+ setLyXFamily(ttok, f);
+ } else if (tok == "series") {
+ lex.next();
+ string const ttok = lex.getString();
+ setLyXSeries(ttok, f);
+ } else if (tok == "shape") {
+ lex.next();
+ string const ttok = lex.getString();
+ setLyXShape(ttok, f);
+ } else if (tok == "size") {
+ lex.next();
+ string const ttok = lex.getString();
+ setLyXSize(ttok, f);
+ } else if (tok == "misc") {
+ lex.next();
+ string const ttok = ascii_lowercase(lex.getString());
+
+ if (ttok == "no_bar") {
+ f.setUnderbar(FONT_OFF);
+ } else if (ttok == "no_strikeout") {
+ f.setStrikeout(FONT_OFF);
+ } else if (ttok == "no_uuline") {
+ f.setUuline(FONT_OFF);
+ } else if (ttok == "no_uwave") {
+ f.setUwave(FONT_OFF);
+ } else if (ttok == "no_emph") {
+ f.setEmph(FONT_OFF);
+ } else if (ttok == "no_noun") {
+ f.setNoun(FONT_OFF);
+ } else if (ttok == "emph") {
+ f.setEmph(FONT_ON);
+ } else if (ttok == "underbar") {
+ f.setUnderbar(FONT_ON);
+ } else if (ttok == "strikeout") {
+ f.setStrikeout(FONT_ON);
+ } else if (ttok == "uuline") {
+ f.setUuline(FONT_ON);
+ } else if (ttok == "uwave") {
+ f.setUwave(FONT_ON);
+ } else if (ttok == "noun") {
+ f.setNoun(FONT_ON);
+ } else {
+ lex.printError("Illegal misc type");
+ }
+ } else if (tok == "color") {
+ lex.next();
+ string const ttok = lex.getString();
+ setLyXColor(ttok, f);
+ } else {
+ lex.printError("Unknown tag");
+ error = true;
+ }
+ }
+ return f;
+}
+
+
} // namespace lyx
#ifndef FONT_PROPERTIES_H
#define FONT_PROPERTIES_H
-#ifdef TEX2LYX
-#include "tex2lyx/Font.h"
-#else
-
#include "Color.h"
#include "ColorCode.h"
#include "FontEnums.h"
namespace lyx {
+class Lexer;
+
///
class FontInfo
{
/// All ignore font.
extern FontInfo const ignore_font;
+/// Set family after LyX text format
+void setLyXFamily(std::string const &, FontInfo &);
+
+/// Set series after LyX text format
+void setLyXSeries(std::string const &, FontInfo &);
+
+/// Set shape after LyX text format
+void setLyXShape(std::string const &, FontInfo &);
+
+/// Set size after LyX text format
+void setLyXSize(std::string const &, FontInfo &);
+
+/// Sets color after LyX text format
+void setLyXColor(std::string const &, FontInfo &);
+
+/// Returns misc flag after LyX text format
+FontState setLyXMisc(std::string const &);
+
+/// Read a font specification from Lexer. Used for layout files.
+FontInfo lyxRead(Lexer &, FontInfo const & fi = sane_font);
+
} // namespace lyx
-#endif // TEX2LYX_FONT_H
#endif
#include "Language.h"
#include "TextClass.h"
#include "Lexer.h"
-#include "Font.h"
+#include "FontInfo.h"
#include "support/Messages.h"
#include "support/debug.h"
// sorts of margins or padding, for example. But for now we are
// going to keep it simple.
void Layout::makeDefaultCSS() const {
-#ifdef TEX2LYX
- // tex2lyx does not have FontInfo::asCSS()
- return;
-#else
// this never needs to be redone, since reloading layouts will
// wipe out what we did before.
if (!htmldefaultstyle_.empty())
htmldefaultstyle_ +=
from_ascii(htmllabeltag() + "." + defaultCSSLabelClass() + " {\n") +
labelfontCSS + from_ascii("\n}\n");
-#endif
}
}
} else if (token == "\\numeric") {
lex.next();
- font.fontInfo().setNumber(font.setLyXMisc(lex.getString()));
+ font.fontInfo().setNumber(setLyXMisc(lex.getString()));
} else if (token == "\\emph") {
lex.next();
- font.fontInfo().setEmph(font.setLyXMisc(lex.getString()));
+ font.fontInfo().setEmph(setLyXMisc(lex.getString()));
} else if (token == "\\bar") {
lex.next();
string const tok = lex.getString();
"`$$Token'");
} else if (token == "\\strikeout") {
lex.next();
- font.fontInfo().setStrikeout(font.setLyXMisc(lex.getString()));
+ font.fontInfo().setStrikeout(setLyXMisc(lex.getString()));
} else if (token == "\\uuline") {
lex.next();
- font.fontInfo().setUuline(font.setLyXMisc(lex.getString()));
+ font.fontInfo().setUuline(setLyXMisc(lex.getString()));
} else if (token == "\\uwave") {
lex.next();
- font.fontInfo().setUwave(font.setLyXMisc(lex.getString()));
+ font.fontInfo().setUwave(setLyXMisc(lex.getString()));
} else if (token == "\\noun") {
lex.next();
- font.fontInfo().setNoun(font.setLyXMisc(lex.getString()));
+ font.fontInfo().setNoun(setLyXMisc(lex.getString()));
} else if (token == "\\color") {
lex.next();
setLyXColor(lex.getString(), font.fontInfo());
#include "InsetLayout.h"
#include "ColorSet.h"
-#include "Font.h"
#include "Lexer.h"
#include "TextClass.h"
+++ /dev/null
-/**
- * \file tex2lyx/Font.cpp
- * This file is part of LyX, the document processor.
- * Licence details can be found in the file COPYING.
- *
- * \author Angus Leeming
- *
- * Full author contact details are available in file CREDITS.
- */
-
-#include <config.h>
-
-#include "Font.h"
-#include "Lexer.h"
-#include "support/lstrings.h"
-
-using namespace std;
-
-namespace lyx {
-
-using lyx::support::ascii_lowercase;
-
-/// Sane font.
-FontInfo const sane_font;
-/// All inherit font.
-FontInfo const inherit_font;
-/// All ignore font.
-FontInfo const ignore_font;
-
-FontInfo lyxRead(Lexer & lex, FontInfo const &)
-{
- bool error = false;
- bool finished = false;
- while (!finished && lex.isOK() && !error) {
- lex.next();
- string const tok = ascii_lowercase(lex.getString());
-
- if (tok.empty()) {
- continue;
- } else if (tok == "endfont") {
- finished = true;
- } else if (tok == "family") {
- lex.next();
- } else if (tok == "series") {
- lex.next();
- } else if (tok == "shape") {
- lex.next();
- } else if (tok == "size") {
- lex.next();
- } else if (tok == "misc") {
- lex.next();
- } else if (tok == "color") {
- lex.next();
- } else {
- lex.printError("Unknown tag `$$Token'");
- error = true;
- }
- }
- return FontInfo();
-}
-
-
-} // namespace lyx
+++ /dev/null
-// -*- C++ -*-
-/**
- * \file tex2lyx/Font.h
- * This file is part of LyX, the document processor.
- * Licence details can be found in the file COPYING.
- *
- * \author Angus Leeming
- *
- * Full author contact details are available in file CREDITS.
- *
- * This class is just a dummy version of that in the main LyX source tree
- * to enable tex2lyx to use LyX's textclass classes and not have to
- * re-invent the wheel.
- *
- */
-
-#ifndef TEX2LYX_FONT_H
-#define TEX2LYX_FONT_H
-
-//#include "FontInfo.h"
-
-namespace lyx {
-
-class Lexer;
-
-class FontInfo
-{
-public:
- FontInfo() {}
- FontInfo & realize(FontInfo const &) { return *this; }
- void setColor(int) {}
- bool resolved() const { return true; }
-};
-
-/// Sane font.
-extern FontInfo const sane_font;
-/// All inherit font.
-extern FontInfo const inherit_font;
-/// All ignore font.
-extern FontInfo const ignore_font;
-
-class Font
-{
-public:
- Font() {}
- Font(FontInfo const &) {}
-};
-
-/// Read a font specification from Lexer. Used for layout files.
-FontInfo lyxRead(Lexer &, FontInfo const & fi = sane_font);
-
-} // namespace lyx
-
-#endif // TEX2LYX_FONT_H
test/test-structure.tex
LINKED_FILES = \
+ ../Color.cpp \
+ ../Counters.cpp \
+ ../Encoding.cpp \
../FloatList.cpp \
../Floating.cpp \
- ../Counters.cpp \
+ ../FontInfo.cpp \
../insets/InsetLayout.cpp \
../LayoutFile.h \
../Layout.h \
../Layout.cpp \
../LayoutModuleList.h \
../LayoutModuleList.cpp \
+ ../lengthcommon.cpp \
+ ../Lexer.cpp \
../ModuleList.h \
../ModuleList.cpp \
../TextClass.cpp \
- ../TextClass.h \
- ../Lexer.cpp \
- ../lengthcommon.cpp \
- ../Color.cpp \
- ../Color.h \
- ../Encoding.cpp
+ ../TextClass.h
BUILT_SOURCES = $(PCH_FILE)
tex2lyx_SOURCES = \
$(LINKED_FILES) \
- Spacing.h \
boost.cpp \
Context.cpp \
Context.h \
- Font.cpp \
- Font.h \
+ math.cpp \
Parser.cpp \
Parser.h \
- tex2lyx.cpp \
- tex2lyx.h \
preamble.cpp \
- math.cpp \
+ Spacing.h \
table.cpp \
+ tex2lyx.cpp \
+ tex2lyx.h \
text.cpp
tex2lyx_LDADD = \