Paragraph and character formats/tags are global (available/applied across all files in a book), so why on earth are variables not similarly global?
In a book with 25 files, and over a thousand pages, if I need a new variable or need to change a variable across all those files (such as with a page header that includes a version number), I have to go through EACH file and change/create that variable.
This is pure Madness! MADNESS I tell you!
re: Paragraph and character formats/tags are global (available/applied across all files in a book),
No, they aren't, and some projects count on it.
For a current project, I have all the formats, and variables, defined in a single external file in the book directory, but not part of the book. I selectively import to files and groups of files as needed.
What Bob said ^^. All formatting and variables are defined in each document independently of the other documents in a book.
I have to go through EACH file and change/create that variable.
But when something changes, i.e., a master page, a paragraph tag, a character tag, a variable definition, update it in one file, and then use File > Import > Formats to update the other chapters in the book. It's very quick, and keeps the formatting consistent.
Thanks for the suggestion. Saved alot of my manual work.
What Bob and Barb said...
Unlike MS Word, there's no such thing as an "official" FrameMaker template file or format.
However, as Bob mentioned, you're well-advised to maintain a chapter template (and others, as needed) to practice what I call template-driven design.
You can get a free video and handout on the topic at
We use a file we call "whatever-variables.fm" in various ways.
You could have a "book-variables.fm", "suite-variables.fm", "project-variables.fm" or whatever. Maintain the variables in these files.
Then to get these variables into all your files do this:
1) Open the desired variables.fm file.
2) Open a book file and all the files in the book.
3) Select (highlight) all the files in your book.
4) With the book file in focus open the File > Import > Formats dialog.
5) Deselect everything in the dialog and then select just "Variable Definitions".
6) Make sure your "whatever-variables.fm" file is selected at the top of the dialog in the "Import from Document" field.
7) Click the "Import" button at the bottom of the dialog.
Frame goes a little squirrelly for awhile and then your variables import is done.
I haven't had occasion to test this in awhile but I believe this works with a book of books as well -- or that may have been a dream or something -- like expecting FrameMaker to support DITA KEYREFs as well as oXygen does.
Using DITA KEYREFs as is done in oXygen would go a long way to making FrameMaker DITA out-of-the-box compatible with other DITA editors.
One caveat to all this, importing the variables through FM, is that the system variables also are included (e.g. running header variables, marker1,marker2, etc.). This may mess some things up, depending upon what you've got going on in your master page running headers/footers, tabs, etc.
The only way to avoid including these system variables is to create a "MIF snippet" file that only has the required variable definitions in a simple text format. You can have multiple MIF files for different categoies of variables, as boreal suggests, and then import this (these) MIF file(s) by copy into FM to avoid including the system variables. A simple and effective way to maintain these snippets is to use a spreadsheet to define the variables and definitions and create an export utility in the spreadsheets programming language to export the content as a properly formatted MIF. You can include the spreadsheet file as part of a book/project file as well (FM ignoes these files for output and generation).
My ImportFormatsSpecial script allows you to just import user variables without system variables (or just system variables or both).
Thank you all for the replies. I've realized the error of my ways. Having inherited a number of large manuals, each of which consists of many document files, and each of which has been touched by many hands, variables across the files are a mess. As time allows (and there's precious little of THAT!), I'm building a master variables list, and one day I will apply those variables across all the document files (well, where appropriate).