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'

Reply via email to