Friday, February 01, 2008

Where is the "Normal View"?

In Pages '09, version 4.0, the "Normal View" is in the menu View > Enter Full Screen.

The following was written for previous version of Pages.

In some applications, there is a mode in which you can ignore formatting and margins and concentrate completely on the text content. The most well known such mode is probably Microsoft Word's "Normal View". Even a dedicated layout program like Adobe InDesign has its "Story Editor". Unfortunately Pages has nothing like that. There is no way to hide margins and page breaks.

There are a few other programs that have a full screen view, where all distractions on the screen are hidden even more efficiently than in Word or InDesign. In these programs you see the text and nothing else. Even the menus are gone. Examples of such applications for Mac OS X are Scrivener, Nisus, WriteRoom and CopyWrite. None of them is free.

The Poor Man's Solution

However, there is also a free solution. You may not like it, but I will tell you anyhow. It is to go back to the stone age before graphical user interfaces. Follow these steps:
  1. Log out.
  2. Highlight one of the users, and type alt-Enter. You will now get fields to type Name and Password instead of choosing them from a list.
  3. In the Name field, type ">console" (without the quotation marks). Leave the password field blank.
  4. Press Enter. You are now in character based mode.
  5. Type your login name. (Not the free form one displayed in the Login window, but the name of your home directory.)
  6. Press Enter.
  7. Type your password.
  8. Press Enter. You are in! (If all went well.)
All you now need to do is to learn how to use a character based editor like emacs or vi.


You are now in the serene land of text only editing. There are no mail or chat programs to distract, no internet browsers, no bright colours - just letters and your creativity.

Once you are tired of text mode, you can return to the real Mac OS X by typing "exit" on the command prompt. A shortcut for this is to type ctrl-d.

Once you are back in Mac OS X, you can open the text file you created with emacs or vi and paste its content into a Pages document, to get the layout right. The result of your creativity deserves it.

Thursday, January 31, 2008

Why did Pages' characters look blurry?

With Pages 3.0 and earlier, many users perceived problems with blurriness around the characters. With Pages '09/Pages 4.0 Apple changed the way fonts are rendered, which makes them look darker or sharper than they did before.

The word below is written using Helvetica 10 and rendered at 100% size. The top rendering is Pages '09 and the lower one is Pages 3.0. Surprisingly the top rendering looks better on an LCD screen than the lower one.



This uses the default setting in System Preferences > Appearance > Font smoothing style. With Pages '09, this setting is taken into account, unlike previous versions.

If you want to turn font smoothing off, open a terminal window and use the command
defaults write com.apple.iWork.Pages SFRFontSmoothing 0
If you want to turn it back on, use the command
defaults write com.apple.iWork.Pages SFRFontSmoothing 1
The text below was written for previous versions. It contains more explanations of what was wrong.
---

Most letters have some round curves, and that is a problem, as current computer screens consist of a lot of small dots, not curves.

The process of mapping the round curves of letters to pixels is called font rasterisation. There are different strategies to do it.

Last millennium one of the most common strategies was to simply put black dots in logical places. AppleWorks uses that method, and the result is that the letters get very rough edges. Here is the word "lollipop" written in Helvetica, 10 in AppleWorks. It is magnified about 10 times, so you can see the pixels.
The next strategy was to use anti-aliasing. That means that you add pixels of different shades of grey to increase the illusion that the letters are curved. It looks ridiculous when you magnify it, but when the font is small, it is surprisingly efficient. It is very likely that your web brower uses anti-aliasing to display the characters you read right now. Magnified, the characters do not look very legible:

But on a screen, it does not look quite that bad:


This is still the most efficient strategy, if you have a CRT (Cathode ray tube) screen. It is also the method Pages uses. However, fewer and fewer people use CRT screens nowadays.

For LCD screens, the best strategy is usually subpixel rendering. This uses the fact that each pixel on an LCD screen consists of three small elements, one red, one green and one blue. Looking at a magnified image of these pixels gives the impression that it is almost illegible. However, when one takes into account that the colour elements are at different positions inside each pixel, it is easier to understand that this can actually be easier to read than plain anti-aliased text.

On the screen it looks a little better. Keep in mind that this is my screen magnified about 10 times.

