[XeTeX] XeTex and Accents
Radhakrishna Valiveti
rvaliveti at yahoo.com
Fri Jan 18 20:25:48 CET 2008
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
DIV {
MARGIN:0px;}
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:
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).
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.
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?
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?
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://tug.org/pipermail/xetex/attachments/20080118/c368f302/attachment.html
More information about the XeTeX
mailing list