if (param_info_.empty()) {
param_info_.add("prefix", ParamInfo::LATEX_OPTIONAL);
param_info_.add("symbol", ParamInfo::LATEX_REQUIRED,
- ParamInfo::HANDLING_LATEXIFY);
+ ParamInfo::ParamHandling(ParamInfo::HANDLING_LATEXIFY
+ | ParamInfo::HANDLING_INDEX_ESCAPE));
param_info_.add("description", ParamInfo::LATEX_REQUIRED,
- ParamInfo::HANDLING_LATEXIFY);
+ ParamInfo::ParamHandling(ParamInfo::HANDLING_LATEXIFY
+ | ParamInfo::HANDLING_INDEX_ESCAPE));
+ param_info_.add("literal", ParamInfo::LYX_INTERNAL);
}
return param_info_;
}
void InsetNomencl::validate(LaTeXFeatures & features) const
{
features.require("nomencl");
+ InsetCommand::validate(features);
}
ParamInfo const & InsetPrintNomencl::findInfo(string const & /* cmdName */)
{
- // The symbol width is set via nomencl's \nomlabelwidth in
+ // The symbol width is set via nomencl's \nomlabelwidth in
// InsetPrintNomencl::latex and not as optional parameter of
// \printnomenclature
static ParamInfo param_info_;
InsetCommand const * ic = inset->asInsetCommand();
if (!ic)
return docstring();
-
+
// FIXME We need a link to the paragraph here, so we
// need some kind of struct.
docstring const symbol = ic->getParam("symbol");
docstring const desc = ic->getParam("description");
docstring const prefix = ic->getParam("prefix");
docstring const sortas = prefix.empty() ? symbol : prefix;
-
+
entries[sortas] = NomenclEntry(symbol, desc, &par);
}
-
+
if (entries.empty())
return docstring();
-
+
// we'll use our own stream, because we are going to defer everything.
// that's how we deal with the fact that we're probably inside a standard
// paragraph, and we don't want to be.
odocstringstream ods;
XHTMLStream xs(ods);
-
+
InsetLayout const & il = getLayout();
string const & tag = il.htmltag();
docstring toclabel = translateIfPossible(from_ascii("Nomenclature"),
xs << html::StartTag("div", "class='nomencl'")
<< html::StartTag(tag, "class='nomencl'")
- << toclabel
+ << toclabel
<< html::EndTag(tag)
<< html::CR()
<< html::StartTag("dl")
<< html::CR();
-
+
EntryMap::const_iterator eit = entries.begin();
EntryMap::const_iterator const een = entries.end();
for (; eit != een; ++eit) {
if (inset->lyxCode() != NOMENCL_CODE)
continue;
nomencl = static_cast<InsetNomencl const *>(inset);
- docstring const symbol =
- nomencl->getParam("symbol");
+ // Use proper formatting. We do not escape makeindex chars here
+ docstring const symbol = nomencl ?
+ nomencl->params().prepareCommand(runparams, nomencl->getParam("symbol"),
+ ParamInfo::HANDLING_LATEXIFY)
+ : docstring();
// This is only an approximation,
// but the best we can get.
int const wx = use_gui ?
}
}
// return the widest (or an empty) string
- if (symb.empty())
- return symb;
-
- // we have to encode the string properly
- pair<docstring, docstring> latex_symb =
- runparams.encoding->latexString(symb, runparams.dryrun);
- if (!latex_symb.second.empty())
- LYXERR0("Omitting uncodable characters '"
- << latex_symb.second
- << "' in nomencl widest string!");
- return latex_symb.first;
+ return symb;
}
-} // namespace anon
+} // namespace
void InsetPrintNomencl::latex(otexstream & os, OutputParams const & runparams_in) const
void InsetPrintNomencl::validate(LaTeXFeatures & features) const
{
+ features.useInsetLayout(getLayout());
features.require("nomencl");
}