On Wed, Nov 07, 2007 at 09:29:38PM +0200, Martin Vermeer wrote: > > Has anybody else noticed that the branches feature doesn't work inside > math and inside graphics?
Not me ;-) > 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. Nice. > > 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); > } Could you name the macros "\lyxbranch" + name or such? Andre'