“Flipped”, “droopy” “sign-painter” quotes

kupferskupfers Posts: 259
edited August 2015 in Technique and Theory
I want to share some Sunday afternoon armchair research. As you (Americans) probably know from signs or hand writing, some typefaces have quotes that – when used for English – look flipped, instead of “rotated”, usually of straight or tapered form. Germans don’t like those because we use your opening mark as our closing mark and then they point into the wrong direction (see the red quote below). This is an on-going complaint about Verdana and others, most recently the new Apple OS fonts (which have since been changed). Image by Frank Rausch:

When people ask me where this comes from and why, I usually say, it’s a sign painters tradition and because it often looks better in English, but I would love to know a better explanation. 

I asked on the Sign Painter Support Group Facebook page and hoped to get an answer from John Downer. He pointed me to a letter he wrote for Emigre Magazine in one of the last two issues of 1996. With this helpful index I found them in issue No. 39 and 40. I asked on Twitter if anyone still had those Emigre mags and within minutes super helpful friends replied and Pieter van Rosmalen sent me photos of the issues’ letter sections:

From Emigre 39

Downer’s reply in issue No. 40

I also asked Cyrus Highsmith as I once contacting him about the flipped quotes in Relay and if he could make a “rotated” version for setting German. He provided an interesting other answer:
In some designs, flipping the quotes is necessary to distinguish the left and right quotes from each other. For example, if the wedged-shaped quotes in SF UI were rotated instead of flipped the left double quote and right double quote would be basically identical. And that would look weird in English. Taz just barely avoids this because of the tapering.
And Matthew Carter just seemed to like them better for Verdana. (Upon request, he changed the quotes in Verdana Pro though).

