All typographic quotation marks are supported, if the proper
LaTeX macros (as opposed to ligatures) are used.
So no need for forcing straight quotes.
This is in line with what babel-hebrew suggests.
"\\guillemotleft", "\\guillemotright" }
};
"\\guillemotleft", "\\guillemotright" }
};
+char const * const latex_quote_noligatures[2][5] = {
+ { "\\quotesinglbase", "\\textquoteleft", "\\textquoteright",
+ "\\guilsinglleft", "\\guilsinglright" },
+ { "\\quotedblbase", "\\textquotedblleft", "\\textquotedblright",
+ "\\guillemotleft", "\\guillemotright" }
+};
+
char const * const latex_quote_babel[2][5] = {
{ "\\glq", "'", "`", "\\flq", "\\frq" },
{ "\\glqq", "''", "``", "\\flqq", "\\frqq" }
char const * const latex_quote_babel[2][5] = {
{ "\\glq", "'", "`", "\\flq", "\\frq" },
{ "\\glqq", "''", "``", "\\flqq", "\\frqq" }
docstring InsetQuotes::displayString() const
{
docstring InsetQuotes::displayString() const
{
- // In PassThru and Hebrew, we use straight quotes
- if (pass_thru_ || context_lang_ == "he_IL")
+ // In PassThru, we use straight quotes
+ if (pass_thru_)
return (times_ == DoubleQuotes) ? from_ascii("\"") : from_ascii("'");
int const index = quote_index[side_][language_];
return (times_ == DoubleQuotes) ? from_ascii("\"") : from_ascii("'");
int const index = quote_index[side_][language_];
const int quoteind = quote_index[side_][language_];
string qstr;
const int quoteind = quote_index[side_][language_];
string qstr;
- // In some context, we output plain quotes
- bool const force_plain =
- runparams.pass_thru
- || runparams.local_font->language()->lang() == "hebrew";
- if (force_plain)
+ // In pass-thru context, we output plain quotes
+ if (runparams.pass_thru)
qstr = (times_ == DoubleQuotes) ? "\"" : "'";
else if (language_ == FrenchQuotes && times_ == DoubleQuotes
&& prefixIs(runparams.local_font->language()->code(), "fr")
qstr = (times_ == DoubleQuotes) ? "\"" : "'";
else if (language_ == FrenchQuotes && times_ == DoubleQuotes
&& prefixIs(runparams.local_font->language()->code(), "fr")
// FIXME: really? (doesn't make a difference
// with recent babel-french)
qstr = " \\fg";
// FIXME: really? (doesn't make a difference
// with recent babel-french)
qstr = " \\fg";
- } else if (fontenc_ == "T1" && !runparams.use_polyglossia) {
+ } else if (fontenc_ == "T1"
+ && !runparams.local_font->language()->internalFontEncoding()
+ && !runparams.use_polyglossia) {
// Quotation marks for T1 font encoding
// (using ligatures)
qstr = latex_quote_t1[times_][quoteind];
// Quotation marks for T1 font encoding
// (using ligatures)
qstr = latex_quote_t1[times_][quoteind];
+ } else if (runparams.local_font->language()->internalFontEncoding()) {
+ // Quotation marks for internal font encodings
+ // (ligatures not featured)
+ qstr = latex_quote_noligatures[times_][quoteind];
#ifdef DO_USE_DEFAULT_LANGUAGE
} else if (doclang == "default") {
#else
#ifdef DO_USE_DEFAULT_LANGUAGE
} else if (doclang == "default") {
#else
qstr = latex_quote_babel[times_][quoteind];
}
qstr = latex_quote_babel[times_][quoteind];
}
+ if (!runparams.pass_thru) {
// Always guard against unfortunate ligatures (!` ?` `` '' ,, << >>)
char_type const lastchar = os.lastChar();
if (prefixIs(qstr, "`")) {
// Always guard against unfortunate ligatures (!` ?` `` '' ,, << >>)
char_type const lastchar = os.lastChar();
if (prefixIs(qstr, "`")) {