As you can see, the monitor does not simply display the colours right off, but there is some algorithm how to display it correctly.

To some people this gives a much clearer picture. To others it is mostly annoying, as they are able to see the different colours, in spite of the small size. This is a technology used by for example TextEdit and MS Word for Mac. Your browser may also use it.

Using System Preferences > Appearance, you can change this setting for TextEdit and Microsoft Word and many other applications. If you choose CRT, you disable the subpixel rendering in the applications.
However, these settings hardly change anything at all for Pages.

Why does Pages not allow subpixel rendering? The most convincing explanation may be that it is more difficult to implement in Pages than in other applications, as text can be transparent against a coloured background. It would be very difficult to choose how to handle transparent coloured pixels, when the background changes colour.

Besides, the number of pixels per inch increases all the time with more modern screens. In the near future, it will not matter much which technology is used to map curves to pixels.

So, what can one do, if one thinks Pages displays too blurry characters on the screen today?

Not much. One can either get used to it or buy a new screen with higher resolution or simply increase the zoom.

If you want to learn more about font rendering in Mac OS X, here is a list of facts and opinions on the subject:
And after Pages '09

Wednesday, January 30, 2008

Export folder to Word, RTF, PDF, TXT or RTFD

This AppleScript to export the content of a folder with Pages documents was kindly created by Yvan Koenig. You can find more of his scripts at his Public iDisk. If you prefer to export a selection of files, you may want to have a look at the scripts in this post, which use a Scriptlet.

To use the script below, copy it all into a new script in ScriptEditor and run. Due to blogspot's layout, you may not see all characters here, but they should be copied properly, if you highlight all the non-proportional text below.
(*
Export pages documents as Word ones in the folder where the original docs where.

Assuming that we start with:
AppleScript & Office.pages
it will be exported as:
AppleScript & Office.doc
If a file already exist with the short name
it may be saved as:
AppleScript & Office#20080128T221639.doc (if withSeconds is defined as true)
AppleScript & Office#20080128T2219.doc (if withSeconds is defined as false)

the serial number is a packed version of the date/time of the save process:

2008/01/28T22:16:39 or 2008/01/28T22:16

Thanks to Dale GILLARD who teach me the way to export without using GUI scripting.

Yvan KOENIG
28 janvier 2008
29 janvier 2008
*)

property withSeconds : false (* you may set it to true if you wish *)
property typeNum : 1 (* 1 = WORD, 2 = PDF, 3 = Txt, 4 = rtf, 5 = rtfd *)

property newExt : ""
property newType : ""
property types : {{"doc", "SLDocumentTypeMSWord"}, {"pdf", "SLDocumentTypePDF"}, {"txt", "SLDocumentTypePlainText"}, {"rtf", "SLDocumentTypeRichText"}, {"rtfd", "SLDocumentTypeRichTextBundle"}}

tell application "Finder" to set listeFichiers to every item in (choose folder) (*
dans un bloc Finder pour avoir un titre de dialogue "localisé"
• in a Finder block to get a localized dialog title. *)
if (count of listeFichiers) = 0 then return
open listeFichiers

-- ===========

on open (sel)
repeat with elem in sel
my exploreTraite(elem as alias, "")
end repeat
end open

-- ===========

on exploreTraite(elem, ptree) (*
elem est un alias
elem is an alias *)
local elem_, cl_, typeId_
set elem_ to elem as text
tell application "System Events"
set cl_ to class of item elem_
set typeId_ to type identifier of elem
end tell
set cl_ to cl_ as Unicode text

if cl_ is "file package" then
if typeId_ is "com.apple.iwork.pages.pages" then my TraiteUnPackage(elem_, ptree)
else if cl_ is "folder" then
my ExploreUnDossier(elem_, ptree)
else
-- not for us
end if -- cl_ is …
end exploreTraite

-- ===========

on ExploreUnDossier(dossier, ptree)
local nomElement, cheminElement, c
repeat with nomElement in list folder dossier without invisibles
set cheminElement to dossier & nomElement
tell application "Finder" to set c to name of (dossier as alias)
my exploreTraite(cheminElement as alias, ptree & c & ":")
end repeat
end ExploreUnDossier

-- ===========

