The script has been updated, and now supports InDesign CS5.

As another small feature, I have also added support for fixing combinations of paragraph styles that is nested in paragraph style groups. Though only support for groups in "1 level", nested groups will be a subject for a new update of the script later.

Download the script from here

I have written a little about our order system on Twitter, and I must admit that I get more and more happy about it each day. What tools do you use for order management and time tracking?

I have introduced the company before, 2Krogh, a small design agency in Århus, Denmark. We have a lot of orders coming in and out of the office, and many people are working on the same jobs, so it is essential to have a functioning order and time tracking system. Therefor I developed a system in raw PHP for about 2 years ago, and this is the base for the newly fully rewritten system we are currently using today, made with CakePHP.

I will try to make a short tour of the system here, starting by explaining it in a few sentences.

With the order system we can ...

  • create an address book of clients, and our contacts at the clients
  • create new orders, attached to a client and client contact person, with order numbers generated automatically.
  • track time used on the order.
  • set an hour rate per employee to help writing invoices, and generate estimate income for ongoing orders in a given period.
  • generate lists of orders, for given time periods, with detailed information about income, hours spent etc.
  • add purchases and sales to orders to see how much has been earned for a single order.
  • write an invoice which is saved as XML ready to import to an InDesign template, with all data pre-written, VAT calculated etc.

Order system walkthrough

To be able to add invoices, you will first need to create a client and add a client employee, for you order contact person.

Adding a client.

Adding a client

When adding the client you also need to select which of VAT zone the client is in, to be able to automatically calculate VAT on invoices. Adding an employee looks about the same. Adding either of these will create an entry in our LDAP database, making sure that all phone numbers are to be found on and recognized by our desktop phones, e-mails in e-mail applications etc.

When a client and client employee is added, you can add an order. On the order you have the option to describe the order in details and adding different deadline dates. Adding these dates will add an entry in the system users calendars, since the system publishes an .ics calendar everybody subscribes to. Further, the system also creates a folder on a shared IMAP account, making everyone able to move e-mails related to the order to a shared destination, where everybody has access.

Adding an order.

Adding an order

Shared IMAP user.

Shared IMAP user

When the order is added, it is possible to track the time on the order. Selecting an order is easy, as drop boxes with orders are updated depending on which client is selected in the client drop box. With a date selected, there is only room for a descriptive text and how many hours is used that given date.

Tracking time.

Tracking time

To track time even easier, I am currently developing a Dashboard Widget with a stopwatch, where it is possible to select a specific order, start the timer, pausing, or stopping and submitting it automatically.

The order list is most important, in my opinion. Here we are able to output a list of all orders, for many different purposes. Historical, overview of open/active orders, to make an estimate of ongoing work etc.

Order list.

Order list

For the single order it is of course possible to get an overview of spend hours and their value. It is also possible to send an automatically generated order confirmation to the client contact person, with sales- and delivery terms etc. attached.

Single order view.

Single order view

Furthermore you can add sales, purchases and invoices to the order. Adding an invoice creates an XML ready to import to an InDesign template, leaving almost no manual work.

Writing an invoice.

Writing an invoice

Besides this, there are several extra smaller details in the system, but this should give a clear picture of it.

How do you handle your order management and time tracking?

If you love InDesign, typography and book design, please check out this job posting.

2Krogh is an exciting design company with many international jobs, mainly books and Bibles. With a growing interest in our services, we need to expand to keep evolving and keep the high quality we are known for in all projects.

So whether you are looking for a job or an internship, please check out 2krogh.dk/bibles and 2krogh.dk/books, and if you like what you see, get in touch!

Some of my posts on the blog are tagged with "wishlist", obviously because it explains some of my feature wishes for future versions of InDesign. One of the posts explains my wish for being able to mark up the same text with multiple character styles, and also explains some of the workarounds that could be used achieve it.

The need for tagging things with multiple character styles has for me not always just been to apply styling, but also for using the style as a "marker" for future reference. E.g. in a specific project I am currently planning, where we are preparing a huge launch of a new Bible translation with many different editions. Here we wan't to prepare the InDesign files for new different future editions as well, tagging all kinds of different text. E.g. "words of Jesus", "words of God", "names", "places" etc.

Digging into InDesign's different possibilities for marking up text - XML tags, character styles, color swatches, conditional text - only conditional text allow you to mark up the same text with more "tags" of the same kind.

For multiple index purposes, the best solution is "nesting" the indexes, by creating "level 1 topics" for each index, and adding the index references under them. Then by generating the index all the indexes will be generated, and you can just delete the ones you don't want in the edition.

Script for marking text with multiple character styles

To make an alternate solution for applying multiple character styles to the same text, other than nested styles, grep styles etc. as mentioned in the wishlist post, I have prepared a script to apply character style formatting to text with specific conditional text tags applied.

First of all, prepare your document with conditional text tags for the styles you want to apply, and for each tag create a character style with the same name.

Preparing the document for multiple character styles by creating conditional text tags and character style pairs.

Preparing the document for multiple character styles

Next you want to apply the conditional text tags to the text you want to format. In this case I have only prepared a "Red" style, and a "Small-caps" style. In addition to these I have made a "Italic" style, which is already applied to some text.

Notice especially the words "voluptatem" and "lacerfernam" that has the italic style already applied, and the word "accus" which is both marked up with the "Red" and "Small-caps" conditional text tag.

The only thing left is running the script, which will result in this:

Result after running the multiple character styles script.

Result after running the multiple character styles script

To explain what just happened - the script finds all text with the conditional text tags applied, in the order of the tags in the conditional text panel. Then the styling of the character style is applied, but the style itself is not applied - so basically the styling is added "locally" and will be removed if the style is later overridden.

Knowing the process can explain issues you might experience - if you make a style/tag pair called "Red" and one called "Yellow", in that order, the "Red" style formatting will applied first, and then the "Yellow", making the text yellow, and not red.

Running the script will not remove the tagging of the text, so if you "run it to soon" and override some styles, you can always run the script again to re-apply the local formatting.

I hope you find use of the script, at least until Adobe hopefully adds real support for multiple character styles!

The script

The JavaScript can be downloaded here: multiple_character_styles.jsx.

You can add it to your Scripts palette and run it from there. To do that, place the file inside the "~/Library/Preferences/Adobe InDesign/Version 6.0/Scripts/Scripts Panel" folder.

I couldn't resist mentioning this little project here.

Being inspired of fore-edge paintings, we at 2Krogh have begun experimenting a little with the phenomena - digitally.

So far I have created two test cases on plain copy paper and I simply love the idea of illustrating the book block, check it out:

Pure text "painting".

This is a fore-edge painting

A coloured illustration.

PacMan painting

I can't wait to try this "full-size"! I will of course be posting pictures as soon as we have made the first book with this exciting feature.