<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6079275148760357392</id><updated>2011-11-03T16:29:20.520-07:00</updated><category term='conditional processing'/><category term='FOP'/><category term='DIT+FM'/><category term='figure width'/><category term='DITA'/><category term='FrameMaker'/><category term='PDF'/><category term='DITA-OT'/><category term='Visio'/><category term='DITA+FMx'/><category term='SVG'/><category term='XEP'/><category term='oXygen'/><category term='Inkscape'/><category term='ditaval'/><category term='Smart Quotes'/><category term='Saxon'/><category term='double quotation marks'/><title type='text'>Electropubs</title><subtitle type='html'>Based in the beautiful Haute Savoie region of France, Electropubs provides document engineering services to companies throughout Europe.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-3279093219822623754</id><published>2009-12-27T02:56:00.000-08:00</published><updated>2009-12-27T03:07:54.942-08:00</updated><title type='text'>Fonts in PDFs</title><content type='html'>This seems like an odd choice for default behaviour...&lt;br /&gt;&lt;br /&gt;To get any other font than the default (Helvetica) to appear in your PDFs, you have to copy the &lt;span style="font-family:courier new;"&gt;font-mappings.xml.orig&lt;/span&gt; file to &lt;span style="font-family:courier new;"&gt;font-mappings.xml&lt;/span&gt; in the folder &lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;dita-ot_homedir\&lt;/em&gt;&lt;/span&gt;demo\fo\Customization\fo&lt;/span&gt;.  Until you do, the &lt;span style="font-family:courier new;"&gt;i18n-postprocess.xsl&lt;/span&gt; file in the &lt;span style="font-family:courier new;"&gt;demo\fo\xsl\&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;fo&lt;/span&gt; folder adds a &lt;span style="font-family:courier new;"&gt;font-family="Helvetica"&lt;/span&gt; attribute to elements' FO code, overwriting any other fonts you may have specified for the element.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-3279093219822623754?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/3279093219822623754/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=3279093219822623754' title='39 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/3279093219822623754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/3279093219822623754'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2009/12/fonts-in-pdfs.html' title='Fonts in PDFs'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>39</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-3750044069113892754</id><published>2009-12-18T06:57:00.000-08:00</published><updated>2009-12-18T07:37:43.293-08:00</updated><title type='text'>Adding a chapter to a DITABOOK</title><content type='html'>There are many ways to add a new chapter to a DITABOOK. Not all work...&lt;br /&gt;&lt;br /&gt;When the chapter's content is in a single topic file, it is straightforward:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;chapter navtitle="Introduction" href="cIntroduction.xml"/&amp;gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A chapter may have an introductory paragraph or two before the first level one heading (typically "This chapter describes..."). In this case, just use the previous example and add topicref tags pointing to the chapter's sections. The topicrefs must be child elements of the chapter tag, for example:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;chapter href="TaskHelp/cIntroduction.xml"&amp;gt;&lt;br /&gt;&amp;lt;topicref navtitle="Updating a Module" href="FieldHelp/rModule_Update.xml"/&amp;gt;&lt;br /&gt;&amp;lt;/chapter&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If the chapter's content is more complex, you might prefer to put the chapter's content in a DITAMAP and reference this DITAMAP in the chapter tag:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;chapter href="chapter1.ditamap" format="ditamap"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are some pitfalls too:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If you do reference a DITAMAP, it must only contain a single top-level topicref tag. Otherwise, all the top-level topicref tags appear in the generated PDF at the chapter level but are not numbered as chapters. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;You must have an href attribute on the chapter tag, otherwise the topicref's titles appear at the chapter level and there's no chapter title. So neither of the following examples work:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;chapter&amp;gt;&lt;br /&gt;&amp;lt;topicref ...&amp;gt;&lt;br /&gt;&amp;lt;/chapter&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;chapter navtitle="Introduction"&amp;gt;&lt;br /&gt;&amp;lt;topicref ...&amp;gt;&lt;br /&gt;&amp;lt;/chapter&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-3750044069113892754?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/3750044069113892754/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=3750044069113892754' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/3750044069113892754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/3750044069113892754'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2009/12/adding-chapter-to-ditabook.html' title='Adding a chapter to a DITABOOK'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-5379085642663732691</id><published>2009-12-18T04:48:00.000-08:00</published><updated>2009-12-18T05:25:46.182-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DITA'/><category scheme='http://www.blogger.com/atom/ns#' term='SVG'/><category scheme='http://www.blogger.com/atom/ns#' term='oXygen'/><category scheme='http://www.blogger.com/atom/ns#' term='Inkscape'/><category scheme='http://www.blogger.com/atom/ns#' term='Visio'/><title type='text'>Visio and SVG still don't work together</title><content type='html'>Unfortunately, Microsoft don't seem interested in fixing the bug in Visio's SVG export filter that leaves arrowheads off lines. The bug survived the SP2 and SP3 updates for Visio, and apparently is even present in Visio 2007!&lt;br /&gt;There are several workarounds:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Don't use arrowheads in diagrams!&lt;/li&gt;&lt;li&gt;Fix the SVG file before using it&lt;/li&gt;&lt;li&gt;Use a different tool altogether.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;To draw arrows in Visio, just draw one long and two short lines (or a line and a filled triangle), then group them together. Not pretty, but it works.&lt;/p&gt;&lt;p&gt;I found a small XSLT script that fixes the problem. Because SVG files are XML, you can run the script against the SVG, then save the resulting XML as a new SVG file. Here's the script:&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE xsl:stylesheet&amp;gt;&lt;br /&gt;&amp;lt;!-- Workaround for:&lt;br /&gt;http://issues.apache.org/bugzilla/show_bug.cgi?id=38831 --&amp;gt;&lt;br /&gt;&amp;lt;!-- Adds overflow="visible" to all &amp;lt;marker&amp;gt; elements. --&amp;gt;&lt;br /&gt;&amp;lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:svg="http://www.w3.org/2000/svg"&lt;br /&gt;xmlns="http://www.w3.org/2000/svg" exclude-result-prefixes="svg"&amp;gt;&lt;br /&gt;&amp;lt;xsl:output method="xml" indent="no"/&amp;gt;&lt;br /&gt;&amp;lt;xsl:template match="svg:marker"&amp;gt;&lt;br /&gt;&amp;lt;xsl:element name="marker" xmlns="http://www.w3.org/2000/svg"&amp;gt;&lt;br /&gt;&amp;lt;xsl:copy-of select="@*"/&amp;gt;&lt;br /&gt;&amp;lt;xsl:attribute name="overflow"&amp;gt;visible&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;&amp;lt;xsl:copy-of select="node()"/&amp;gt;&lt;br /&gt;&amp;lt;/xsl:element&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&amp;lt;xsl:template match="@*node()"&amp;gt;&lt;br /&gt;&amp;lt;xsl:copy&amp;gt;&lt;br /&gt;&amp;lt;xsl:apply-templates select="@*node()"/&amp;gt;&lt;br /&gt;&amp;lt;/xsl:copy&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;I use oXygen to perform the transformation using the XSLT Debugger.&lt;/p&gt;&lt;p&gt;As far as alternative tools are concerned, I'm testing an Open Source tool called Inkscape. First impressions are that its interface is a bit quirky, but it seems perfectly adequate.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-5379085642663732691?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/5379085642663732691/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=5379085642663732691' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/5379085642663732691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/5379085642663732691'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2009/12/visio-and-svg-still-dont-work-together.html' title='Visio and SVG still don&apos;t work together'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-8619527922973421239</id><published>2009-12-18T04:36:00.000-08:00</published><updated>2009-12-18T04:47:21.905-08:00</updated><title type='text'>Migrating to a newer version of DITA-OT</title><content type='html'>Migrated to the latest "M24" milestone of the DITA-OT toolkit yesterday to hopefully benefit from some of the bug fixes.&lt;br /&gt;The only things to do to migrate were:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Copy my custom CSS files in the &lt;span style="font-family:courier new;"&gt;/css&lt;/span&gt; folder across.&lt;/li&gt;&lt;li&gt;Copy the &lt;span style="font-family:courier new;"&gt;/common&lt;/span&gt; folder across (contains toolbar graphics for XHTML).&lt;/li&gt;&lt;li&gt;Copy the &lt;span style="font-family:courier new;"&gt;/demo/fo/myCustomization&lt;/span&gt; folder across (customization layer for PDF generation).&lt;/li&gt;&lt;li&gt;Edit the &lt;span style="font-family:courier new;"&gt;/demo/fo/build.xml&lt;/span&gt; file and edit the line &lt;span style="font-family:courier new;"&gt;&amp;lt;property name="customization.dir ... &amp;gt;&lt;/span&gt; to point to the customization folder.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-8619527922973421239?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/8619527922973421239/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=8619527922973421239' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/8619527922973421239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/8619527922973421239'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2009/12/migrating-to-newer-version-of-dita-ot.html' title='Migrating to a newer version of DITA-OT'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-8146619954739922556</id><published>2009-12-13T02:41:00.000-08:00</published><updated>2009-12-13T03:01:19.730-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDF'/><category scheme='http://www.blogger.com/atom/ns#' term='oXygen'/><category scheme='http://www.blogger.com/atom/ns#' term='FOP'/><title type='text'>oXygen stalls creating PDF file</title><content type='html'>This one has got me a couple of times recently, so it's probably more for my benefit than anyone else's. &lt;br /&gt;&lt;br /&gt;When generating PDFs using oXygen, the PDFs are created correctly when using oXygen's internal DITA-OT. However, when I switch to using my own DITA-OT, the transform stalls when creating the .PDF from the .FO. As usual, oXygen's tech support came to the rescue...&lt;br /&gt;&lt;br /&gt;Seems that "with Windows XP, Apache FOP blocks the console before the PDF is generated", whatever that means.&lt;br /&gt;&lt;br /&gt;oXygen have introduced a patch into their internal DITA-OT to get around this. So you need to copy this patch across to your external DITA-OT version to benefit from the patch:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;In the build.xml file, search for the "transform.fo2pdf.fop" target. &lt;/li&gt;&lt;li&gt;Comment out the target template and replace it with the following one:&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;target name="transform.fo2pdf.fop" if="use.fop.pdf.formatter"&amp;gt&lt;br /&gt;&amp;lt;java classname="org.apache.fop.cli.Main" fork="yes" classpath="${java.class.path}" dir="${dita.map.output.dir}" failonerror="true"&amp;gt&lt;br /&gt;  &amp;lt;arg line="-fo "${inputfile}" -pdf "${outputFile}" -c "${fop.home}/conf/fop.xconf"/&amp;gt&lt;br /&gt;&amp;lt;java&amp;gt&lt;br /&gt;&amp;lt;target&amp;gt;&lt;/pre&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-8146619954739922556?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/8146619954739922556/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=8146619954739922556' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/8146619954739922556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/8146619954739922556'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2009/12/oxygen-stalls-creating-pdf-file.html' title='oXygen stalls creating PDF file'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-4212579153845702811</id><published>2009-12-13T02:27:00.000-08:00</published><updated>2009-12-13T02:40:56.981-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oXygen'/><category scheme='http://www.blogger.com/atom/ns#' term='Saxon'/><category scheme='http://www.blogger.com/atom/ns#' term='DITA-OT'/><title type='text'>Migrating to oXygen 11</title><content type='html'>DITA-OT transformation scenarios created for version 10.3 do not work with oXygen 11. The 10.3 scenarios contain references to Saxon libraries that no longer exist in oXygen 11 because they have migrated to the enterprise edition of Saxon.&lt;br /&gt;There are two easy workarounds:&lt;br /&gt;1) Create new transformation scenarios and manually recreate the settings.&lt;br /&gt;2) Edit the old transformation scenarios. Go to the &lt;strong&gt;Advanced&lt;/strong&gt; tab and click the &lt;strong&gt;Libraries&lt;/strong&gt; button.&lt;br /&gt;In the Custom Libraries list, remove &lt;span style="font-family:courier new;"&gt;saxon9sa.jar&lt;/span&gt; and &lt;span style="font-family:courier new;"&gt;saxon9-dom.jar&lt;/span&gt;, then add &lt;span style="font-family:courier new;"&gt;${oxygenHome}/lib/saxon9ee.jar&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-4212579153845702811?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/4212579153845702811/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=4212579153845702811' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/4212579153845702811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/4212579153845702811'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2009/12/migrating-to-oxygen-11.html' title='Migrating to oXygen 11'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-2352769941360739951</id><published>2009-12-12T07:45:00.000-08:00</published><updated>2009-12-12T08:23:01.612-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='figure width'/><category scheme='http://www.blogger.com/atom/ns#' term='FOP'/><category scheme='http://www.blogger.com/atom/ns#' term='XEP'/><category scheme='http://www.blogger.com/atom/ns#' term='DITA-OT'/><title type='text'>Figure sizes for DITA output to PDF</title><content type='html'>&lt;p&gt;&lt;span style="font-size:100%;"&gt;We will be having some people using FOP and others using XEP to generate PDF files. It's actually quite difficult to set the width and height attributes of figures so that graphics look good in both formats. Here are some recommendations: &lt;/span&gt;&lt;br /&gt;- FOP and XEP only have a very limited number of supported formats in common: GIF, JPEG and PNG for bitmaps and SVG for vectorials.&lt;br /&gt;- Only specify the width. The DITA-OT will then calculate the height automatically so as to preserve the original aspect ratio.&lt;br /&gt;- Specify the width in "real" width units, for example "10mm" or "3in".&lt;br /&gt;- For vectorial graphics, specify the same width value for all graphics to obtain a cleaner output. In the old FrameMaker template, the main text column was 135mm wide, so this is a good value to use.&lt;br /&gt;&lt;br /&gt;So, for example:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;fig&amp;gt;&lt;br /&gt;&amp;lt;img align="right" width="135mm" placement="break" href="architecture.svg"/&amp;gt;&lt;br /&gt;&amp;lt;/fig&amp;gt;&lt;/span&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-2352769941360739951?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/2352769941360739951/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=2352769941360739951' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/2352769941360739951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/2352769941360739951'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2009/12/figure-sizes-for-dita-output-to-pdf.html' title='Figure sizes for DITA output to PDF'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-2197791234861442718</id><published>2009-08-06T06:54:00.000-07:00</published><updated>2009-08-06T07:30:38.406-07:00</updated><title type='text'>Another DITA project...</title><content type='html'>Been a while since my last blog. How do all those twitters find the time to do it every single day?&lt;br /&gt;&lt;br /&gt;I've been pushing DITA at my Marseille client for a couple of years now. Initially, they had agreed to trial it on some online help for a new project. Turns out a couple of customers had been complaining that information was only available online, whereas they'd like it in a User Guide format as well. So DITA was an easy sell. I did some templates in FrameMaker and used Leximation's DITA-FMx plug to produce a set of help files that looked pretty similar to the current lot, as well as a PDF containing pretty much the same information. &lt;br /&gt;&lt;br /&gt;Throughout 2008, I did all the new product helps in DITA, and systematically produced a User Guide. It became known as the "new" help format (as opposed to the "old" help format). However, I remained the only writer using it: everyone else was still merrily tapping away in FrameMaker 7.2 (!)&lt;br /&gt;&lt;br /&gt;Then in May 2009 I was summoned to a meeting at which they were going to decide between DocBook and DITA as the next Corporate documentation standard. One guy had gone so far as to convert an entire Word document into DocBook. I managed to get in a quick DITA demo, and fortunately the guy accepted that DITA was the better option. Within an hour, they had ditched FrameMaker in favour of DITA for all new documentation. &lt;br /&gt;&lt;br /&gt;The only downside was that they want nothing to do with the FrameMaker/DITA-FMx solution. The problem they have had with FrameMaker is that developers and other engineers want to create official documents, and there's no way they were going to buy licenses and train everyone in FrameMaker.&lt;br /&gt;&lt;br /&gt;So I was to do a customization of the DITA-OT PDF2 transform, which uses XSL:FO and FOP or XEP to generate PDF files. They gave me a mere 10 days to do this, which seems a little tight at the time and once I'd looked at the customization procedure seemed very tight indeed! A pilot project was selected and everyone seemed happy. Selling DITA really is easy.&lt;br /&gt;&lt;br /&gt;Fast forward to early August and the template is done. Last week I sent it to a fellow tech writer and we got here to produce her first DITA-based PDF file within a day (spent almost entirely trying to generate a .BAT file that set up the DITA enviroment correctly). &lt;br /&gt;&lt;br /&gt;The next step is to get all the writers and developers using DITA... but that will have to wait for the &lt;em&gt;rentrée&lt;/em&gt; (a curiously French thing the rentrée... I used to think it was simply when the kids went back to school, but it's a much border cultural event. People lie on the beach all summer dreaming up schemes to get themselves promoted when they go back to work: the rentrée is when all these ideas are thrown at us poor contractors to implement. Strangelyl, it's also traditional in France to go on strike at this time... any minor complaint will do. I have arranged my holidays for the end of August/beginning of September specifically to avoid it).&lt;br /&gt;&lt;br /&gt;Anyway, to conclude, I learnt a lot during those 10 days, and will try to document some of them here. While it may appear that this is to inform you, in fact it's just so that I don't forget these things the next time I do such a project (and I'm probably the only person that ever reads this stuff anyway...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-2197791234861442718?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/2197791234861442718/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=2197791234861442718' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/2197791234861442718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/2197791234861442718'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2009/08/another-dita-project.html' title='Another DITA project...'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-8602111776930459207</id><published>2009-04-23T07:04:00.000-07:00</published><updated>2009-04-23T07:51:41.794-07:00</updated><title type='text'>DITA-FMx: Different title/bookmark in PDF output</title><content type='html'>DITA-FMx always uses the &amp;lt;title&amp;gt; element in a topic file to generate title text in both XHTML and PDF outputs (regardless, for example, of the value of the &lt;strong&gt;navtitle&lt;/strong&gt; attribute on the corresponding &amp;lt;topicref&amp;gt; element in the ditamap, and regardless of the value of the &lt;strong&gt;locktitle&lt;/strong&gt; attribute).&lt;br /&gt;&lt;br /&gt;I wanted a way to have one title on my HTML help pages and optionally a different one in the PDF file I generated using DITA-FMx's &lt;strong&gt;Generate Book from Map&lt;/strong&gt; command.&lt;br /&gt;&lt;br /&gt;I decided to use the &amp;lt;navtitle&amp;gt; element under &amp;lt;titlealts&amp;gt; ("alternative titles") in topic files to specify an alternative title for PDF output. I'm not too sure that this is DITA-compliant, but it works a charm. There's no support for this element in the default structured applications supplied with DITA-FMx, so I needed to make some modifications.&lt;br /&gt;&lt;br /&gt;1. I edited the EDD of the DITA-Topic-FM structured application (which is just used to format text while you are authoring a topic), and added some formatting for the &amp;lt;titlealts&amp;gt; element, for example, 12pt, Red, and Bold. I also added a Prefix to remind me what it was for!&lt;br /&gt;&lt;br /&gt;2. I edited the &lt;strong&gt;ditamap2fmbook.xsl&lt;/strong&gt; file of the DITA-Book-FM structured application (which is used to format text for the FrameMaker book generated using the &lt;strong&gt;Generate Book from Map &lt;/strong&gt;command). As its title suggests, this file translates a ditamap into a FrameMaker book. In fact, it only accomplishes the first stage of the conversion process, namely to generate a single XML file that includes all the ditamap and topic file content. This file is then further processed by FrameMaker's Read/Write Rules and converted to FM files.&lt;br /&gt;&lt;br /&gt;Editing this XSL file is unfortunately not too straightforward. I needed to make sure that whenever a &amp;lt;navtitle&amp;gt; element is found in a topic file, its text is to be written into the generated XML file as the &amp;lt;title&amp;gt; element in place of the default, top-level &amp;lt;title&amp;gt; element.  Here is the key part of the modified XSL:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;xsl:template match="title"&amp;gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;title&amp;gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  &amp;lt;xsl:choose&amp;gt;     &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;    &amp;lt;xsl:when test="following-sibling::titlealts/navtitle"&amp;gt;          &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;       &amp;lt;xsl:copy-of select="@*"&amp;gt;                    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;       &amp;lt;xsl:value-of select="following-sibling::titlealts/navtitle/text()"&amp;gt;           &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;     &amp;lt;/xsl:when&amp;gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;     &amp;lt;xsl:otherwise&amp;gt;          &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;       &amp;lt;xsl:copy-of select="@*node()"&amp;gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;     &amp;lt;/xsl:otherwise&amp;gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  &amp;lt;/xsl:choose&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;/title&amp;gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;/xsl:template&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;So when the &amp;lt;title&amp;gt; element is followed by a sibling &amp;lt;titlealts&amp;gt; element that has a child &amp;lt;navtitle&amp;gt; element, write that element's text into the &amp;lt;title&amp;gt; element instead. Otherwise, just use the &amp;lt;title&amp;gt; element's text as usual. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now when I want a different bookmark and heading in my PDF, I just add a &amp;lt;navtitle&amp;gt; element to my topic file, and set the &lt;strong&gt;locktitle &lt;/strong&gt;attribute to "yes" in the &amp;lt;topicref&amp;gt; element of the ditamap that references the topic file. If I set the &lt;strong&gt;locktitle &lt;/strong&gt;attribute back to "no", the &amp;lt;navtitle&amp;gt; is ignored and the default title text is used instead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-8602111776930459207?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/8602111776930459207/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=8602111776930459207' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/8602111776930459207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/8602111776930459207'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2009/04/dita-fmx-different-titlebookmark-in-pdf.html' title='DITA-FMx: Different title/bookmark in PDF output'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-8582600920820793783</id><published>2009-04-15T07:07:00.000-07:00</published><updated>2009-04-15T07:39:42.473-07:00</updated><title type='text'>Automatically applying master pages</title><content type='html'>I use DITA-FMx's &lt;strong&gt;Generate Book from Map&lt;/strong&gt; command to generate a FrameMaker book from a DITAMAP. I have tried to streamline the process as much to possible, with the result that I can now generate a full-featured PDF file from a DITAMAP in just a few minutes. &lt;br /&gt;&lt;br /&gt;One of the things that saves a bit of time is automatically applying master pages to the generated FrameMaker documents.&lt;br /&gt;&lt;br /&gt;To do this, I set up the following table on the MasterPageMaps reference page of my DITA-FMx-Book template file: &lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_UiEDfeHa6ng/SeXuLkD5FfI/AAAAAAAAAGk/fAY4stP4FGU/s1600-h/structtable.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:left;cursor:pointer; cursor:hand;width: 400px; height: 140px;" src="http://3.bp.blogspot.com/_UiEDfeHa6ng/SeXuLkD5FfI/AAAAAAAAAGk/fAY4stP4FGU/s400/structtable.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5324924016861451762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The last line, beginning with E:title, instructs FrameMaker to test the value of the &lt;strong&gt;outputclass &lt;/strong&gt;attribute on the &lt;strong&gt;title &lt;/strong&gt;element of a DITA topic file and assign the NonChapterPage1 master page if the attribute value is "NonChapterName".&lt;br /&gt;&lt;br /&gt;I assign the master pages by either: &lt;br /&gt;&lt;br /&gt;- Selecting the chapter files in the Book window and choosing &lt;strong&gt;Format &gt; Page Layout &gt; Assign Master Pages&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;- Selecting the &lt;strong&gt;Apply Master Pages&lt;/strong&gt; checkbox on the Update window when I first regenerate the table of contents for my book.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-8582600920820793783?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/8582600920820793783/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=8582600920820793783' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/8582600920820793783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/8582600920820793783'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2009/04/automatically-applying-master-pages.html' title='Automatically applying master pages'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UiEDfeHa6ng/SeXuLkD5FfI/AAAAAAAAAGk/fAY4stP4FGU/s72-c/structtable.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-3586848054506268370</id><published>2009-01-05T02:29:00.000-08:00</published><updated>2009-01-05T08:58:26.870-08:00</updated><title type='text'>Compiling FDK clients for FrameMaker 8.0</title><content type='html'>My FrameMaker Development Kit (FDK) clients were originally developed for FrameMaker 7 using Microsoft Visual C++. They always seemed to work fine on FrameMaker 8 too, but I baulked at upgrading Visual C++ because it was so expensive. However, I do get a lot of requests for FM8-specific versions of the EZVars clients, so over the Christmas holidays I finally got round to the upgrade.&lt;br /&gt;&lt;br /&gt;Upgrading was actually a lot easier, and cheaper, than I imagined.&lt;br /&gt;&lt;br /&gt;The first nice surprise was that Microsoft have released a free version of Visual C++, "Microsoft Visual C++ 2008 Express Edition". Bit of a mouthful, but it has all the functionality you need to create and compile FDK clients, and is compatible with FrameMaker 8.0.&lt;br /&gt;&lt;br /&gt;The second nice surprise was that I needed to make just a couple of minor modifications to get the clients working in the new environment:&lt;br /&gt;&lt;br /&gt;- In &lt;span style="font-weight: bold;"&gt;Tools &gt; Options &gt; Projects and Solutions &gt; VC++ Directories&lt;/span&gt;, add the &lt;span style="font-family: courier new;"&gt;FDK8\include&lt;/span&gt; and &lt;span style="font-family: courier new;"&gt;FDK8\lib&lt;/span&gt; directories.&lt;br /&gt;&lt;br /&gt;- In the &lt;span style="font-family: courier new;"&gt;versioninfo.rc&lt;/span&gt; resource file, change all references to "&lt;span style="font-family: courier new;"&gt;afxres.h&lt;/span&gt;" to "&lt;span style="font-family: courier new;"&gt;windows.h&lt;/span&gt;". (This file is only needed if your client displays dialog boxes or you want the client to auto-install itself in the &lt;span style="font-family: courier new;"&gt;fminit\Plugins&lt;/span&gt; folder without needing be registered in the &lt;span style="font-family: courier new;"&gt;maker.ini&lt;/span&gt; file).&lt;br /&gt;&lt;br /&gt;Recompile, and away you go...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-3586848054506268370?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/3586848054506268370/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=3586848054506268370' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/3586848054506268370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/3586848054506268370'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2009/01/compiling-fdk-clients-for-framemaker-80.html' title='Compiling FDK clients for FrameMaker 8.0'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-4930630317209773408</id><published>2008-12-22T09:11:00.000-08:00</published><updated>2009-01-03T13:05:54.590-08:00</updated><title type='text'>Weird problem with Type 1 fonts</title><content type='html'>Choosing and moving to a new laptop is always a big challenge. My latest move, from a Dell Inspiron to a Dell Latitude E6500, had been going quite well. I had installed all my applications, and managed to locate all the corresponding registration codes and licenses (thank goodness for Gmail). The next step was to get my FrameMaker and Acrobat setup working. I copied some old Type 1 fonts that I use from the old laptop, went into the Fonts applet in the Control panel and imported them, only to receive a bunch of "font corrupted" messages. Assuming the Zip file had somehow gotten messed up, I copied the fonts across again, but the same messages appeared.&lt;br /&gt;Googling for a while, I discovered that the Dell Latitude E6500 has a problem with Type 1 fonts. Various forum messages suggested upgrading the NVidia video drivers, which sounded like a lot of hassle. Then I found the following entry on a Dell forum:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;Just wanted to let any one know with the type 1 font installation issue  - the issue is with the NVIDIA driver.  This is only on systems with XP and does not effect Vista.  Windows expects the NVIDIA device driver to be a certain size (maximum).  The NVIDIA driver is slightly larger than expected.  A simple registry entry resolves the type 1 font issue in XP.  To resolve the issue, complete the following:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;Open the registry editor (START, RUN and type regedit and click OK)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;Navigate to the following key - HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\&lt;br /&gt;Control\SessionManager\MemoryManagement&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;Add a new REG_DWORD Value - Change the name of the value to SessionImageSize with a value (decimal) of 20  and then reboot the machine. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;You will now be able to install your type 1 fonts and have the latest proper video driver as well&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 51);"&gt;&lt;span style="font-size:100%;"&gt;Worked perfectly, and now I have all my Type 1 fonts installed. How weird is that?&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-4930630317209773408?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/4930630317209773408/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=4930630317209773408' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/4930630317209773408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/4930630317209773408'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2008/12/weird-problem-with-type-1-fonts.html' title='Weird problem with Type 1 fonts'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-2015218668981251785</id><published>2008-11-25T13:01:00.000-08:00</published><updated>2009-01-05T09:02:18.780-08:00</updated><title type='text'>Generating PDF output with DITA-FMx</title><content type='html'>(FrameMaker 8, DITA-FMx v1.00.26, DITA 1.0)&lt;br /&gt;&lt;br /&gt;The following is a procedure that I have tested and &lt;em&gt;almost&lt;/em&gt; perfected over the past couple of months to make a FrameMaker User Guide (and hence a PDF file) from a set of DITA topics originally targeted as online help.&lt;br /&gt;&lt;br /&gt;1. I want my User Guide to have a classic "book" structure rather than the Task/Reference/Concept structure of the online help, so I create a separate DITAMAP file specifically for the User Guide. Bear in mind that only top-level topic references in the DITAMAP file will map to chapters in the FrameMaker book.&lt;br /&gt;&lt;br /&gt;2. Create a DITAVAL file. Create or register this DITAVAL file with DITA-FMx using the &lt;strong&gt;DITA-FMx &gt; Ditaval manager&lt;/strong&gt; menu option. Create two entries in the DITAVAL file; "print" and "online". For the User Guide, you'll need to set the print action to "include" and the online action to "exclude". For example:&lt;br /&gt;&lt;br /&gt;&amp;lt;val&amp;gt;&lt;br /&gt;   &amp;lt;prop att="audience" val="print" action="exclude" /&amp;gt;&lt;br /&gt;   &amp;lt;prop att="audience" val="online" action="include" /&amp;gt;&lt;br /&gt;&amp;lt;/val&amp;gt;&lt;br /&gt;&lt;br /&gt;3. Add any User Guide-specific content to your DITA topic files. For example, I want screen captures to appear in the User Guide but not in the online help, so I add &amp;lt;fig&amp;gt; elements wherever appropriate. Set the &lt;strong&gt;audience&lt;/strong&gt; attribute on the &lt;fig&gt;element to "print". Similarly, if you have content specific to the online help that you don't want to appear in the User Guide, set the &lt;strong&gt;audience&lt;/strong&gt; attribute to "online".&lt;br /&gt;&lt;br /&gt;4. In the DITA-Fmx options window, set the DITA book application to the appropriate "book generation" application. Your application developer should have set this up for you: basically the Book application is a Structured application registered with FrameMaker that points to all the Template, EDD, and DTD files necessary to generate the book. You can review the available applications with &lt;strong&gt;StructureTools &amp;gt; Edit Application Definitions&lt;/strong&gt;. The value of the &lt;strong&gt;ApplicationName&lt;/strong&gt; element is the name that appears in DITA-Fmx's list of available applications.&lt;br /&gt;&lt;br /&gt;5. Choose &lt;strong&gt;DITA-FMx &amp;gt; Generate Book from Map&lt;/strong&gt;. You will probably get a "Validation of XML file failed" message box with a bunch of errors. Ignore these for now.&lt;br /&gt;&lt;br /&gt;6. Choose the book name. You will be using a "dummy" book originally, so I generally call it something like "DUMMY.book".&lt;br /&gt;&lt;br /&gt;7. When the Book window appears, save it immediately with the "real" name (&lt;strong&gt;File &amp;gt; Save book as&lt;/strong&gt;).&lt;br /&gt;&lt;br /&gt;8. Working now with the "real" book, add title page, front matter, and back matter files as necessary. I typically have Titlepage, Preface, TOC, and Index files, for example. Add these in a "nonstructured" way as you would with unstructured FrameMaker.&lt;br /&gt;&lt;br /&gt;9. I generally use the Titlepage document to contain all the universal variables that I use in the unstructured files and in the headers and footers of the structured files. For example, I set up ProductName and BookTitle variables. This way, I can easily import the variables into all the unstructured and structured files. More of this later.&lt;br /&gt;&lt;br /&gt;At this stage, you'll probably want to do a bout of debugging to set up the "real" book exactly as you want it. For fixes to the structured files, obviously do them in the original DITA topic files and DITAMAP, or they'll get overwritten the next time you re-generate the "dummy" book.&lt;br /&gt;&lt;br /&gt;When everything is set up as I want, I proceed as follows whenever I need to re-generate my User Guide:&lt;br /&gt;&lt;br /&gt;1. Make the User Guide DITAMAP file the current document.&lt;br /&gt;&lt;br /&gt;2. Check that the DITAVAL file is set up with "print=include" and "online="exclude".&lt;br /&gt;&lt;br /&gt;3. Choose &lt;strong&gt;DITA-FMx &amp;gt; Generate Book From Map&lt;/strong&gt;. Overwrite the "dummy" book file and confirm overwriting all files.&lt;br /&gt;&lt;br /&gt;4. Close the "dummy" book file and open the "real" book file.&lt;br /&gt;&lt;br /&gt;5. Open the Title page and import its variables into all other files in the book (&lt;strong&gt;File &amp;gt; Import &amp;gt; Formats&lt;/strong&gt;).&lt;br /&gt;&lt;br /&gt;6. Apply the correct Master pages to the generated files in the book (&lt;strong&gt;Format &amp;gt; Page Layout &amp;gt; Apply Master Pages&lt;/strong&gt;).&lt;br /&gt;&lt;br /&gt;7. Run &lt;strong&gt;DITA-FMx &gt; Apply Ditaval as conditions&lt;/strong&gt;. This sets all text that is marked as "exclude" in the DITAVAL file as conditional text and hides it.&lt;br /&gt;&lt;br /&gt;8. Optionally, turn off Conditional text indicators in each of the generated files (by default, text tagged with the "print" action appears in &lt;span style="color: rgb(255, 0, 0);"&gt;red&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;9. Generate the book (&lt;strong&gt;Edit &amp;gt; Update book&lt;/strong&gt;).&lt;br /&gt;&lt;br /&gt;10. When it's what you want, &lt;strong&gt;File &amp;gt; Save as PDF&lt;/strong&gt; and create your PDF file.&lt;br /&gt;&lt;br /&gt;I have this second procedure down to about 5 minutes per book now!&lt;br /&gt;&lt;br /&gt;The only caveat is that if ever you update your DITAMAP with a new top-level entry that causes a new FrameMaker chapter file to be created, you'll need to remember to manually add the new file to the "real" book.&lt;br /&gt;&lt;br /&gt;One other "bug" I have noticed is that if you use the &lt;strong&gt;locktitle&lt;/strong&gt; attribute in your DITAMAP to specify Title text specifically for the User Guide, the &lt;strong&gt;navtitle&lt;/strong&gt; text doesn't get copied to the PDF bookmarks when you generate a PDF file. Hopefully this will get fixed in a future release.&lt;/fig&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-2015218668981251785?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/2015218668981251785/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=2015218668981251785' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/2015218668981251785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/2015218668981251785'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2008/11/generating-pdf-output-with-dita-fmx.html' title='Generating PDF output with DITA-FMx'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-6894122817241692835</id><published>2008-11-25T08:16:00.001-08:00</published><updated>2008-11-26T02:41:01.147-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DITA'/><category scheme='http://www.blogger.com/atom/ns#' term='FrameMaker'/><category scheme='http://www.blogger.com/atom/ns#' term='Smart Quotes'/><category scheme='http://www.blogger.com/atom/ns#' term='DITA+FMx'/><category scheme='http://www.blogger.com/atom/ns#' term='double quotation marks'/><title type='text'>Smart quotes with FrameMaker and DITA-FMx</title><content type='html'>(FrameMaker 8 with DITA-FMx v1.00.26, DITA 1.0)&lt;br /&gt;&lt;br /&gt;If you have Smart Quotes turned on in FrameMaker, beware that double quotes (") typed in FrameMaker are by default translated as `` (&amp;amp;#&lt;span class="search_hit"&gt;8220&lt;/span&gt;;) and ” (&amp;amp;#8221;) in generated XHTML. Only by turning off Smart Quotes in FrameMaker can I get standard straight quotes " (&amp;amp;#34;)  in the XHTML. Of course, I then get straight quotes in my PDF files as well.&lt;br /&gt;&lt;br /&gt;The solution is to wrap the text in a &amp;lt;q&amp;gt; (quote) element in DITA.&lt;br /&gt;&lt;br /&gt;This has several advantages:&lt;br /&gt;1. The correct opening and closing smart quotes are inserted automatically in FrameMaker.&lt;br /&gt;2. The generated XHTML gets straight quotes.&lt;br /&gt;3. The generated PDF gets smart quotes.&lt;br /&gt;4. When the language attribute is set, the quotes get translated to localized versions, for example&lt;br /&gt;« (&amp;amp;#171;) and » (&amp;amp;#187;) in French.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-6894122817241692835?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/6894122817241692835/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=6894122817241692835' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/6894122817241692835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/6894122817241692835'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2008/11/smart-quotes-with-framemaker-and-dita.html' title='Smart quotes with FrameMaker and DITA-FMx'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-7801440864084540687</id><published>2008-06-13T04:33:00.000-07:00</published><updated>2008-06-13T04:35:31.118-07:00</updated><title type='text'>Viewing XML in Oxygen's browser</title><content type='html'>I had a problem viewing XML files in the browser configured within Oxygen 9: IE7 wouldn't launch at all.&lt;br /&gt;I fixed is by running:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;regsvr32 msxml3.dll&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt; I was then able to open the XML files with IE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-7801440864084540687?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/7801440864084540687/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=7801440864084540687' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/7801440864084540687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/7801440864084540687'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2008/06/viewing-xml-in-oxygens-browser.html' title='Viewing XML in Oxygen&apos;s browser'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-6164016326690246730</id><published>2008-03-10T07:14:00.000-07:00</published><updated>2008-03-10T07:24:57.281-07:00</updated><title type='text'>Translating HTML Files with DITA</title><content type='html'>We've just completed our first translation test with LionBridge.&lt;br /&gt;&lt;br /&gt;Overall, very successful, but just a few things to remember:&lt;br /&gt;&lt;br /&gt;- The &lt;strong&gt;xml-lang&lt;/strong&gt; attribute must be set in EVERY topic file. It's not enough to set it on the map and expect it to filter down. So for the French files we have for example:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;reference id = "idprjwiz4" lang = "fr-fr" ditaarch =" "&gt;&lt;a href="http://dita.oasis-open.org/architecture/2005/"&gt;&lt;span style="font-family:courier new;"&gt;http://dita.oasis-open.org/architecture/2005/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This causes the DITA-OT to use translated versions of "Related concepts", "Related reference" etc. for link titles.&lt;br /&gt;&lt;br /&gt;- Open the HHC, HHK and HHP files in a good text editor (I used Ultraedit) and save them as ASCII/ANSI. This is necessary because the HTMLHelp compiler does not support Unicode. In particular, before converting my HHK file, accented characters in the Index appeared incorrectly.&lt;br /&gt;&lt;br /&gt;- I don't know what effect it had specifically, but I set the Language option in the HHP file to French :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Language=0x40c French (France)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span &gt;You can set this with the Help Workshop: &lt;/span&gt;&lt;br /&gt;&lt;span &gt;&lt;/span&gt;&lt;br /&gt;&lt;span &gt;1. Double-click the &lt;strong&gt;Language&lt;/strong&gt; setting in the &lt;strong&gt;[OPTIONS]&lt;/strong&gt; list.&lt;/span&gt;&lt;br /&gt;&lt;span &gt;&lt;/span&gt;&lt;br /&gt;&lt;span &gt;2. In &lt;strong&gt;International Settings&lt;/strong&gt;, choose the language.&lt;/span&gt;&lt;br /&gt;&lt;span &gt;&lt;/span&gt;&lt;br /&gt;&lt;span &gt;3. Recompile.&lt;/span&gt;&lt;br /&gt;&lt;span &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-6164016326690246730?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/6164016326690246730/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=6164016326690246730' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/6164016326690246730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/6164016326690246730'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2008/03/translating-html-files-with-dita.html' title='Translating HTML Files with DITA'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-5504686515262130521</id><published>2007-09-04T00:25:00.000-07:00</published><updated>2007-09-04T00:50:22.358-07:00</updated><title type='text'>Switching Frame book applications with DITA+FMx</title><content type='html'>DITA+FMx does not (yet) include the Build FM DITABook menu option to build a FrameMaker book from a DITAMap. This is apparently due to licensing problems between Abobe and Leximation, the author of DITA+FMx.&lt;br /&gt;However, you can still use the option provided you keep your old DITA+FM plugin installed and follow the instructions described in the DITA+FMx documentation at &lt;a href="http://docs.leximation.com/dita-fmx/0.01/"&gt;http://docs.leximation.com/dita-fmx/0.01/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When you generate a Book, an option in the &lt;tt&gt;ditafm/DITAfm.ini&lt;/tt&gt; file controls which structured application FrameMaker calls to perform the generation of FrameMaker files. To switch between different applications, you have to comment out the lines that don't apply. For example:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;;DITABOOK-StructApp=DITA-FMx-Book&lt;br /&gt;;DITABOOK-StructApp=DITA-Book-FM&lt;br /&gt;DITABOOK-StructApp=Gemalto-DITA-Book-FM&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;In this example, the semicolon (;) comments out the first two entries, so the third one is used. If you forget to comment out an application, the first entry is used by FrameMaker. The names of the structured applications are as defined in the &lt;tt&gt;structapps.fm&lt;/tt&gt; file (&lt;strong&gt;File &gt; Structure Tools &gt; Edit Application Definitions&lt;/strong&gt;, then look at the &lt;strong&gt;XMLApplication/ApplicationName&lt;/strong&gt; tag in the structure view).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-5504686515262130521?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/5504686515262130521/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=5504686515262130521' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/5504686515262130521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/5504686515262130521'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2007/09/switching-frame-book-applications-with.html' title='Switching Frame book applications with DITA+FMx'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-7507366016352530144</id><published>2007-08-23T02:56:00.000-07:00</published><updated>2007-08-23T03:14:10.528-07:00</updated><title type='text'>Formatting Figure Titles in HTML and CHM</title><content type='html'>All DITA elements have an &lt;tt&gt;outputclass&lt;/tt&gt; attribute. Set this attribute to a CSS class name that exists in your CSS stylesheet and you have a very simple technique for formatting your HTML-based output. At least, that's what I thought....&lt;br /&gt;&lt;br /&gt;I have been inserting a &lt;tt&gt;figgroup&lt;/tt&gt; element after each of my  &lt;tt&gt;image&lt;/tt&gt;  elements, in order to get the figure title to appear below the image, instead of above it as DITA intends it. Problem was, when I set the &lt;tt&gt;outputclass&lt;/tt&gt; on the &lt;tt&gt;title&lt;/tt&gt; element that is a child element of &lt;tt&gt;figgroup&lt;/tt&gt;, the class attribute wasn't appearing in the HTML output.&lt;br /&gt;&lt;br /&gt;After much experimentation, I discovered that the solution is to set the &lt;tt&gt;outputclass&lt;/tt&gt; attribute on the &lt;tt&gt;figgroup&lt;/tt&gt; element itself:&lt;br /&gt;&lt;pre&gt;&amp;lt;fig&amp;gt;&lt;br /&gt;&amp;lt;image height="103" width="226" align="center"&lt;br /&gt;placement="break"  href = "images/DAEditLayoutwindow.gif" /&amp;gt;&lt;br /&gt;&amp;lt;figgroup outputclass = "figtitle"&amp;gt;&lt;br /&gt;&amp;lt;title&gt;The Edit Window Layout&lt;br /&gt;Window&lt;br /&gt;&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/figgroup&amp;gt;&lt;br /&gt;&amp;lt;/fig&amp;gt;&lt;/pre&gt;&lt;br /&gt;This produces the following HTML output:&lt;br /&gt;&lt;pre&gt;&amp;lt;span class="figtitle"&amp;gt;The Edit Window Layout&lt;br /&gt;Window&amp;lt;/span&amp;gt;&lt;/pre&gt;&lt;br /&gt;then, in my CSS stylesheet, I added :&lt;br /&gt;&lt;pre&gt;.figtitle {&lt;br /&gt;   font-weight: bold;&lt;br /&gt;   font-style: italic;&lt;br /&gt;   font-size: 8pt;&lt;br /&gt;   }&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-7507366016352530144?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/7507366016352530144/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=7507366016352530144' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/7507366016352530144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/7507366016352530144'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2007/08/formatting-figure-titles-in-html-and.html' title='Formatting Figure Titles in HTML and CHM'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-4947734216059230725</id><published>2007-08-20T07:30:00.000-07:00</published><updated>2007-08-20T08:03:52.334-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DITA'/><category scheme='http://www.blogger.com/atom/ns#' term='FrameMaker'/><category scheme='http://www.blogger.com/atom/ns#' term='DIT+FM'/><category scheme='http://www.blogger.com/atom/ns#' term='conditional processing'/><category scheme='http://www.blogger.com/atom/ns#' term='ditaval'/><title type='text'>Using a DITAVAL file with FM+DITA</title><content type='html'>For some reason, the conditional processing parameter &lt;tt&gt;dita.input.valfile&lt;/tt&gt; is not recognized by the DITA Open Toolkit when you're using the FM+DITA plugin.&lt;br /&gt;There's a workaround: add the value to the &lt;tt&gt;ditafm.ini&lt;/tt&gt; file in the &lt;tt&gt;ditafm&lt;/tt&gt; folder of your root FrameMaker installation.&lt;br /&gt;The procedure is quite straightforward:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Define the attributes in your topic files that you wish to make conditional (for example, set &lt;tt&gt;audience&lt;/tt&gt; to "internal", &lt;tt&gt;product&lt;/tt&gt; to "XMS Version 1" or &lt;tt&gt;platform&lt;/tt&gt; to "Unix").&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Open the &lt;tt&gt;ditafm.ini&lt;/tt&gt; file in a text editor. Find the &lt;tt&gt;AntCommand&lt;/tt&gt; line (in the &lt;strong&gt;[BuildFile]&lt;/strong&gt; section) and add &lt;strong&gt;-Ddita.input.valfile="&lt;/strong&gt;&lt;em&gt;path_to_ditaval_file"&lt;/em&gt;. For example:&lt;br /&gt;&lt;pre&gt;AntCommand=ant -Ddita.input.valfile="C:/WORK/VMXMSRepository/en-GB/XMS Help System/Common/common.ditaval"&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Create a .ditaval file in the specified location. The content is described in the DITA OT documentation. For example:&lt;br /&gt;&lt;pre&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;val&amp;gt;&lt;br /&gt;&amp;lt;prop att="product" val="m3" action="exclude" /&amp;gt;&lt;br /&gt;&amp;lt;/val&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Restart FrameMaker to take the changes to the &lt;tt&gt;ditafm.ini&lt;/tt&gt; file into account.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Note that this approach has one serious disadvantage: the &lt;tt&gt;ditafm.ini&lt;/tt&gt; file  controls &lt;span style="font-style: italic;"&gt;all &lt;/span&gt;conditional processing, so you can't have several different .ditaval files active simultaneously. Let's hope they address this problem soon.&lt;br /&gt;&lt;br /&gt;It's also not yet clear how this works in FrameMaker 8.0, as the aforementioned &lt;strong&gt;[BuildFile]&lt;/strong&gt; section is missing from the &lt;tt&gt;ditafm.ini&lt;/tt&gt; file supplied with FrameMaker 8.0 altogether (btw, it's now in the &lt;tt&gt;fminit/ditafm&lt;/tt&gt; folder).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-4947734216059230725?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/4947734216059230725/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=4947734216059230725' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/4947734216059230725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/4947734216059230725'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2007/08/using-ditaval-file-with-fmdita.html' title='Using a DITAVAL file with FM+DITA'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-383358629859246656</id><published>2007-08-09T02:47:00.000-07:00</published><updated>2007-08-20T08:00:31.913-07:00</updated><title type='text'>Customizing the index.html generated by DITA OT</title><content type='html'>By default, the &lt;tt&gt;index.html&lt;/tt&gt; file generated by the DITA Open Toolkit is pretty basic: there's no CSS referenced at all and all topicref elements are turned into bullets. I wanted to  use the same CSS as for the topic files, and have header levels indented to look like a proper table of contents. I also find it strange that topicheader elements defined in your ditamap don't appear at all in the output.&lt;br /&gt;Here's what I did:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Edit the &lt;tt&gt;map2htmltoc.xsl&lt;/tt&gt; file in the "xsl" folder of the DITA Open Toolkit.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Find the line containing &amp;lt;/head&amp;gt; that ends the HTML header in the generated file, and add the following line just above it:&lt;br /&gt;&lt;pre&gt;   &amp;lt;link rel="stylesheet" href="myCSS.css"&amp;gt;&amp;lt;/link&amp;gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Edit any other of the HTML tags you find spread about the place: I removed the  OL tags and changed all LIs to Ps.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;At the bottom of the file, I added the following template to output any text in TOPICHEAD elements of the DITAMAP (navtitle attribute):&lt;br /&gt;&lt;pre&gt; &amp;lt;xsl:template match="//topichead"&amp;gt;&lt;br /&gt;  &amp;lt;xsl:element name="h2"&amp;gt;&lt;br /&gt;  &amp;lt;xsl:attribute name="class"&amp;gt;topichead&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;  &amp;lt;xsl:value-of select="@navtitle" /&amp;gt;&lt;br /&gt;&amp;lt;/xsl:element&amp;gt;&amp;lt;xsl:value-of select="$newline"/&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-383358629859246656?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/383358629859246656/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=383358629859246656' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/383358629859246656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/383358629859246656'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2007/08/customizing-indexhtml-generated-by-dita.html' title='Customizing the index.html generated by DITA OT'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-3741359797727579217</id><published>2007-08-09T00:51:00.000-07:00</published><updated>2007-08-20T08:02:27.346-07:00</updated><title type='text'>Using your Own CSS with FM-DITA</title><content type='html'>I have been using my own CSS to format my DITA help topics for a while now. However, it was never a very "clean" solution because I was just manually copying my CSS into the html output folder, where it sat alongside the default CSS files &lt;span style="font-family: courier new;"&gt;common.css&lt;/span&gt;, &lt;span style="font-family: courier new;"&gt;commonltr.css &lt;/span&gt;and &lt;span style="font-family: courier new;"&gt;commonrtl.css&lt;/span&gt;. My developers have rightly been bugging me to clean up my act.&lt;br /&gt;&lt;br /&gt;Here's my solution:&lt;ol&gt;&lt;li&gt;Copy the CSS file into the &lt;tt&gt;resource&lt;/tt&gt; folder of the DITA open toolkit.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Edit the &lt;tt&gt;ditafm-ant.xml&lt;/tt&gt; file in the open toolkit root folder.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Scroll down until you find the HTML target section (&amp;lt;target name="html" ...&amp;gt;).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Add the following lines to the bottom of the section, just before the &lt;tt&gt;&amp;lt;/antcall&amp;gt;&lt;/tt&gt; line:&lt;br /&gt;&lt;pre&gt;    &amp;lt;param name="args.css" value="${dita.dir}${file.separator}resource${file.separator}myCSS.css""/&amp;gt;&lt;br /&gt;    &amp;lt;param name="args.csspath" value="."/&amp;gt;&lt;br /&gt;    &amp;lt;param name="args.copycss" value="yes"/&amp;gt;&lt;br /&gt;&lt;/pre&gt;These parameters are:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;args.css&lt;/strong&gt;. The location of the custom CSS file.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;args.csspath&lt;/strong&gt;. The path to copy it to, relative to the folder containing generated HTML files&lt;/li&gt;&lt;li&gt;&lt;strong&gt;args.copycss&lt;/strong&gt;. Whether to copy the file to the output folder.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Optionally, delete any other CSS files that you don't need from the &lt;tt&gt;resource&lt;/tt&gt; folder.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Regenerate your files as usual within FrameMaker and you should find your CSS file in the output folder.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-3741359797727579217?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/3741359797727579217/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=3741359797727579217' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/3741359797727579217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/3741359797727579217'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2007/08/using-your-own-css-with-fm-dita.html' title='Using your Own CSS with FM-DITA'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6079275148760357392.post-793330069893590783</id><published>2007-04-30T09:10:00.000-07:00</published><updated>2007-08-09T06:59:19.207-07:00</updated><title type='text'>Customizing DITA OT-generated XHTML</title><content type='html'>I finally figured out how to insert a block of HTML in the header of every generated XHTML file. &lt;br /&gt;The sequence seems to be:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Create a file containing the well-defined XHTML you want included in the header of each generated file, for example:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;div id="toolbar"&amp;gt;&amp;lt;a onclick="history.back()" href="#"&amp;gt;&amp;lt;img alt="Display the previous topic" src="back_32x32.gif" border="0" /&amp;gt;&amp;lt;/img&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a onclick="history.forward()" href="#"&amp;gt;&amp;lt;img alt="Display the next topic" src="forward_32x32.gif" border="0" /&amp;gt;&amp;lt;/img&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Note that there shouldn't be an &lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;?xml...&lt;/span&gt; line at the top of the fragment's file.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Edit the file that passes parameters to ANT. I'm using the FM-DITA plugin, so I edited the &lt;tt&gt;ditafm-ant.xml&lt;/tt&gt; file. In the &lt;tt&gt;&amp;lt;target name=&amp;quot;html&amp;quot;&amp;gt;&lt;/tt&gt; section, add the lines:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&amp;lt;param name=&amp;quot;args.hdr&amp;quot;  value=&amp;quot;file:/C:/fullpath/toolbar.html&amp;quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note that a) this must be a complete path, b) it should be a URI with forward slashes.&lt;br /&gt;&lt;li&gt;To copy any additional files (for example, the two GIF files referenced in my header), you can add COPY statements to the ANT build. For example: &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;copy file="common/back_32x32.gif" todir="${project.output.dir}${file.separator}html${file.separator}graphics" /&amp;gt;&lt;br /&gt;&amp;lt;copy file="common/forward_32x32.gif" todir="${project.output.dir}${file.separator}html${file.separator}graphics" /&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Note that if you're using DITA+FM, the COPY element cannot be embedded within an ANTCALL element, so place it, for example, between the &lt;tt&gt;&amp;lt;/antcall&amp;gt;&lt;/tt&gt; and the &lt;tt&gt;&amp;lt;/target&amp;gt;&lt;/tt&gt; elements in the &lt;tt&gt;&amp;lt;target name="html" &amp;gt;&lt;/tt&gt; section of &lt;tt&gt;ditafm-ant.xml&lt;/tt&gt;.&lt;/li&gt;&lt;br /&gt;Note also that for some strange reason best known to ANT, the path of the file to copy is relative to the DITA-OT home folder, and doesn't need a URI prefix.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Re-generate the output. &lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;Note that there are other parameters that work the same way...see &lt;tt&gt;dita2htmlImpl.xsl&lt;/tt&gt; in the dita-ot &lt;tt&gt;xsl/xslhtml&lt;/tt&gt; folder for details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6079275148760357392-793330069893590783?l=electropubs2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://electropubs2.blogspot.com/feeds/793330069893590783/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6079275148760357392&amp;postID=793330069893590783' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/793330069893590783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6079275148760357392/posts/default/793330069893590783'/><link rel='alternate' type='text/html' href='http://electropubs2.blogspot.com/2007/04/customizing-dita-ot-generated-xhtml.html' title='Customizing DITA OT-generated XHTML'/><author><name>Nigel Parker</name><uri>http://www.blogger.com/profile/11058567798794554402</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_UiEDfeHa6ng/SWHgaMMCU6I/AAAAAAAAAFw/qjH2qgTa0xk/S220/141213.jpg'/></author><thr:total>0</thr:total></entry></feed>