on TraiteUnPackage(aPackage, ptree)
local docPathAndName, oldName, docName, newExt, newType
(* aPackage always ends with a colon, we must remove it *)
set aPackage to (text 1 thru -2 of (aPackage as Unicode text)) as alias

set {newExt, newType} to types's item typeNum
tell application "Finder"
set sourceFolder to (container of aPackage) as Unicode text
set oldName to name of aPackage as Unicode text
end tell -- Finder
set docName to (text 1 thru -6 of oldName) & newExt
set docPathAndName to sourceFolder & docName

tell application "System Events"
if exists file docPathAndName then
set docName to (text 1 thru -7 of oldName) & my serialize() & "." & newExt
set docPathAndName to sourceFolder & docName
end if
end tell -- system events

tell application "Pages"
open aPackage
save front document as newType in docPathAndName
close front document
end tell -- Pages
end TraiteUnPackage

-- =============

on serialize()
local cd, serial
set cd to current date
set serial to (year of cd as text) & text -2 thru -1 of ("0" & (month of cd as number)) & text -2 thru -1 of ("0" & day of cd) & "T" & text -2 thru -1 of ("0" & hours of cd) & text -2 thru -1 of ("0" & minutes of cd)
if withSeconds then
return "#" & serial & text -2 thru -1 of ("0" & seconds of cd)
else
return "#" & serial
end if
end serialize

Monday, January 28, 2008

How do I best organise my fonts in Fontbook?

You may have read in some obscure blog posting that it is good to organise your fonts in Collections in Fontbook. That obscure posting was right, but what strategy should you use to create collections? Which criteria should you use?

You should of course create one or a few folders with your favourite fonts, based entirely on what you like.

In addition, it may be good to create folders based on some objective criteria, and to do so, you can often use the search field.

You can for example start with a search for fonts that contain Italic typefaces.

1. Create a collection called "Italics".
2. Type "Italic" in the search field. The font list now only contains fonts which match the word Italic.

3. Select all fonts with command-A.

4. Clear the search field. The selection now extends to all typefaces in the fonts that contain italics.

5. Drag the selection to the collection "Italics".

You now have a collection with fonts that you can italicize ready to be used in Pages or TextEdit or any other application using the Font Palette.

But you can go on.

6. Create another collection called "Italics Slimbach".
7. Click on the Italics collection and type "slimbach" in the search field and repeat the steps above.

You now have a selection with fonts by the designer Robert Slimbach, which all contain Italic typefaces.

And on again.

8. Go through the steps above again, but this time use the search word "Russian".

And you have a collection of Slimbach's fonts that can be used in Russian with Italics.

You can go on like this and create collections with more and more detailed criteria in different areas. You can for example search for "Apple" or "Adobe" to find fonts from those companies. Or you can search for OpenType or Postscript.

There are, however, two things that seem impossible to search for reliably: non-proportional fonts and sans serif fonts.

If you need that you need to create the collections manually. But there are still quite a lot of different kinds of collections you can create using the search function.

Sunday, January 27, 2008

How do I create an index in Pages?

If you want an index of keywords in Pages, you have to create it manually. Contrary to the table of contents functionality, there is no automatic solution for indexes.

People have different strategies to create them, usually based on the search function. You can for example get a list of all pages containing a particular word using View > Show Search.

Saturday, January 26, 2008

How do I use Quartz Composer?

Uh? Isn't that a development graphics tool? What does that have to do with Pages?

Admittedly not very much, but for some situations you may want to use Quartz Composer to modify pictures or text you have converted to an image. There are better and easier tools out there, but none is cheaper than Quartz Composer as it comes with the OS. If you want to experiment with it, here is some advice to get you going:
  1. Install the Development Tools from your Mac OS X installation DVD, unless you already have them.
  2. Go to Developer > Applications, and open Quartz Composer.
  3. Create a new file from the template "Image Filter". (The main differences between this one and a blank file is the fact that the a flag in Editor > Edit Protocol Performance already is set to "Image Filter", which makes sure you get all required patches.)
  4. Remove the optional elements and the macro called "Process the Image".
  5. Go to Editor > Show Patch Parameters.
  6. Double-click on the image, and choose the image you want to use yourself.
  7. Click on Edit > Show Patch Creator.
  8. Choose any patch you fancy, for example Image Transform. (Others, like Twirl, also work.)
  9. Click on the Output node on the patch "Image (required) _protocolInput_Image" and drag it to the left Image node of "Image Transform", so you get a yellow line that links the two.
  10. Click on the node "Transformed Image" from Image Transform and drag it to the Input node of the patch "Image (required) _protocolOutput_Image".
  11. (Optional) You can also add a Filter like "Circular Wrap Distortion" before the Image Transform. The method is the same as when you added the patch in step 8. You just have to connect the nodes.
  12. Unless the Viewer is already visible, go to Window > Show Viewer.
  13. Unless it is already running, click on the Run button.
  14. Click on the patch Image Transform and change its parameters.
  15. Experiment. Change or add other patches, to see the changes.
  16. If you find a result you like, save the file.
  17. Drag the file you created to an open Pages document, where it will appear as an image - or actually a movie - in case you added any moving elements.

