mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-27 03:36:39 +00:00
Listings: Move \label{} outside of caption={}
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23853 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
b7800ca8de
commit
8753847055
@ -30,6 +30,8 @@
|
|||||||
#include "support/docstream.h"
|
#include "support/docstream.h"
|
||||||
#include "support/lstrings.h"
|
#include "support/lstrings.h"
|
||||||
|
|
||||||
|
#include <boost/regex.hpp>
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
@ -37,6 +39,7 @@ using namespace lyx::support;
|
|||||||
|
|
||||||
namespace lyx {
|
namespace lyx {
|
||||||
|
|
||||||
|
using boost::regex;
|
||||||
|
|
||||||
char const lstinline_delimiters[] =
|
char const lstinline_delimiters[] =
|
||||||
"!*()-=+|;:'\"`,<.>/?QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm";
|
"!*()-=+|;:'\"`,<.>/?QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm";
|
||||||
@ -276,7 +279,22 @@ docstring InsetListings::getCaption(OutputParams const & runparams) const
|
|||||||
static_cast<InsetCaption *>(it->inset);
|
static_cast<InsetCaption *>(it->inset);
|
||||||
ins->getOptArg(ods, runparams);
|
ins->getOptArg(ods, runparams);
|
||||||
ins->getArgument(ods, runparams);
|
ins->getArgument(ods, runparams);
|
||||||
return ods.str();
|
// the caption may contain \label{} but the listings
|
||||||
|
// package prefer caption={}, label={}
|
||||||
|
docstring cap = ods.str();
|
||||||
|
if (!contains(to_utf8(cap), "\\label{"))
|
||||||
|
return cap;
|
||||||
|
// convert from
|
||||||
|
// blah1\label{blah2} blah3
|
||||||
|
// to
|
||||||
|
// blah1 blah3},label={blah2
|
||||||
|
// to form options
|
||||||
|
// caption={blah1 blah3},label={blah2}
|
||||||
|
//
|
||||||
|
// NOTE that } is not allowed in blah2.
|
||||||
|
regex const reg("(.*)\\\\label\\{(.*?)\\}(.*)");
|
||||||
|
string const new_cap("\\1\\3},label={\\2");
|
||||||
|
return from_utf8(regex_replace(to_utf8(cap), reg, new_cap));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user