mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-11 05:33:33 +00:00
* InsetNomenclature.cpp:
- handle unicode gracefully. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33462 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
1178b30c54
commit
5fe40522fe
@ -18,6 +18,7 @@
|
||||
#include "Buffer.h"
|
||||
#include "DispatchResult.h"
|
||||
#include "Font.h"
|
||||
#include "Encoding.h"
|
||||
#include "FuncRequest.h"
|
||||
#include "FuncStatus.h"
|
||||
#include "InsetIterator.h"
|
||||
@ -26,6 +27,7 @@
|
||||
#include "Length.h"
|
||||
#include "LyX.h"
|
||||
#include "MetricsInfo.h"
|
||||
#include "OutputParams.h"
|
||||
#include "output_xhtml.h"
|
||||
#include "sgml.h"
|
||||
|
||||
@ -58,8 +60,10 @@ ParamInfo const & InsetNomencl::findInfo(string const & /* cmdName */)
|
||||
static ParamInfo param_info_;
|
||||
if (param_info_.empty()) {
|
||||
param_info_.add("prefix", ParamInfo::LATEX_OPTIONAL);
|
||||
param_info_.add("symbol", ParamInfo::LATEX_REQUIRED);
|
||||
param_info_.add("description", ParamInfo::LATEX_REQUIRED);
|
||||
param_info_.add("symbol", ParamInfo::LATEX_REQUIRED,
|
||||
ParamInfo::HANDLING_LATEXIFY);
|
||||
param_info_.add("description", ParamInfo::LATEX_REQUIRED,
|
||||
ParamInfo::HANDLING_LATEXIFY);
|
||||
}
|
||||
return param_info_;
|
||||
}
|
||||
@ -230,7 +234,7 @@ int InsetPrintNomencl::docbook(odocstream & os, OutputParams const &) const
|
||||
|
||||
|
||||
namespace {
|
||||
docstring nomenclWidest(Buffer const & buffer)
|
||||
docstring nomenclWidest(Buffer const & buffer, OutputParams const & runparams)
|
||||
{
|
||||
// nomenclWidest() determines and returns the widest used
|
||||
// nomenclature symbol in the document
|
||||
@ -265,6 +269,22 @@ docstring nomenclWidest(Buffer const & buffer)
|
||||
}
|
||||
}
|
||||
// return the widest (or an empty) string
|
||||
if (!symb.empty()) {
|
||||
docstring latex_symb;
|
||||
for (size_t n = 0; n < symb.size(); ++n) {
|
||||
try {
|
||||
latex_symb += runparams.encoding->latexChar(symb[n]);
|
||||
} catch (EncodingException & /* e */) {
|
||||
if (runparams.dryrun) {
|
||||
latex_symb += "<" + _("LyX Warning: ")
|
||||
+ _("uncodable character") + " '";
|
||||
latex_symb += docstring(1, symb[n]);
|
||||
latex_symb += "'>";
|
||||
}
|
||||
}
|
||||
}
|
||||
return latex_symb;
|
||||
}
|
||||
return symb;
|
||||
}
|
||||
}
|
||||
@ -272,9 +292,10 @@ docstring nomenclWidest(Buffer const & buffer)
|
||||
|
||||
int InsetPrintNomencl::latex(odocstream & os, OutputParams const & runparams_in) const
|
||||
{
|
||||
OutputParams runparams = runparams_in;
|
||||
int lines = 0;
|
||||
if (getParam("set_width") == "auto") {
|
||||
docstring widest = nomenclWidest(buffer());
|
||||
docstring widest = nomenclWidest(buffer(), runparams);
|
||||
// Set the label width via nomencl's command \nomlabelwidth.
|
||||
// This must be output before the command \printnomenclature
|
||||
if (!widest.empty()) {
|
||||
@ -295,7 +316,6 @@ int InsetPrintNomencl::latex(odocstream & os, OutputParams const & runparams_in)
|
||||
return lines;
|
||||
}
|
||||
// output the command \printnomenclature
|
||||
OutputParams runparams = runparams_in;
|
||||
os << getCommand(runparams);
|
||||
return lines;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user