MY FIRST MIRRORLESS GRAND SLAM COVERAGE
The first time I came in contact with mirrorless…
Without caption information, photos will never get found, much less get used or published, and what is even more relevant, viewers will draw their conclusions about a photo’s content. So why forego the benefits of good captioning?
It takes time to write good caption information. Still, the payoff is significant: A recent study funded by the National Press Photographers Association in the United States showed that “the longer or better developed a caption, the more likely the associated photo will receive attention.”
If you have captioned photos under time pressure, you know how tedious that process is. Preparation, combined with a good workflow and supporting tools, is key. I am relying on Photo Mechanic’s code and variable replacement functionalities, combined with the GNU Emacs text editor for preparing data. During my tenure as a photographer, I have found the following ten tips being highly valuable to make my photo captioning process most efficient and effective.
Use code replacement and variables functionalities of Photo Mechanic whenever possible. Enter information in the most specific field and reference that field, using variables in other fields.
Example: Enter the event title “2022 French Open” in the event field and reference it in the headline by writing “{event} – Day Fifteen”. Use, for example, “© {credit}” in the copyright field.
Configure as code replacement delimiter a character that is easy to access on your keyboard (avoiding, by all means, the use of Shift, Ctrl, etc.) and that is not used in caption data.
Example: On a Swiss-German keyboard, I use the “$” character, which is located next to the return key. In a US keyboard, using the “=” would be appropriate.
Pre-populate your IPTC data fields using code replacement stubs and variables. Save each typical set of IPTC data as a snapshot using the lightning functionality of Photo Mechanics. Use a naming convention to identify each collection of IPTC data saved.
Example: For captioning action images in tennis, I pre-populate the description/caption field with “$P#2$ plays $A$ to $P#2$ during the ? round match on day ? of the {event} at {location} on {dow}, {monthname} {day}, {year} in {city}, {country}”, where “$P$” is a stub used to code replace player names (e.g., “Pbb#2” would be set-up to reference “Belinda Bencic of Switzerland”, “Pbb” referencing “Belinda Bencic” without here nationality), $A$ is a stub used to core replace what action the player is performing (e.g., “Apf” replacing to “plays a forehand” or “Aps” replacing to “servers”). I use question marks for information that needs editing but for which using code replacements does not make any sense.
Pre-populated data is only relevant if you can locate it when needed. Therefore, use a consistent naming scheme for identifying code replacement files (and the location where you store them) and snapshots.
Example: I rely on using the two first levels of the IPTC subject code structure. I store code replacement information (e.g., key player names and action codes) in a file named “cr-spo-tennis.txt”. I store event-specific information in “cr-spo-tennis-wimbledon.txt”. I save generic code replacements in “cr-gen.txt”. Depending on the photos I caption, I pre-configure the relevant (and only the relevant ones) code replacement files in “Set code replacement”.
I use the same approach for naming IPTC data stubs, i.e., naming the most generic one “gen”, an action-specific one for tennis “spo-tennis-action”, a player reaction as “spo-tennis-reaction”,
Use multiple columns per replacement code to define variations of the given information and reference the different columns using the “#” followed by the column number.
Example: I encode people using two to five different columns such that
Use code replacements to ensure that value in less prominent or obvious fields is always correct.
Example: Prepare a code-replacement file mapping country names to ISO country codes (you may download one here). Enter “${country}$” in the “ISO Country Code” field. Similarly, create a file (or add these codes to “cr-gen.txt”) that maps event names to categories, subcategories, subject codes, etc., and enter the respective code replacement codes in those fields. For example, I encode
and add the following codes in the respective fields “IPTC Subject Code: $E{event}$”, “Category: $E{event}#2$”, Supp Cat 1: $E{event}#3$”
GNU Emacs is a very powerful editor, although from the pre-GUI era. I highly recommend anyone to learn the essential keystrokes (see example in the table below) and use it to transform a given player roster into a code replacement file.
Key sequence | Command |
ESC t | Swap two words, e.g., transform “Peter Pan” into “Pan Peter” |
CTRL-space | Select text |
CTRL-k | Delete selected text (or up to the end of the line) and save the deleted text |
ESC d | Delete next work |
CTRL-y | Recall the last deleted text |
CTRL-y / ESC y | Recall second to last deleted text |
CTRL-s | Search |
ESC % | Search and replace text |
CTRL-x ( chr.seq. CTRL-x ) | Save character sequence to be replayed later |
CTRL-x e | Replay saved character sequence |
CTRL-u 100 CTRL-x e | Repeat replay of saved character sequence 100 times |
CTRL-x u | Undo previous change |
CTRL-a / CTRL-e | Go to start / end of line |
ESC < / ESC > | Go to start / end of document |
ESC c / ESC u /ESC l | Capitalize / uppercase / lowercase next word |
ESC u | Uppercase next word |
CTRL-2 / CTRL-1 | Split / Unsplit window |
CTRL-x b | Switch to a different buffer |
CTRL-x f | Open a new file (previously opened files remain in different buffers) |
CTRL-x s | Save document |
CTRL-x c | Exit editor |
Example: Consider the following roster file
** Court Philippee CHATRIER ** Start at 11h00 Caroline WOZNIACKI (DEN) vs. Veronika KUDERMETOVA (RUS) Yannick HANFMANN (GER) vs. Rafael NADAL (ESP) Novak DJOKOVIC (SRB) vs. Hubert HURKACZ (POL) Serena WILLIAMS (USA) vs. Vitalia DIATCHENKO (RUS)
Using the following code sequences transforms the roster file into the following code replacement file
CTRL-< CTRL-k CTRL-k
(remove title line)ESC % _ vs._ RET CTRL-q CTRL-j RET !
(separate games into two lines)CTRL-< CTRL-x ( P ESC c EST c CTRL-k EST b EST b CTRL-k CTRL-y CTRL-q TAB CTRL -y of CTRL-a CTRL-n CTRL-x )
(record editing of the lineCTRL-u 7 CTRL-x e
(do the same for all other lines)Resulting code replacement file
Pcw Caroline Wozniacki Caroline Wozniacki of Denmark Pyk Veronika Kudermeptova Veronika Kudermeptova of Russia Pyh Yannick Hanfmann Yannick Hanfmann of Germany Prn Rafael Nadal Rafael Nadal of Spain Pnd Novak Djokovic Novak Djokovic of Serbia hhP Hubert Hurkacz Hubert Hurkacz of Poland Psw Serena Williams Serena Williams of the United States of America Pvd Vitalia Diatchenko Vitalia Diatchenko of Russia
Many great caption writers exist, especially at large photo agencies, like GettyImages, AP, AFP, or Reuters. Look at how they write captions, especially what wording they use.
Example: One of my favorite tennis photographers Clive Brunskill of GettyImages, captioned a photo as “Fans of Rafael Nadal hold up messages of support in the stands during the Men’s Singles Final match between Rafael Nadal of Spain and Casper Ruud of Norway on Day 15 of The 2022 French Open at Roland Garros on June 05, 2022 in Paris, France”, which I reused in an adapted way to my need.
Use a translation engine, like www.deepl.com or translate.google.com and/or dictionaries like www.dict.cc to ensure that you use the most appropriate terms, especially keywords, if you are writing captions in a language that is not your mother tongue.
Example: I want to write in the caption the text “Der Schiedsrichter ermaht $Pnd$ zum zweiten Mal”, I use www.deepl.com to translate this text into “The referee warns $Pnd$ for the second time”.
Typos are quickly made. Re-read entered information after having captioned all photos and corrected typos. You may want to use the “Find and Replace” function to ensure that the typos are fixed in all photos captioned, mainly if you have used the “Copy” function when entering and editing caption data.
Example: I entered “2022 Roland Garos” instead of “2022 Roland Garros” as the event name. Using “Find and Replace” ensured that the error was corrected in the event field and all fields that were populated using the “{event}” variable.