How do I create Word Art with Pages?

You cannot.

If you want to let the letters dance over the page following curves or shapes, you have to go beyond Pages.

A few other products that support wordart like features are Art Text and Comic Life, but there are more ones out there. You can check Version tracker for more alternatives.

Tuesday, January 22, 2008

How do I add keyboard shortcuts?

To see Pages' keyboard shortcuts, you can go to the Help menu > Keyboard Shortcuts.

Just like in any other Mac OS application, you can also see at the end of each menu command, if there is shortcut for it.



To add your own shortcuts to menu items follow these steps
  1. Go to System Preferences > Keyboard & Mouse > Keyboard Shortcuts.
  2. Click on the + symbol.
  3. Select Pages from the Application list. The first time you will have to select the last value, "Other...", to add Pages to the list, as the list by default only contains applications directly in the Applications folder. Applications in sub-folders have to be added manually.
  4. Type the exact name of a menu command, for example "Export..."
  5. Press a keyboard combination including shift (⇧), control (⌃), alt (⌥) and/or command (⌘) and one other key, for example ⌃⌥⇧⌘E.
  6. Click "Add".



From now on Pages accepts ⌃⌥⇧⌘E as a shortcut to bring up the Export window, which you can see by pulling down the menu again.



There are some things to think about here. You can basically only assign shortcuts to menus. You can for example not add shortcuts to items in the inspector. Even though you can write "macros" for Pages using AppleScript, there is no way to assign shortcuts to the macros, as they reside in the Finder. However, you can assign "hotkeys" to Styles by clicking on the triangle next to the name in the Styles Drawer.

If there are several menu items with the same name, only one of them will get the shortcut.

If you change language in System Preferences, the shortcut will no longer work.

How do I attach a Pages document to an email?

In Pages '08 and earlier, each Pages document was a folder packages, something that confused a lot of mail programs.

In Pages '09, the files are just standard files by default. (You can change the default behaviour to packages in the preferences.) One easy way to mail files is to use the "Share" menu. Here you can send the front document using Mail.app in different formats.


If you want to mail a package, you can do that too:

1. Control-click or right-click on the file in Finder.


2. Choose "Compress ...." from the pop up menu.
3. You will get an "archive", a compressed zip-file, which you can attach to your mail, just like any other file.


The recipient will download the attachment, double click on it, and the original iWork file will be ready to be opened by Pages, Numbers or Keynote.

Sunday, January 20, 2008

How do I change the default zoom?

New documents always come up with the same zoom value (the percentage in the lower left corner of the document window). Sometimes that is far too big or far too small, so you may want to change it.

The simplest and safest way is to go to the menu Pages > Preferences, and change the Default Zoom value.

However, you may want to change it to a value that is not in the preferences dialogue, let's say 99%, for the sake of argument.

If you want to change the zoom for the current document only, you can use an AppleScript:

tell window 1 of application "Pages"
set view scale to 99
end tell

If you want to change the default value for all new documents, and you are willing to take a certain risk, you can manually edit the file ~/Library/Preferences/com.apple.iWork.Pages.plist and set the parameter SLDefaultsPageScale to 0.9900000 (for 99%).

In Mac OS X before 10.7, you can also run the following command in the terminal. (Copy the entire line until 0.99 - not only what is visible. Blogspots HTML hides the end of the line.)
defaults write com.apple.iWork.Pages SLDefaultsPageScale 0.99

Friday, January 18, 2008

