Pages: « 1 2 3 4 5 6 7 8 9 10 »
 11 
 on: May 10, 2017, 12:58:24 PM 
Started by olli_lib - Last post by Derek Read
You can extend the CSS files used for DITA authoring, and specifically the topic.dtd, by adding selectors to this file:

C:\Program Files\XMetaL 12.0\Author\DITA\XACs\<dita version>\topic\topic_ditabase-specialized.css

The <dita version> is the folder used by the version of DITA you are authoring to, as set in Tools > DITA Options on the General tab under "Select Default DITA Version". In version 12 you can choose from 1.1, 1.2 or 1.3. The default version is 1.3.

Keep in mind that standard W3C CSS cascading rules apply. So, if you are overriding a previously defined CSS selector (which is very likely) any selector you add needs to be at least as "specific". Any property set on the other selector will also still be in effect unless you provide a new value for it. Also, all the selectors for DITA use the DITA @class for the element (not the element name). This allows them to automatically be applied to any elements in any specialized DITA DTD that specializes that element (ie: if you specialize to add a <para> element based on <p> then they will look the same). In order to be as specific (according to the CSS cascade rules) you need to follow the same format (which basically means using the class attribute).

To check which other values are previously set have a look at this file (and the files it imports):

C:\Program Files (x86)\XMetaL 12.0\Author\DITA\XACs\<dita version>\topic\topic_ditabase.css
or
C:\Program Files\XMetaL 12.0\Author\DITA\XACs\<dita version>\topic\topic_ditabase.css

That file just imports other CSS files, like so:

@import url(..\..\shared\ditabase-base.css);
@import url(..\ditabase\ditabase-base-override.css);
@import url(..\..\shared\ditabase-derived.css);
@import url(..\ditabase\ditabase-derived-override.css);
@import url(topic_ditabase-specialized.css);


...which is why you would normally add any of your own overrides or additional selectors to topic_ditabase-specialized.css

Of course you could also make modifications directly to any of these CSS files, it is just a bit cleaner to do it this way because then all of your changes are in one place. Adding them to topic_ditabase-specialized.css also means they are guaranteed to load last.

I would recommend commenting any changes you make with the date and reason. XMetaL Support often has clients contacting them for help with changes made to the software several years after they were done (not usually CSS, but macros and other functionality) when the creator is either now gone or doesn't know what they did or why. Makes it impossible to guess what the intended purpose for any particular change might have been.

Example that turns topic/p elements red for the topic.dtd for DITA version 1.3:

The CSS selector for this element is defined here (and imported by the other DITA CSS files):

C:\Program Files\XMetaL 12.0\Author\DITA\XACs\shared\ditabase-base.css

/* p */
[class~="topic/p"] {
   display: block;
   margin-top: 2px;
   margin-right: 2px;
   margin-bottom: 8px;
}


Modify this file:
C:\Program Files\XMetaL 12.0\Author\DITA\XACs\1.3\topic\topic_ditabase.css

Add something similar to this:
/* Derek Read
2017-05-10
changed p element to make it red
because I needed it to stick out and be really obvious
*/
[class~="topic/p"] {
color: red
}

 12 
 on: May 10, 2017, 07:06:55 AM 
Started by olli_lib - Last post by olli_lib
I have downloaded the XMetal Author 12 Version and want to customize the style of the Tag on View by using css.
I use the topic.dtd in my xml file.
My Question:
In which css file can I make this change e.g. change font color of the tag to red?

Thank for Help

 13 
 on: May 08, 2017, 12:41:54 PM 
Started by spinkas - Last post by Derek Read
You can get close. Might be good enough.

You can find all the <indexterm> elements and list them but not alphabetically. You'd need to copy them somewhere else to do additional work on it to sort it somehow. If you have access to a program like Notepad++ or Excel you could paste it in there, optionally remove some information and sort it.

1. Open your map.
2. From the Edit menu select Find in Files.
3. Switch to the Markup tab.
4. In the "Element" field enter "indexterm" (no quotes).
5. In the "Look in" field select your map.
6. Click the Find button.
If you just want to see them all then you're done. There's no way to sort this stuff though. It is listed by item location, which includes the file and where it appears in the file.

If you need to do something with the list then:
1. In the Results window click the 3rd button to "Switch View" (at this point you might be done if you just prefer this kind of listing).
2. Select just the portion of the results you want (from the start to just before the "Summary".
3. Press Ctrl C to copy that.
If it is useable as is then you're done.

If you need to manipulate the results then use some other application.
Notepad++ can do some interesting stuff:
1. Paste the results into Notepad++.
2. Remove all the lines that say <indexterm>:
    a) From the Edit menu select Line Operations > Sort Lines Lexicographically Ascending (you might be done at this point).
    b) Select the lines you don't want to keep and delete them. I assume this is likely about as far as anyone would need to go?

