I’m using DITA and I want to move the figure title below the
I tried to change the general rule of the Element <fig> in the
EDD like this:
dl | parml | image| lines | lq | note | hazardstatement | object | ol | p | pre
| codeblock | msgblock | screen | sl | ul | data | data-about | fn | foreign |
unknown | simpletable | fm-xref | xref), (title)?, (desc)?*
After this change it is possible to insert the element <title>
after the element <image>.
But when saving the XML-document after the changes I get the
following XML parser message: (Document Instance): Element title is not valid
for the content model
What’s going wrong?
With this "hack", you're making it possible for the author to create invalid DITA XML. Of course, you can do such a change in the EDD, but then your EDD is no longer in line with the DITA specification, that explicitly has the structure of placing the title element "before" the image. In the DITA DTD the structure is explicitly set to be "title first, then the image":
|topic (base), map (base), classifyMap, subjectScheme, learningBookmap, learningMap||( (title) (optional) then (desc) (optional) then (figgroup or dl or image or lines or lq or note or hazardstatement or object or ol or p or pre or sl or ul or data or data-about or fn or foreign or unknown or simpletable or xref) (any number) )|
(Source: fig )
Or in other words, with the approach you take, you would need to change the DITA DTD. But then it's no longer DITA 😉
One possibility might be to transform the elements with an XSLT during opening and saving the DITA XML, so that it remains valid in the DITA code but is also "temporarily valid" in FrameMaker in the way you want. But that's, well, naahhh, no. It's a little bit like telling your kid: "You can use that F-word at home any time you want and it's okay, but not outside in public".
The best approach would be probably to specialize DITA and set up your construction properly there. But that's a little bit more effort and doing it only for a visual effect would be a little bit of an overhead.
as Stefan mention DITA specifies that a title must be set before the image. That's OK. And for me there is no need to change the structure. But DITA specialization is always recommended, not at least as this is part of DITA's concept. But the reason for specialization can't only be this fig-title issue.
Think about deviding content and layout, and you will find the solution. Of course you want to have the title below the image, as all my German customers wants this that way. But you don't need to change your data creation process and data structure. You have to change your publishing process to achieve this.
And FrameMaker offers a solution for this in ditafm-output.ini. There is a setting
(this is default in FM 2015 and below)
Change this to
(this is default in FM 2017)
This little change puts the title below the Image when publishing your content.
Take care: ditafm-output.ini is located in FM-Installation Directory and your user Profile. Use file in your user Profile for your Tests and if this fits your Needs publish this to your coleaques.
BTW: AFAIK you are located in Germany. If you need further assist and some explanations in German get in touch by PM.
Or anyone really, could you explain how I get permission to modify the ditafm-output.ini file to get the results I want?
No worries, I figured it out. Thanks.