[XeTeX] XeTex and Accents

John Was john.was at ntlworld.com
Sat Jan 19 09:31:37 CET 2008


Dear Radha

Of course it's an extremely cumbersome way to achieve diacritics, especially complex ones, and we should all be moving on to a point where with Unicode fonts we can have é and not {\'e} (and the rest!).  But if you do, for a while, need to type in a lot of longwinded code, a utility such as Autohotkey (http://www.autohotkey.com/) can be very helpful.  And as I said, it's surprising how often these old bits of plain-TeX code can come in useful, sometimes just in a single situation which it would take a long time to sort out more elegantly.

Best wishes


John





----- Original Message ----- 
  From: Radhakrishna Valiveti 
  To: Unicode-based TeX for Mac OS X and other platforms 
  Sent: Friday, January 18, 2008 7:25 PM
  Subject: Re: [XeTeX] XeTex and Accents


  Hi John:
    Thanks for your pointers to solving the problem I had mentioned. The approach followed by exaccent (the style file I am using) is exactly aligned with the approach you had suggested. The current approach requires knowing the encoding used for the font. I don't see how it could be avoided.

  regards,
  radha


  Radhakrishna Valiveti 
  rvaliveti at yahoo.com 




  ----- Original Message ----
  From: John Was <john.was at ntlworld.com>
  To: Unicode-based TeX for Mac OS X and other platforms <xetex at tug.org>
  Sent: Friday, January 18, 2008 12:27:31 AM
  Subject: Re: [XeTeX] XeTex and Accents


  Hello Radhakrishna

  Even now I quite often find it useful to employ an \overstrike macro which must have been one of the first things I wrote when I started to read the TeXBook.  It superimposes two characters on top of each other, the narrow centred on the longer.  It could be tidied up a bit but here it is in its rought state:

  \def\overstrike#1#2{\leavevmode
     \setbox0=\hbox{#1}\setbox1=\hbox{#2}\copy0
     \kern -0.5\wd0 \kern -0.5\wd1 \copy1 \kern -0.5\wd1 \kern 0.5\wd0}

  (You would have to adapt that for LaTeX's \DeclareTextCommand - I don't (yet) use LaTeX.)

  The contents of each box can be varied up and down (use \smash to give it zero height if you think this is going to interfere with \baselineskip), and you can invoke characters from different fonts - so if you have a font with a delicate horizontal bar, for example, that could be used in #2 of the macro rather than the main font's hyphen character (which will usually look ugly if you force it to serve as an accent, which it wasn't designed to be).

  You can nest \overstrike commands, which in the days before the Unicode combining accents was a useful way of getting something like a macron with an acute above.  Measurements should always be in terms of em (or ex) so that the right height is chosen regardless of which point-size you are using.

  Now if you find this works nicely with one font but gives an ugly effect in another, you could use

  \if   \else  \fi

  to give a series of alternative definitions.  In your font definitions you would then have to include a \....true command.  So to switch between definitions for Times and Garamond, for example, give at the start of your file

  \newif \iftimes
  \newif \ifgaramond

  and whenever one of these fonts is used set \timestrue or \garamondtrue.

  The accent definitions would then be:

  \iftimes [DEFINITION ONE] \else
      \ifgaramond [DEFINITION TWO]\fi\fi

  All this, of course, is very ugly in view of what you can do neatly with Unicode fonts that have the proper accent support, but if you are forced into using old fonts, and old .TEX files, this might at least give you a pointer about how you could control the appearance of diacritics.

  Best


  John

  ---------Original Message ----- 
    From: Radhakrishna Valiveti 
    To: xetex 
    Sent: Friday, January 18, 2008 2:59 AM
    Subject: [XeTeX] XeTex and Accents


    Hi,

       I have recently started using xelatex (with MikTex 2.7) instead of pdflatex. I have a question about getting accents with xetex. Here are couple of constraints/requirements for what I am looking for:

      a.. For the book that I am working we need to use three TTF fonts (for different portions of the text): MS Trebuchet, Futura, and Arial. I don't have much freedom in choosing different fonts (since we have to preserve the formatting used in earlier editions of the book).

      b.. The text in each of these fonts may have the accents: \=, \d, and \. applied to some of the letters. Sometimes, the text with these accents is underlined as well. In order to make sure that underline doesn't hide the dot below the letter, I need to control the placement of the dot accurately. 

      c.. I would like a general solution that would produce controllable accents/diacritics, regardless of the fonts. If there has to be some dependence on the fonts, I would like such dependencies to be localized to very few macros. It appears to me that using the "preformed" character from the font (if it exists) may not give me all the flexibility I need. What do you think?

      d..  I am currently using the style files: fontspec, exaccent and the following macros to control the placement of diacritics that I need:
      %======================================
      % Adjustment to the location of accents
      %=======================================
      \DeclareTextCommand{\=}{EU1}[1]{\upperaccent[-0.2ex]{"00AF}{#1}} %macron
      \DeclareTextCommand{\.}{EU1}[1]{\upperaccent[-0.2ex]{"00B7}{#1}} %dot
      \DeclareTextCommand{\d}{EU1}[1]{\loweraccent[0.1ex]{"00B7}{#1}}  %dot

      But I find that the macron over the letter is just too large and doesn't look nice (the hyphen looks too small as an overbar). Do we have any other choice for this? 

      e.. I would like the same macro(s) to work with (a) older, non-unicode TTF fonts that have been somehow adapted by fontspec to be usable by xetex, or (b) newer unicode fonts on my machine. When I tried the unicode font called "Gentium" (which I found on the scripts.sil.org website), the diacritics over the letters in this font don't look appealing at all (i.e. the above TextCommands don't seem to have any affect --- it is perhaps picking a preformed glyph from the font). Is there anything I can do?

     I look forward to hearing from people who have faced similar issues, and may have a solution to this issue.

    thanks,
    radha 

    Radhakrishna Valiveti 
    rvaliveti at yahoo.com 





    _______________________________________________
    XeTeX mailing list
    postmaster at tug.org
    http://tug.org/mailman/listinfo/xetex





------------------------------------------------------------------------------


  _______________________________________________
  XeTeX mailing list
  postmaster at tug.org
  http://tug.org/mailman/listinfo/xetex
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://tug.org/pipermail/xetex/attachments/20080119/af734527/attachment-0001.html 


More information about the XeTeX mailing list