#include "frontends/FontMetrics.h"
+#include "support/debug.h"
#include "support/docstream.h"
#include "support/lstrings.h"
#include "support/lyxlib.h"
case PPH:
os << formatFPNumber(val_ / 100.0) << "\\paperheight";
break;
+ case BLS:
+ os << formatFPNumber(val_ / 100.0) << "\\baselineskip";
+ break;
case UNIT_NONE:
break;
default:
case PCW:
case PTH:
case PPH:
+ case BLS:
// what it's a percentage of probably won't make sense for HTML,
// so we'll assume people have chosen these appropriately
os << formatFPNumber(val_) << '%';
case Length::PPH:
result = val_ * text_width * 2.2 / 100;
break;
+ case Length::BLS:
+ // baselineskip is approximately 1.2 times the font size for the cmr fonts
+ // The value actually depends on the current paragraph (see TextMetrics::setRowHeight),
+ // but we do not have this information here.
+ result = val_ * em_width * 1.2 / 100;
+ break;
case Length::UNIT_NONE:
result = 0; // this cannot happen
break;
int Length::inPixels(MetricsBase const & base) const
{
- return inPixels(base.textwidth, theFontMetrics(base.font).em());
+ FontInfo fi = base.font;
+ if (unit_ == Length::MU)
+ // mu is 1/18th of an em in the math symbol font
+ fi.setFamily(SYMBOL_FAMILY);
+ else
+ // Math style is only taken into account in the case of mu
+ fi.setStyle(LM_ST_TEXT);
+ return inPixels(base.textwidth, theFontMetrics(fi).em());
}
GlueLength::GlueLength(string const & data)
{
- isValidGlueLength(data, this);
+ if (!isValidGlueLength(data, this))
+ LYXERR0("Invalid glue length " + data);
}