While we luckily don’t live with the constraint character-set of 265 glyphs anymore, this discussion might continue as there are so many different ways how to use the standard quotation marks in different languages. Now one could use a {locl} feature, but getting it to work in different apps is still tricky (I remember long email exchanges with Kent regarding this) and it only works if the language for a text/document is set. I propose keeping the rotated form the default and perhaps use the cool U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK (‟) more?


  • Use »guillemets« for German.  :smile: 
  • Kent LewKent Lew Posts: 905
    Indra — I seem to remember that I had arrived at a scheme where, if it was the designer’s preference to have mirrored quotes, they would automatically mirror for “66-99” use in an OT-smart environment, but the turned defaults would be in place in any dumb environment. I can’t recall now if I got that completely fool-proof because we eventually decided it wasn’t worth pursuing.

    BTW, it wasn’t just Verdana; Matthew went through a phase, I think. Sophia and Wrigley also had mirrored quotes. Perhaps others. But he says he’s learned his lesson. ;-) While I was helping with an update to Sophia recently, he made a point of asking to “correct” those left quotes.

  • Craig EliasonCraig Eliason Posts: 1,328
    When handwriting those "proper" close-quotes, do you write the stroke from bottom to top?
    (And I'm also curious if Germans use asymmetrical arm positions when doing "air-quotes" :smile: )
  • kupferskupfers Posts: 259
    Of course (not), but I also don’t use these forms in my type or typography. You?
  • Ray LarabieRay Larabie Posts: 1,311
    If I were to use {locl} to deal with this, I assume I'd first have to define all the languages I want to cover... like this:

    languagesystem DFLT dflt; # default
    languagesystem latn dflt; # Latin
    languagesystem latn SQI; # Albanian
    languagesystem latn CSY; # Czech
    languagesystem latn ETI; # Estonian
    languagesystem latn KAT; # Georgian
    languagesystem latn DEU; # German
    languagesystem latn ISL; # Icelandic
    languagesystem latn LTH; # Lithuanian
    languagesystem latn LSB; # Lower Sorbian
    languagesystem latn ROM; # Romanian
    languagesystem latn SKY; # Slovak
    languagesystem latn SLV; # Slovene
    languagesystem latn USB; # Upper Sorbian
    languagesystem cyrl BGR; # Bulgarian
    languagesystem cyrl MKD; # Macedonian
    languagesystem cyrl RUS; # Russian
    languagesystem cyrl UKR; # Ukrainian

    And let's say I've designed some alternate quotation marks. How go I get them to swap for specific languages? In The FontLab manual, I think it's telling me I have to use lookups but they're not clear on how I poll for specific languages. Let's say my substitution in a LOCL feature like this:

    sub quoteleft by quoteleft.1;
    sub quotedblleft by quotedblleft.1;

    How do I make this work?
  • For all the languages there are many different conventions for quotes (Indra has already referenced to Wikipedia). All conventions have their advantages and disadvantages. For a superficial observer, they might be more or less disturbing, because they are additional characters in the text. They are not spoken, but for the reader and his reading comprehension they are still very important.

    Problems arises when quotation marks merging with others characters. It would be good if  (closing) quotation marks differ from apostrophes. Are the marks sitting on the ascender line, they can collide with uppercase letters (in German there are many of them).

    And then they should look good and rip no holes in the typesetting. I also like it when these signs are symmetrical. Is that the reason why lot of typographers like Guillemets?

    In my handwriting, I write quotation marks always from top to bottom – in German: “99 below” and “above 99” (if one can recognize them at all). Here, I model the characters individual, and can write individual solutions in case of problems (e.g. with apostrophes).
  • Nick ShinnNick Shinn Posts: 2,003
    In my interpretation of Amanda Duffy’s lettering, I kept her symmetrical “show card” style of quote marks, and matched the baseline quotes—after a fashion. 

    By way of a rationale for not-getting-it-quite-right, I would like to suggest that it’s OK for a foreign typeface to speak with a foreign accent, and might even be considered sexy, like Dietrich and Chevalier in the old Hollywood movies, or just plain exotic, like Peter Lorre. 

    Hey.png 12.5K
  • Ray, you need to define the substitutions after their language tags in the LOCL feature. Doing this from memory but it's something like: 

    feature locl { 
      script latn;
      language PLK;
      lookup indraquotes {
        sub [quoteleft quotedblleft] by [quoteleft.1 quotedblleft.1]; 
      } indraquotes;
    } locl;

    Then the typesetting engine will apply that substitution to text tagged with that language. You can test it by expanding all of the options in the Character menu in InDesign, then selecting the language. 

  • Ray LarabieRay Larabie Posts: 1,311
    edited August 2015
    Thanks, Jackson. Can I do this? language [SQI CSY ETI KAT DEU (etc)];
    Since some of the languages affected are Cyrillic, can I add a script cyrl; after script latn; or would that have to be done in its own lookup. Or can I do script [latn cyrl];? I hope I didn't junk up the thread with this question but I figured the answer might be helpful to anyone else wanting to fix up their sign painter's quotes.
  • You can't group the languages like that, no. If you want to repeat a substitution, you can just cite the lookup. You can use this for other types of substitutions too, it's one of the only smart things OpenType coding allows. You should double check all this though, I'm just pulling it out of my brain cobwebs. 

    feature locl { 
      script latn;
      language PLK;   lookup indraquotes {     sub [quoteleft quotedblleft] by [quoteleft.1 quotedblleft.1]; 
      } indraquotes;
      language TRK;
      lookup indraquotes;
    } locl;

  • Ray LarabieRay Larabie Posts: 1,311
    I'll give it a shot, thanks!
  • Kent LewKent Lew Posts: 905
    Ray — To add to Jackson’s examples, if you want some rules to cover all languages in a script, then you only need to assign the lookup to language dflt, you don’t need to explicitly list all languages.

    If you want some rules to apply to a majority of languages in a script, but not all, you can assign the rules to language dflt and use the exclude_dflt parameter to exempt the few exceptions. For example:

    feature locl {
        script latn;
        language dflt;         sub [quoteleft quotedblleft] by [quoteleft.1 quotedblleft.1];
        language DEU exclude_dflt;
    } locl;
    In this example, the rule will apply to all languages in Latin script except German.

    (Note: this particular example is not meant as an actual solution to the initial question, just a demonstration of one aspect of a possible approach.)
  • kupferskupfers Posts: 259
    Addendum, from McGrew: 
Sign In or Register to comment.