Has anybody else noticed that the branches feature doesn't work inside math and inside graphics? It would be especially nice to have it in the "special" LaTeX strings inside XFig graphics. An in text phrases inside math, like
/ 0 if x > 0 f(x) = | \ 1 if x <= 0 where you may want to have "if" in a different language. The attached does precisely that. It adds raw LaTeX commands \b<branchname> that are then available to the user. When enabled, they just pass through their content, when disabled, they suppress it. A demo is attached too. (You may have to tinker with the pathname of branch.fig to get it showing on your system) - Martin
Index: InsetBranch.cpp =================================================================== --- InsetBranch.cpp (revision 21475) +++ InsetBranch.cpp (working copy) @@ -22,6 +22,7 @@ #include "FuncRequest.h" #include "FuncStatus.h" #include "gettext.h" +#include "LaTeXFeatures.h" #include "Lexer.h" #include "OutputParams.h" @@ -212,8 +213,10 @@ std::find_if(branchlist.begin(), end, BranchNamesEqual(params_.branch)); if (it == end) - return false; - return it->getSelected(); + selected_ = false; + else + selected_ = it->getSelected(); + return selected_; } @@ -269,6 +272,12 @@ void InsetBranch::validate(LaTeXFeatures & features) const { + string const name = to_utf8(params_.branch); + features.require(name); + if (selected_) + features.addPreambleSnippet("\\newcommand{\\b" + name + "}[1]{#1}"); + else + features.addPreambleSnippet("\\newcommand{\\b" + name + "}[1]{}"); InsetText::validate(features); } Index: InsetBranch.h =================================================================== --- InsetBranch.h (revision 21475) +++ InsetBranch.h (working copy) @@ -96,6 +96,8 @@ /// InsetBranchParams params_; + /// + mutable bool selected_; };
newfile1.lyx
Description: application/lyx
branch.fig
Description: application/xfig