Charles de Miramon wrote:
Hello
I'm starting to move my real work to LyX 1.6 and I have problem with the new
modules.
This seems mostly to be a problem with the new Flex insets. It doesn't
matter whether you put the code into a module or into an inc file as far
as this problem is concerned.
I had in LyX 1.5 some semantic custom markup for citations in Latin and Old
French in a mycharstyles.inc file
# Personal character styles definition
Format 2
CharStyle Latin
LatexType Command
LatexName latin
Font
Family Sans
EndFont
LabelFont
Family Roman
Color blue
EndFont
Preamble
\newcommand{\latin}[1]{\og~#1~\fg}
EndPreamble
End
CharStyle Ancien
LatexType Command
LatexName ancien
Font
Family Sans
EndFont
LabelFont
Family Roman
Color blue
EndFont
Preamble
\newcommand{\ancien}[1]{\og~#1~\fg}
EndPreamble
End
I have created a module in LyX 1.6 (I could not find any documentation about
the syntax of modules and the new flexible insets)
See the Customization manual, chapter 5, especially sections 5.2.1 and
5.3.6.
Latin.module
#\DeclareLyXModule{Latin}
#DescriptionBegin
#Définit des styles spécifiques pour les textes en latin et en ancien
français
#DescriptionEnd
#Charles de Miramon 24/11/08
Format 11
InsetLayout Latin
LyxType charstyle
LabelString Latin
LatexType Command
LatexName latin
Font
Family Sans
EndFont
LabelFont
Family Roman
Color blue
EndFont
Preamble
\newcommand{\latin}[1]{\og~#1~\fg}
EndPreamble
End
InsetLayout Ancien
LyxType charstyle
LabelString Ancien
LatexType Command
LatexName ancien
Font
Family Sans
EndFont
LabelFont
Family Roman
Color blue
EndFont
Preamble
\newcommand{\ancien}[1]{\og~#1~\fg}
EndPreamble
End
It works for new files but does not translate the old files.
The old LyX code was :
\begin_inset CharStyle Latin
status inlined
and the new one seems to be :
\begin_inset Flex Latin
status collapsed
Questions :
1) Is there a way to automatically transform the old custom charstyle
formatting to the module ?
This SHOULD work. As you see, LyX does update the file to the new
format. What does the LyX code look like if you use your new InsetLayout
definition? It's the disagreement between these that is causing the
problem, I think.
What you might want to do is just to put your old Format 2 code into a
module and let LyX do the conversion to Format 11 for you. You can also run:
python $LYXDIR/layout2layout.py oldlayout.module newlayout.module
and see how LyX converts it, then just use newlayout.module instead of
oldlayout.module.
2) Why do we have in the new syntax a 'status collapsed' ? Charstyles are
not insets that can be closed or opened
No, but they can have the "sublabel", showing which charstyle they are.
That's what this reflects.
And in fact, they can be collapsable if you want them to be. The
Decoration tag controls this.
3) I'm a bit mixed up between the old custom charstyles, flexible insets,
modules. What is going to be deprecated ?
There are no charstyles any more, only Flex insets.
Modules are an entirely different matter. They are a more flexible
alternative to include files.
rh