I'm attaching an image to show what I want.
See how the paragraph is indented by a certain margin with respect to the headings.
(This PDF was generated by Apache FOP, from a DocBook file)

That would be awesome. The way I've been approximating this is by using the unlabelled :: list syntax ,which is an awful hack and not flexible.
I've updated the title since this is actually a different thing from indented paragraphs. A paragraph indent is when the first line is intended from the subsequent lines...which is also a separate feature request.
What you're talking about here is being able to control the margins of the body text. This is certainly possible given that the section controls the rendering of its children and can offset the margins before proceeding.
@mojavelinux Hi, is there any plan to support indented first paragraph already?
@cloorc indented first paragraph? Do you mean indenting the first line? Or do you mean indenting just the first paragraph in a section?
How do you feel about the theme key section_indent?
section:
indent: 0.5in
or
section:
indent: [0.5in, 0]
For the record, the DocBook toolchain uses the properties body.start.indent and body.end.indent. However, I don't think these names are very intuitive.
Please review the proposed solution. See #1284.
Is it possible for blocks to "break out" of this section_indent? For example: wide tables, or images, even admonitions.
Perhaps something like:
image:
align: center
caption:
align: center
indent: -1in
prose:
margin_top: $block_margin_top
margin_bottom: $block_margin_bottom
section:
indent: 1in
No, that's not possible. We'd need a new issue to explore that kind of idea.
In an custom converter, I implemented a role .pagestretch for tables and figures that ensures the table/figure is stretch up to the page margins, not only the current content indent.
This allows writing extra wide tables like this:
[.pagestretch]
|===
...
|===
Do you think such a role should be standard in asciidoctor-pdf ? See below the code in the extended converter, it's pretty simple...
Also, what do you think of the name "pagestretch". Any better idea?
ruby
#
# Implement the role ".pagestretch" for tables, which allows the table to stretch
# to the page margins, instead of only to the section width
#
def convert_table node
if (node.has_role? 'pagestretch')
indent_l, indent_r = inflate_indent @theme[:section_indent]
else
indent_l, indent_r = 0,0
end
indent -indent_l, -indent_r do
super
end
end
I will consider if you open an new issue. This issue is closed and therefore no more code changes will come of it.
When you submit that issue, I suggest proposing the name pagewide instead of pagestretch. The former name is more consistent with what I've run across in other systems.
Most helpful comment
I've updated the title since this is actually a different thing from indented paragraphs. A paragraph indent is when the first line is intended from the subsequent lines...which is also a separate feature request.
What you're talking about here is being able to control the margins of the body text. This is certainly possible given that the section controls the rendering of its children and can offset the margins before proceeding.