On 12/28/2009 02:38 PM, Steve Litt wrote:
On Monday 28 December 2009 13:50:39 rgheck wrote:
On 12/28/2009 11:02 AM, Steve Litt wrote:
On Monday 28 December 2009 06:18:25 Pieter Claassen wrote:
I am trying to build a custom style/minipage environment for
comments/warnings/tips. However, many other collaborators in the
documentation project are not Lyx/Latex boffins so I cannot really ask
them to install custom extensions to Lyx/Latex.

Currently I use a Box with a minipage environment, but this has to be
customised based on whether it is a tip/warning or note that I am
   producing.

What is the easiest way to achieve this?

Thanks,
Pieter
Hi Pieter,

I've done it numerous ways. The best way I did it was to create a basic
LaTeX command called "callouttitleL" converted to LyX command
CalloutTitle and LaTeX environment callouttextL converted to LyX
environment CalloutText. Using these, you can have a text with an
arbitrary title. Three such arbitrary titles are "Note", "Tip" and
"Warning". I created custom LaTeX and LyX environments for those special
cases.

Here's the code:
You can put the preamble code into the layout, and then you only have to
deal with one file: the module.
Hi Richard,

I'm not sure what you mean. The only file I deal with is my layout file.

You have to paste the LaTeX separately into the LyX file.

If you mean putting a Preamble/EndPreamble pair inside a LyX environment, I
never do that because it can fail at the worst possible time. I documented
that a year or two ago on the lyx-users list. I always keep my LaTeX defs and
my LyX defs completely separate, with only the LatexName from the LyX def
linking them.

I'd be interested to know how this fails, when it does. The only issue we tend to see like this concerns conflicts between user-defined stuff and LyX-inserted stuff. The preamble stuff itself just gets output verbatim whenever the relevant style is used, so I think it is fairly foolproof. Indeed, the only difference between putting it into the document preamble and putting into the layout is exactly when it gets output---and the fact that preamble material associated with a given style is output only if that style is used. There are some tricks here regarding styles that depend on other styles. See the attached.

I have to learn how to use modules before my next book. Layouts have been
working well for me, but I understand modules are even better.

I'm attaching a module based on what you posted. As you will see, there's nothing to it. It's just a layout file, except for the header information. Put it in ~/.lyx/layouts/, reconfigure, and then look under Document>Settings>Modules. Select it and there you go.

Richard

#\DeclareLyXModule{Callout}
#DescriptionBegin
#Adds styles for various sorts of minipages, for titles, warnings, etc.
#DescriptionEnd

#Author: Steve Litt

Format 11

Style CalloutTitle
        Font
                Series  Bold
                Size Larger
        EndFont
        LatexName       callouttitleL
        LatexType       Command
  Align                 Center
        Preamble
                \newcommand{\callouttitleL}[1]{\def\callouttitleT{#1}}
        EndPreamble
End

Style CalloutText
        LatexType             Environment
        LatexName             callouttextL
        LeftMargin            MMMMMM
        RightMargin           MMMMMM
        ParIndent             MMM
        TopSep                1.4
        ItemSep               0.7
        ParSep                0.7
        BottomSep             0.7
        Align                 Block
        AlignPossible         Block

        Font 
                Series               Medium
                Size                 Normal
                Shape                Italic
        EndFont
        DependsOn             CalloutTitle
        Preamble
                \newenvironment{callouttextL}
                        {%
                        ~\\[-0.25in]%
                        \setlength\fboxsep{4pt}%
                        \definecolor{shadecolor}{rgb}{1.00,0.90,0.90}%
                        \begin{shaded}%
                        \addtolength{\hsize}{-0.20\columnwidth}%
                        {\centering\Large\callouttitleT\\[0.2cm]}%
                        \raggedright%
                        \setlength\parindent{16pt}%
                }%
                {%
                        \end{shaded}%
                        \par
                }%
        EndPreamble
End

Style Warning
        LatexType             Environment
        LatexName             warningL
        LeftMargin            MMMMMM
        RightMargin           MMMMMM
        ParIndent             MMM
        TopSep                1.4
        ItemSep               0.7
        ParSep                0.7
        BottomSep             0.7
        Align                 Block
        AlignPossible         Block
        LabelType             Centered_Top_Environment
        LabelString           "Warning"

        Font 
                Series               Medium
                Size                 Normal
                Shape                Italic
        EndFont
        Preamble
                
\newenvironment{warningL}{\callouttitleL{Warning}\begin{callouttextL}}
                {\end{callouttextL}}
        EndPreamble
        DependsOn             CalloutText
End


Style Tip
        LatexType             Environment
        LatexName             tipL
        LeftMargin            MMMMMM
        RightMargin           MMMMMM
        ParIndent             MMM
        TopSep                1.4
        ItemSep               0.7
        ParSep                0.7
        BottomSep             0.7
        Align                 Block
        AlignPossible         Block
        LabelType             Centered_Top_Environment
        LabelString           "Tip"

        Font 
                Series               Medium
                Size                 Normal
                Shape                Italic
        EndFont
        Preamble
                \newenvironment{tipL}{\callouttitleL{Tip}\begin{callouttextL}}
                {\end{callouttextL}}
        EndPreamble
        DependsOn             CalloutText
End


Style Note
        LatexType             Environment
        LatexName             noteL
        LeftMargin            MMMMMM
        RightMargin           MMMMMM
        ParIndent             MMM
        TopSep                1.4
        ItemSep               0.7
        ParSep                0.7
        BottomSep             0.7
        Align                 Block
        AlignPossible         Block
        LabelType             Centered_Top_Environment
        LabelString           "Note"

        Font 
                Series               Medium
                Size                 Normal
                Shape                Italic
        EndFont
        Preamble
                \newenvironment{noteL}{\callouttitleL{Note}\begin{callouttextL}}
                {\end{callouttextL}}
        EndPreamble
        DependsOn             CalloutText
End

Reply via email to