Ask Your Question

Advanced panel-like formatting

asked 2018-02-02 08:54:58 +0200

CuttingWide gravatar image

updated 2018-02-03 00:02:01 +0200

Hey together,

so I've started recently working with LibreOffice and already get a bit into working with sections. However, I would like to achieve the following behavior and I'm not quite sure how to achieve it:

  • Have "Panels" defined in a central place - usually a separate document or even gallery entries of some sort.
  • Basically, each panel has a general structure of a table with 2 columns.
  • The left column is reserved for the symbol. This is different for each panel type.
  • The symbol should be defined in the external section and only there. When it's changed, this should be reflected to all the used references.
  • However, the right column should be freetext.
  • I'm thinking of it more in a matter of "instructional text", such as "Insert your content

I got the sections working in general, however, it's always synced completely. Essentially I want only a part of the section to be synced. Is this possible or are there other alternative approaches?

EDIT: To clarify look at the following image coming from an AsciiDoctor-PDF-export. Panel example with AsciiDoctor

There I can insert different panels with an icon on the left side (no text per default) and free text on the right. Should I want to change the icon for all "Notes" for example, I can do it in one place and the change is distributed to all used references. My issue now is that even if I define the section and reference it somewhere else, my changes to the right text will get overriden as soon as I'm syncing it. So, essentially I want to prevent LibreOffice from syncing the text in the section Definition.

edit retag flag offensive close merge delete


Your edit shows your need is similar to one of mine. See this question for a complete discussion about the issue.

Accept the answer, this will give you points to upvote and do other funny things on this site.

ajlittoz gravatar imageajlittoz ( 2018-02-02 13:48:22 +0200 )edit

Well, your linked question almost resolves my question. I accepted the one from you below for now. However, I will look into providing some sort of alternative that just needs some fine-tuning (but builds up on your question) as an answer here in a bit.

CuttingWide gravatar imageCuttingWide ( 2018-02-02 21:30:43 +0200 )edit

I added a solution that fits my personal requirements as an answer below.

CuttingWide gravatar imageCuttingWide ( 2018-02-02 23:47:36 +0200 )edit

2 Answers

Sort by » oldest newest most voted

answered 2018-02-02 11:16:12 +0200

ajlittoz gravatar image

Sections, in LibO parlance, are parts of text flow for which you can define properties different from the default flow. They are usually set up for differing number of columns, margins, background colour, … They can be inserted in pages, tables, frames or even sections and make up an independent independent flow area. "Independent" here means that text cannot cross the frontier between the outside area and the internal section area.

Within a section, text flows smoothly from one column to the next. There is an option to request that text is spread evenly between columns instead of filling up the first up to the "natural" frontier (end of page, table or frame) before spilling over to the next one.

This said, your request does not fit well in columns philosophy. If your goal is to study sections, you have two options:

  • Use column breaks

    Type your "instruction" or title in the first column, then insert a column break to be able to write text in the second column. When at end of this text, insert a column break to revert to first column.

    This is not very convenient because you must manually insert the breaks at the right location. If your textual column contains several paragraph, the break is inserted only after the last one (could be replaced by an automatic column break insertion in paragraph styles: one for the "title" with break after, one for standard text without, one for last text paragraph with break after). However, if you change your mind and add a third column, the schema fails.

  • Use one section per item

    Start a new section for every item. Each section is independent from the others. You only need now a column break between the first and the second columns. You can add columns (but every section on its own) without messing distribution of contents between columns.

    This is not very convenient either, because you have a lot of manual work without real added-value and you can't control globally your document aspect: any change to column width must be repeated in each section.

