From 25e4bf4b27b5b404e706ac7cf6f9f6c48cb57b33 Mon Sep 17 00:00:00 2001 From: Enrico Forestieri Date: Sat, 22 Dec 2012 23:06:18 +0100 Subject: [PATCH] Fix bug #8467: "Corrupted NFSS tables" error when Cyrillic character in an equation --- src/BufferParams.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/BufferParams.cpp b/src/BufferParams.cpp index 37fa651b64..4a009aa009 100644 --- a/src/BufferParams.cpp +++ b/src/BufferParams.cpp @@ -1447,15 +1447,27 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features, // XeTeX and LuaTeX (with OS fonts) work without fontenc if (font_encoding() != "default" && language->lang() != "japanese" && !useNonTeXFonts && !features.isProvided("fontenc")) { + docstring extra_encoding; + if (features.mustProvide("textgreek")) + extra_encoding += from_ascii("LGR"); + if (features.mustProvide("textcyr")) { + if (!extra_encoding.empty()) + extra_encoding.push_back(','); + extra_encoding += from_ascii("T2A"); + } + if (!extra_encoding.empty() && !font_encoding().empty()) + extra_encoding.push_back(','); size_t fars = language_options.str().find("farsi"); size_t arab = language_options.str().find("arabic"); if (language->lang() == "arabic_arabi" || language->lang() == "farsi" || fars != string::npos || arab != string::npos) { - os << "\\usepackage[" << from_ascii(font_encoding()) + os << "\\usepackage[" << extra_encoding + << from_ascii(font_encoding()) << ",LFE,LAE]{fontenc}\n"; } else { - os << "\\usepackage[" << from_ascii(font_encoding()) + os << "\\usepackage[" << extra_encoding + << from_ascii(font_encoding()) << "]{fontenc}\n"; } } -- 2.39.5