How do I add line numbers?

Pages does not have any easy switch to show or hide sequential numbers for each row.

You can switch on paragraph numbering in the Inspector > Text > List, but as soon as a paragraph goes over several lines, it will be out of sync.

Apple suggests that you create a numbered text box and put it on the master slide.



However, that kind of list will not work if you change the font size, like for a title, or if you insert an image that spans the full page width and disrupts the numbering.

Wednesday, January 16, 2008

Spelling does not work. What can I do?

There are a couple of things to try:
  • Highlight all text and verify in the Inspector > Text > More, that a language is chosen.
  • "Clean up" the document by exporting it to some other format (MS Word or old Pages formats for example), and import it again.
  • Go to Applications > Utilities and run Disk Utility. Go to First Aid > Repair Disk Permissions. (It actually has worked for people with this problem.)
  • You may have an old version of CocoAspell. Update to a newer version, and the problem may go away. (If you do not even have it installed, do not bother upgrading, of course.)
  • Check username/Library/Services. If you see a file called "Spell Catcher Services.service", delete it, log out, and log back in.
  • Check username/Library/Services. If you see a file called "aspell.service", delete it, log out, and log back in.
  • Remove files from username/Library/Spelling
  • Check Username/Library/Application Support. If you have a folder there called "Spell Catcher", remove it.
  • Go to /Library/Caches and trash all files ending with .csstore, and then reboot.

How do I compress images in Pages?

You cannot.

Any image you import to Pages stays its original quality and size to allow print outs and exported PDF files to be as good as possible.

If you really want to save space, you have to compress the original image file in an external graphics editor, like iPhoto, Photoshop, Aperture, the gimp, or many others. This is not the place to evaluate which one is best, but there is a list of some possible ones at Wikipedia.

Even though you cannot compress the images within Pages, note that for the finished document, you can export a compressed PDF version from Pages using Share > Export. (Before Pages '09, the menu was File > Export.)

Sunday, January 13, 2008

Where did all those tabs come from?

When you open a Pages document, it has no visible tabulator stops at all.

However, there is a hidden set of default tab stops, just like in Open Office, Microsoft Word and many other word processors.

As soon as you add a manual tab stop to a paragraph, all previous default tabs disappear:


The distance between the hidden default tabs is defined in the inspector.



However, sometimes a paragraph suddenly gets plenty of visible tabs:

This can happen if you paste text from applications like TextEdit or AppleWorks. These applications do not have the concept of hidden default tabs, so they have to use real visible tabs instead.

The easiest way to get rid of them is to apply a paragraph style without tabs. You can often simply click on the red triangle to the right of the style name and choose "Revert to Defined Style".

Why can't I add Reflections or Adjust an Image?

The text below was written before Pages '09. With Pages '09, you can add reflections to shapes, but the other restrictions remain.

...

If you highlight an object and go to the Inspector > Graphic, it is possible that the Reflections checkbox is greyed out. And if you go to View > Show Adjust Image, it is possible that none of the controls work.

This may be because you
a) have not highlighted anything. (Make sure you clicked on the image.)
b) have highlighted something that is not an image. Images can for example be PNG, JPEG, GIF, TIFF with or without layers and transparency in CMYK, LAB or RGB colour space.

You cannot add reflections to inserted shapes (Insert > Shape > whatever), tables, text or charts, even though you can add shadows and change transparency for them. Neither can you use the Adjust Image window with them.

Reflections work only on images and PDF files you have inserted from elsewhere (for example with Insert > Choose... or drag-and-drop from the Finder).

Adjust Image only works on images but not on inserted PDF files.

Why does Pages have these limitations? It is because PDF files and inserted shapes are vector graphics. They have a completely different way of handling colours. Take for example the slider for "Sharpness". To apply sharpness to bitmap graphics, you simply change the surrounding pixels a little. However, for vector graphics, there is nothing called "surrounding pixels", to that kind of adjustment does not work.

The main problem here is not that Pages does not apply adjustments to vector graphics. The main problem is that it does not provide any user feedback why it cannot be done, and what the user can do to get around the problem.


In this image the left circle is a shape from Insert > Shape > Oval, so it does not accept reflections. The right circle is an image that was dragged onto the document from the Finder, so the reflection works fine.