Your main problem is synchronising the "title" and "text" columns. Once again, you have two options depending on the amount of text in "title" and your skill.

  • The easiest way: a table

    Insert a table with 2 columns. The first one will be dedicated to "title" and the second to text. Tables may extend past a page, so there is no problem with text flow. When you want to open a new item, just insert a new row.

    There are a few advantages to using a table. You can format borders in a variety of ways. If you need a title above your columns, this title may be repeated at the beginning of every page. The inconvenient is to use a table which may impose a performance penalty under some circumstances and make the file less compatible with other document processors (such as M$ Word) when exported to non-ODF formats

  • The "complex ...

edit flag offensive delete link more


That's quite a nice answer and I would upvote it if I code. Your last alternative sounds nice and generally something I will look into. However, I also edited my answer and posted an example, so maybe it gets a bit more clear.

Note: Your mention of templates does somehow fit it, but I'm looking for some sort of "block template" then. In Markdown languages they're referred to as "Macros", but obviously that's not the case here.

CuttingWide gravatar imageCuttingWide ( 2018-02-02 12:04:49 +0200 )edit

answered 2018-02-02 23:46:50 +0200

CuttingWide gravatar image

As stated before, I'm going to state the way I fixed my issue in my personal case. First it should be said, that the comment by @ajlittoz pointed me in the right direction (actually not the answer but that was likely a misunderstanding in the question). However, I still wanted to achieve something slightly different:

  • I don't want to place the image in the sidebar. It should just be indented relative to the general text body.
  • I want a separation line placed between the image and the description text. This line should automatically adjust to the length of the corresponding paragraph.
  • The image/icon on the left side should be aligned in one line with the top of the paragraph.

How I achieved that

Basic principle

We're starting with two paragraphs where we want to insert a panel for each of them. The starting point: image description

  1. Apply the paragraph-style "Marginalia" to the first paragraph.
  2. Go to the style gallery, select the Frame category and right-click on the Marginalia-style. Then select New.`
  3. In the opening window check the following settings
    • Organizer
      • Name: Obviously free, but should be something meaningful (I've chosen "Note" or "Warning" for example as it will resemble the panel type).
      • Activate AutoUpdate (recommended at least, if you want to see quick results and prevent forgetting to reassign the style).
      • Inherit from: Marginalia
    • Type
      • Size: Both Width and Height should be the same. I've chosen 1,00 cm for both. Also remove the AutoSize checkbox.
      • Position: Obviously depends on the individual case. For now, it suffices to check that Left Paragraph border is selected for the horizontal orientation and Paragraph text area for vertical orientation.
    • Area
      1. Click on Bitmap.
      2. In the left area click on Add / Import and browse for the desired image.
      3. After selecting the image, check Options > Style in the window and set it to Stretched.
      4. Confirm the frame style creation and exit the window with Ok.
  4. Place the cursor in the first paragraph, then use Insert > Frame > Frame.
  5. In the opening window change the following options (and not more for now).
    • Anchor: Must be set to To paragraph.
  6. After checking (cursor still in the same paragraph) go the Style menu and choose our recently created frame style.
  7. Check your current status. It should look similar to this:

image description

Improve formatting

Of course, the formatting above doesn't look good, so we're going to fix that now.

  1. Go to the style gallery, Paragraph styles, right click on Marginalia and then New.
  2. In the opening window check the following settings
    • Organizer
      • Name: Again, doesn't really matter much, but should be meaningful. Likely this paragraph style can or will be the same for all used panel types.
      • Activate AutoUpdate (again, recommended)
      • Next style: Also not really important, but usually it's assumed this should be set to your general text body style.
      • Inherit from: Marginalia
    • Indents & Spacing
      • Indent: Of course depends on your personal preference but for my case ...
edit flag offensive delete link more


Excellent! And it gives me lead for one of my pending problems.

Your icons are much nicer than mine. Where did you find them? Are they copyright-free?

ajlittoz gravatar imageajlittoz ( 2018-02-03 07:56:52 +0200 )edit
Login/Signup to Answer

Question Tools

1 follower


Asked: 2018-02-02 08:54:58 +0200

Seen: 130 times

Last updated: Feb 03 '18