Layout file format change proposal

Scott Kostyshak scott.kostyshak at gmail.com
Wed Mar 27 15:02:51 UTC 2024


On Wed, Mar 20, 2024 at 09:59:04AM +0100, Lorenzo Bertini wrote:
> Dear devs,
> I don't know if this has been discussed before. Lyx uses it's own
> format .layout (or .module), with it's own parser. However, the same
> information can be easily saved stored in another format. I asked a
> chatbot to convert "amsbook.layout" to an hypothetical "amsbook.yaml"
> file:
> 
> format: 104
> columns: 1
> sides: 2
> page_style: Headers
> docbook_root: book
> provides:
>   - amsmath: 1
>   - makeidx: 1
> class_options:
>   font_size: [8, 9, 10, 11, 12]
> default_modules:
>   - theorems-ams
>   - eqs-within-sections
>   - figs-within-sections
> styles:
>   Standard:
>     category: MainText
>     margin: Static
>     latex_type: Paragraph
>     latex_name: dummy
>     par_indent: MM
>     par_skip: 0.4
>     align: Block
>     align_possible: [Block, Left, Right, Center]
>     label_type: No_Label
>     docbook_tag: para
> preamble: "\numberwithin{section}{chapter}"
> inputs:
>   - stdsections.inc
>   - stdinsets.inc
>   - numreport.inc
>   - lyxmacros.inc
>   - stdlayouts.inc
>   - stdlists.inc
>   - stdfloats.inc
>   - stdcounters.inc
>   - amsdefs.inc
> unwanted_styles:
>   - Verse
>   - Bibliography:
>       toc_level: 0
> styles_append:
>   Section:
>     align: Center
>     font:
>       series: Bold
>       size: Large
>     toc_level: 1
>   Subsection:
>     font:
>       series: Bold
>       size: Normal
>     toc_level: 2
>   Subsubsection:
>     font:
>       shape: Italic
>       size: Normal
>     toc_level: 3
>   Section*:
>     align: Center
>     font:
>       series: Bold
>       size: Large
>   Subsection*:
>     font:
>       series: Bold
>       size: Normal
>   Subsubsection*:
>     font:
>       shape: Italic
>       size: Normal
>   Paragraph:
>     font:
>       series: Medium
>     toc_level: 4
>   Chapter_Exercises:
>     margin: First_Dynamic
>     latex_type: Item_Environment
>     latex_name: lyxxcb
>     next_no_indent: 1
>     left_margin: MMN
>     label_sep: xx
>     par_skip: 0.0
>     item_sep: 0.2
>     top_sep: 0.7
>     bottom_sep: 0.7
>     par_sep: 0.3
>     align: Block
>     align_possible: [Block, Left]
>     label_type: Itemize
>     label_font:
>       shape: Up
>       series: Bold
>     preamble: "\newenvironment{lyxxcb}..."
>     argument_listpreamble:
>       - label_string: "List preamble"
>         menu_string: "List Preamble"
>         tooltip: "LaTeX code to be inserted before the first item"
>         pass_thru: 1
>         font:
>           family: typewriter
>           color: latex
>     docbook_tag: para
>     docbook_attr: role='chapter-exercises'
> 
> I think it looks pretty good. The advantages of using an industry standard are:
> 1. People already know the format. This could encourage publishers to
> provide layouts.
> 2. Existing and solid tools for parsing can be used. Even if not
> directly by LyX, someone manipulating layouts externally doesn't need
> to reinvent the wheel.
> 
> Let me know what you think.

Cool idea, Lorenzo! There have been some discussions in the past on
using standard formats, even for the .lyx file itself. I can see the
advantages of that but I don't know what the cost of converting to them
is.

Scott


More information about the lyx-devel mailing list