Similar manipulations could be done in any application that can sort plain text, including tools like Microsoft Excel (though after pasting into Excel you don't really have plain text anymore).

 14 
 on: May 08, 2017, 07:02:23 AM 
Started by Joddie - Last post by Joddie
Hi Derek,

Thanks very much for your additional response. When browsing these folders is the filename i shared with you going to be something we can place in there? Or do the contents need to be appended to a file within those folders?

The responder to our ticket keeps asking for us to send everything to him so he can try to replicate the issue which is totally understandable of course. Without that he's unwilling to even address our questions or comment on the fix that works for me.

The problem is that we'll need permission to release those files to a 3rd party and that could take time we don't really have. I would love to be able to use the lines of xslt that are working so well to resolve the issue for me in my colleagues' installations as well.

 15 
 on: May 07, 2017, 04:01:50 AM 
Started by spinkas - Last post by spinkas
Using XMetaL Author Enterprise 11.0

Is there any way in Xmetal to see an alphabetical list of the index terms that I have for all topics in a map ? (without actually publishing to a different format?)

 16 
 on: May 04, 2017, 06:17:07 PM 
Started by Joddie - Last post by Derek Read
If the file they want to use fixes the issue then they will need to put it into the DITA OT at the right place. In version 11 three different versions of the DITA OT are installed and configured, with 2.4 being the default version that runs when you generate output from inside XMetaL Author Enterprise:

C:\ProgramData\SoftQuad\XMetaL\Shared\DITA_OT2.0
C:\ProgramData\SoftQuad\XMetaL\Shared\DITA_OT2.2
C:\ProgramData\SoftQuad\XMetaL\Shared\DITA_OT2.4


 17 
 on: May 04, 2017, 06:13:54 PM 
Started by C4 - Last post by Derek Read
This is a bit tricky because the entity is part of the DOM and not really part of the XML source or what you can actually see, so the usual Find.Execute won't work here, and you have to get a bit inventive.

I think something like this will probably get you close:

//XMetaL Script Language JScript:
if(ActiveDocument.ViewType == sqViewTagsOn) {
   var ent1 = "ldquo";
   var ent2 = "rdquo";

   //find an ldquo
   var rng1 = ActiveDocument.Range;
   var rng2 = rng1.Duplicate;
   rng1.GotoNext(0);
   while(rng2.IsLessThan(rng1)) {
      if(rng2.ContainerName == ".ENTREF") {
         if(rng2.ContainerNode.nodeName == ent1) {
            rng2.Select();
            break;
         }
      }
      rng2.GotoNext(0);
      rng1.GotoNext(0);
   }

   //find an rdquo
   var rng3 = ActiveDocument.Range;
   var rng4 = rng3.Duplicate;
   rng3.GotoNext(0);
   while(rng4.IsLessThan(rng3)) {
      if(rng4.ContainerName == ".ENTREF") {
         if(rng4.ContainerNode.nodeName == ent2) {
            rng4.MoveRight();
            break;
         }
      }
      rng4.GotoNext(0);
      rng3.GotoNext(0);
   }
   //do one final check in case the entity is the last thing in the doc
   //this seems necessary due to the way GotoNext works
   if(rng3.ContainerName == ".ENTREF") {
      if(rng3.ContainerNode.nodeName == ent2) {
         rng4.MoveRight();
         }
   }
   
   //extend the selection from the first ent (rng2) to the second ent (rng4)
   Selection.ExtendTo(rng4);
}

 18 
 on: May 04, 2017, 02:11:55 AM 
Started by Joddie - Last post by Joddie
Hi there,

Thanks for the response. In fact my colleagues with 11 are having the exact issue I am and have raised a ticket. One of the previous writers on the project shared an .xsl file which fixes the issue for me.

The file name is xm_image_size_fix.xsl and i put it in: C:\Users\username\AppData\Roaming\SoftQuad\XMetaL Shared\DITA_OT\plugins\xmfo\Customization\fo\xsl\xm_image_size_fix.xsl

Since that location and file do not appear to exist in XMetal 11, my colleagues were not able to use this fix. Is it going to be possible to replicate it for an installation of XMetal 11 do you think?

 19 
 on: May 03, 2017, 07:23:45 PM 
Started by C4 - Last post by C4
Yes, that's it.

We are searching in Tags on view.

Thanks.

 20 
 on: May 03, 2017, 05:49:36 PM 
Started by Joddie - Last post by Derek Read
Something else to think about, if the files you are using to generate output are different from your colleagues:

1. Perhaps the DITA @scale attribute is set to something other than 1?
2. Perhaps one of @width or @height or both are set to a larger or small size than the original image size.
3. Perhaps the image simply does not fit on the paper size for the PDF you are generating? In this case you can use one of the above (@scale, @width, @height) to make adjustments.

Pages: « 1 2 3 4 5 6 7 8 9 10 »
email us