-
Proposal:
Hide
Summary
Proposal owner: Miklos Vajna
Proposal short name: Page-content-bottom vertical relation
Rationale
Use cases
Users sometimes want to specify the vertical position of their shapes in text documents in a way that is relative from the bottom of the page content area.
Also, this improves consistency, specifying a position that is relative from the top of the page content area is already possible.
Alternatives considered
It is possible to have the same calculated position when positioning from the top of the page content area. The downside of this approach is that the position changes when the page height changes. So if the user intention is to position a shape 2 cm above the bottom of the page content area and the page height changes, the shape has to be manually re-positioned. This manual re-positioning is not needed with the proposed markup.
For example, if a shape has a height of 10 cm and a 2 cm spacing is wanted between the bottom of the shape and the bottom of the page content area, the position can be set to -12 cm, and then the 2 cm spacing will be maintained, even after the page height changes.
Requested changes to the ODF Standard
Text changes/additions (compared to ODF 1.2)
20.388 <style:vertical-rel> (existing section)
Append to the end of defined values for the style:vertical-rel attribute list:
page-content-bottom: vertical position of frame positioned relative to the
bottom of page content.
Append to the end of style:vertical-rel attribute value list:
page-content-bottom.
Table 23 - Vertical Relation Values:
page-content-bottom is allowed for page, paragraph and char text:anchor-type
values.
Schema changes/additions
<rng:define name="common-vertical-rel-attlist" combine="interleave">
{{ <rng:optional>}}
{{ <rng:attribute name="loext:vertical-rel">}}
{{ <rng:choice>}}
{{ <rng:value>page-content-bottom</rng:value>}}
{{ </rng:choice>}}
{{ </rng:attribute>}}
{{ </rng:optional>}}
{{ </rng:define>}}
In other words, allow page-content-bottom as a new value of the
style:vertical-rel attribute.
Impacts
Conformance
This proposal will not add any mandatory features or behaviors.
Backwards compatibility
This change will not impact existing ODF processors, the usage of the new attribute value is optional.
Accessibility impact
This change will not impact accessibility.
Interoperability
OOXML's wordprocessingML has a <wp:positionV relativeFrom="bottomMargin"> markup to describe the same, this proposal allows roundtripping that feature in ODF. LibreOffice 7.0 implements this layout feature in its ODF extension namespace.
Show
Summary
Proposal owner: Miklos Vajna
Proposal short name: Page-content-bottom vertical relation
Rationale
Use cases
Users sometimes want to specify the vertical position of their shapes in text documents in a way that is relative from the bottom of the page content area.
Also, this improves consistency, specifying a position that is relative from the top of the page content area is already possible.
Alternatives considered
It is possible to have the same calculated position when positioning from the top of the page content area. The downside of this approach is that the position changes when the page height changes. So if the user intention is to position a shape 2 cm above the bottom of the page content area and the page height changes, the shape has to be manually re-positioned. This manual re-positioning is not needed with the proposed markup.
For example, if a shape has a height of 10 cm and a 2 cm spacing is wanted between the bottom of the shape and the bottom of the page content area, the position can be set to -12 cm, and then the 2 cm spacing will be maintained, even after the page height changes.
Requested changes to the ODF Standard
Text changes/additions (compared to ODF 1.2)
20.388 <style:vertical-rel> (existing section)
Append to the end of defined values for the style:vertical-rel attribute list:
page-content-bottom: vertical position of frame positioned relative to the
bottom of page content.
Append to the end of style:vertical-rel attribute value list:
page-content-bottom.
Table 23 - Vertical Relation Values:
page-content-bottom is allowed for page, paragraph and char text:anchor-type
values.
Schema changes/additions
<rng:define name="common-vertical-rel-attlist" combine="interleave">
{{ <rng:optional>}}
{{ <rng:attribute name="loext:vertical-rel">}}
{{ <rng:choice>}}
{{ <rng:value>page-content-bottom</rng:value>}}
{{ </rng:choice>}}
{{ </rng:attribute>}}
{{ </rng:optional>}}
{{ </rng:define>}}
In other words, allow page-content-bottom as a new value of the
style:vertical-rel attribute.
Impacts
Conformance
This proposal will not add any mandatory features or behaviors.
Backwards compatibility
This change will not impact existing ODF processors, the usage of the new attribute value is optional.
Accessibility impact
This change will not impact accessibility.
Interoperability
OOXML's wordprocessingML has a <wp:positionV relativeFrom="bottomMargin"> markup to describe the same, this proposal allows roundtripping that feature in ODF. LibreOffice 7.0 implements this layout feature in its ODF extension namespace.
-
Resolution:
Hide
As per attachment:
20.397 style:vertical-pos
The style:vertical-pos attribute specifies the vertical alignment of a frame in relation to an area or line specified by the style:vertical-rel [20.402] attribute.
The defined values for the style:vertical-pos attribute are:
- below: the top corner of the frame is positioned below the reference area or line.
- bottom: the bottom of the frame is aligned with the bottom edge of the reference area or line.
- from-top: the svg:y attribute associated with the frame element specifies the vertical position of the the top edge of the frame relative to a reference line. Otherwise, the svg:y attribute is ignored for text documents.
In case the attribute style:vertical-rel specifies an area, the top edge of the area is used as reference line.
- middle: the middle of the frame is aligned with the middle of the reference area or line.
- top: the top of the frame is aligned with the top edge of the reference area or line.
20.398 style:vertical-rel
The style:vertical-rel attribute specifies the area or line against which the vertical position of a frame is positioned.
The defined values for the style:vertical-rel attribute are:
baseline: vertical position of frame positioned relative to a baseline.
char: vertical position of frame positioned relative to a character.
frame: vertical position of frame positioned relative to a frame area.
frame-content: vertical position of frame positioned relative to frame content area.
line: vertical position of frame positioned relative to a line.
page: vertical position of frame positioned relative to a page area.
page-content: vertical position of frame positioned relative to page content area.
page-content-bottom: vertical position of frame positioned relative to the area below the page content area.
paragraph: vertical position of frame positioned relative to a paragraph area.
paragraph-content: vertical position of frame positioned relative to paragraph content area.
text: vertical position of frame positioned relative to text.
Table 24 displays the defined values of style:vertical-rel and text:anchor-type attributes. Value combinations that can appear in a document are marked with an X.
Editorial note: See attached image of revised Table 24.
Show
As per attachment:
20.397 style:vertical-pos
The style:vertical-pos attribute specifies the vertical alignment of a frame in relation to an area or line specified by the style:vertical-rel [20.402] attribute.
The defined values for the style:vertical-pos attribute are:
below : the top corner of the frame is positioned below the reference area or line.
bottom : the bottom of the frame is aligned with the bottom edge of the reference area or line.
from-top : the svg:y attribute associated with the frame element specifies the vertical position of the the top edge of the frame relative to a reference line. Otherwise, the svg:y attribute is ignored for text documents.
In case the attribute style:vertical-rel specifies an area, the top edge of the area is used as reference line.
middle : the middle of the frame is aligned with the middle of the reference area or line.
top : the top of the frame is aligned with the top edge of the reference area or line.
20.398 style:vertical-rel
The style:vertical-rel attribute specifies the area or line against which the vertical position of a frame is positioned.
The defined values for the style:vertical-rel attribute are:
baseline : vertical position of frame positioned relative to a baseline.
char : vertical position of frame positioned relative to a character.
frame : vertical position of frame positioned relative to a frame area.
frame-content : vertical position of frame positioned relative to frame content area.
line : vertical position of frame positioned relative to a line.
page : vertical position of frame positioned relative to a page area.
page-content : vertical position of frame positioned relative to page content area.
page-content-bottom : vertical position of frame positioned relative to the area below the page content area.
paragraph : vertical position of frame positioned relative to a paragraph area.
paragraph-content : vertical position of frame positioned relative to paragraph content area.
text : vertical position of frame positioned relative to text.
Table 24 displays the defined values of style:vertical-rel and text:anchor-type attributes. Value combinations that can appear in a document are marked with an X.
Editorial note: See attached image of revised Table 24.
This is the proposal as received by the owner.
{"report":{"apdex":0.5,"isInitial":true,"journeyId":"1e6186e9-593b-41df-84fb-983878277671","key":"jira.project.issue.view-issue","navigationType":0,"readyForUser":2290.2000000476837,"redirectCount":0,"resourceLoadedEnd":2062.100000023842,"resourceLoadedStart":297.40000009536743,"resourceTiming":[{"duration":169.69999992847443,"initiatorType":"link","name":"https://issues.oasis-open.org/s/3edeca31ab9ba77980aae0809fbe7121-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/css/_super/batch.css","startTime":297.40000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":297.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":467.10000002384186,"responseStart":0,"secureConnectionStart":0},{"duration":169.79999995231628,"initiatorType":"link","name":"https://issues.oasis-open.org/s/7d2823769c2e7b66e860863fe879b7f8-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/css/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&richediton=true","startTime":297.7000000476837,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":297.7000000476837,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":467.5,"responseStart":0,"secureConnectionStart":0},{"duration":169.60000002384186,"initiatorType":"link","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.css","startTime":298,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":298,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":467.60000002384186,"responseStart":0,"secureConnectionStart":0},{"duration":173.20000004768372,"initiatorType":"link","name":"https://issues.oasis-open.org/s/645acc233eb869f48a571293b8358a7d-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static-adgs/jira.webresources:global-static-adgs.css","startTime":298.2000000476837,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":298.2000000476837,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":471.40000009536743,"responseStart":0,"secureConnectionStart":0},{"duration":173.19999992847443,"initiatorType":"link","name":"https://issues.oasis-open.org/s/a0dd6509771c1de0667aae5429c04cda-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css","startTime":298.40000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":298.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":471.60000002384186,"responseStart":0,"secureConnectionStart":0},{"duration":1432.2000000476837,"initiatorType":"script","name":"https://issues.oasis-open.org/s/e5479157e7a0c08b005e6522f2f04104-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/js/_super/batch.js?locale=en-US","startTime":298.60000002384186,"connectEnd":523.2000000476837,"connectStart":474.8000000715256,"domainLookupEnd":474.8000000715256,"domainLookupStart":474.8000000715256,"fetchStart":298.60000002384186,"redirectEnd":0,"redirectStart":0,"requestStart":523.3000000715256,"responseEnd":1730.8000000715256,"responseStart":552.1000000238419,"secureConnectionStart":498.8000000715256},{"duration":1762.8999999761581,"initiatorType":"script","name":"https://issues.oasis-open.org/s/83514d5d4e8543747b02042eafcdc99c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/js/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":299.2000000476837,"connectEnd":525.1000000238419,"connectStart":476.3000000715256,"domainLookupEnd":476.3000000715256,"domainLookupStart":476.3000000715256,"fetchStart":299.2000000476837,"redirectEnd":0,"redirectStart":0,"requestStart":530.3000000715256,"responseEnd":2062.100000023842,"responseStart":563.3000000715256,"secureConnectionStart":500.40000009536743},{"duration":266.09999990463257,"initiatorType":"script","name":"https://issues.oasis-open.org/s/70bb2263e59e7e1f04fbd137c80b895b-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/aae1242f5fc81cc6a5bb8bc963ccda29/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en-US","startTime":299.40000009536743,"connectEnd":530,"connectStart":478.8000000715256,"domainLookupEnd":478.8000000715256,"domainLookupStart":478.8000000715256,"fetchStart":299.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":530.5,"responseEnd":565.5,"responseStart":562.6000000238419,"secureConnectionStart":502.8000000715256},{"duration":265.60000002384186,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":299.60000002384186,"connectEnd":530.2000000476837,"connectStart":479.10000002384186,"domainLookupEnd":479.10000002384186,"domainLookupStart":479.10000002384186,"fetchStart":299.60000002384186,"redirectEnd":0,"redirectStart":0,"requestStart":530.5,"responseEnd":565.2000000476837,"responseStart":563.8000000715256,"secureConnectionStart":503.10000002384186},{"duration":263.5,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":299.7000000476837,"connectEnd":530,"connectStart":478.3000000715256,"domainLookupEnd":478.3000000715256,"domainLookupStart":478.3000000715256,"fetchStart":299.7000000476837,"redirectEnd":0,"redirectStart":0,"requestStart":530.3000000715256,"responseEnd":563.2000000476837,"responseStart":562.1000000238419,"secureConnectionStart":502.60000002384186},{"duration":261.2000000476837,"initiatorType":"script","name":"https://issues.oasis-open.org/s/cda37faab827dbdf305de8efe8282062-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.js?locale=en-US","startTime":300,"connectEnd":530.2000000476837,"connectStart":479.3000000715256,"domainLookupEnd":479.3000000715256,"domainLookupStart":479.3000000715256,"fetchStart":300,"redirectEnd":0,"redirectStart":0,"requestStart":530.6000000238419,"responseEnd":561.2000000476837,"responseStart":560.4000000953674,"secureConnectionStart":503.40000009536743},{"duration":179.39999997615814,"initiatorType":"link","name":"https://issues.oasis-open.org/s/07245784f53abc49bad9d9d4d36c577a-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/cadc4f20cc5c138dee060d42cf85f220/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":300.10000002384186,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":300.10000002384186,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":479.5,"responseStart":0,"secureConnectionStart":0},{"duration":337.5,"initiatorType":"script","name":"https://issues.oasis-open.org/rest/api/1.0/shortcuts/803004/bd451b0923ea64bd27375a5c43348fc3/shortcuts.js?context=issuenavigation&context=issueaction","startTime":300.3000000715256,"connectEnd":609.6000000238419,"connectStart":561,"domainLookupEnd":561,"domainLookupStart":561,"fetchStart":300.3000000715256,"redirectEnd":0,"redirectStart":0,"requestStart":609.7000000476837,"responseEnd":637.8000000715256,"responseStart":637.2000000476837,"secureConnectionStart":585.1000000238419},{"duration":181.30000007152557,"initiatorType":"link","name":"https://issues.oasis-open.org/s/f77fd89aa211a76b20e9b0e63564383c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.css?jira.create.linked.issue=true&richediton=true","startTime":349.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":349.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":530.8000000715256,"responseStart":0,"secureConnectionStart":0},{"duration":312,"initiatorType":"script","name":"https://issues.oasis-open.org/s/41525c48ddceeb9b11e54085268fc285-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.js?jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":349.90000009536743,"connectEnd":611.4000000953674,"connectStart":563.1000000238419,"domainLookupEnd":563.1000000238419,"domainLookupStart":563.1000000238419,"fetchStart":349.90000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":611.5,"responseEnd":661.9000000953674,"responseStart":658.6000000238419,"secureConnectionStart":586.8000000715256},{"duration":650.6999999284744,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":360.3000000715256,"connectEnd":983.4000000953674,"connectStart":931.9000000953674,"domainLookupEnd":931.9000000953674,"domainLookupStart":931.9000000953674,"fetchStart":360.3000000715256,"redirectEnd":0,"redirectStart":0,"requestStart":983.5,"responseEnd":1011,"responseStart":1010.3000000715256,"secureConnectionStart":958.3000000715256},{"duration":811.4000000953674,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":380,"connectEnd":1163.9000000953674,"connectStart":1115.3000000715256,"domainLookupEnd":1115.3000000715256,"domainLookupStart":1115.3000000715256,"fetchStart":380,"redirectEnd":0,"redirectStart":0,"requestStart":1164.1000000238419,"responseEnd":1191.4000000953674,"responseStart":1190.6000000238419,"secureConnectionStart":1139.4000000953674},{"duration":269.7000000476837,"initiatorType":"xmlhttprequest","name":"https://issues.oasis-open.org/rest/webResources/1.0/resources","startTime":1856.6000000238419,"connectEnd":2093.5,"connectStart":2042.7000000476837,"domainLookupEnd":2042.7000000476837,"domainLookupStart":2042.7000000476837,"fetchStart":1856.6000000238419,"redirectEnd":0,"redirectStart":0,"requestStart":2093.5,"responseEnd":2126.3000000715256,"responseStart":2125.600000023842,"secureConnectionStart":2068.9000000953674}],"threshold":1000,"fetchStart":1,"domainLookupStart":81,"domainLookupEnd":148,"connectStart":149,"connectEnd":238,"secureConnectionStart":172,"requestStart":238,"responseStart":289,"responseEnd":380,"domLoading":293,"domInteractive":2374,"domContentLoadedEventStart":2377,"domContentLoadedEventEnd":2438,"domComplete":2505,"loadEventStart":2505,"loadEventEnd":2507,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[],"measures":[],"correlationId":"a184105fa87990","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":115,"dbReadsTimeInMs":14,"dbConnsTimeInMs":20,"applicationHash":"4d4040e0714d65b7fffa4801569d014c0b16eaa9","experiments":[]}}
As per TC - 8 June 2020