[XeTeX] Long i with overbar and no dot
Ross Moore
ross at ics.mq.edu.au
Fri May 14 00:03:22 CEST 2010
Hello Philipp,
On 14/05/2010, at 3:38 AM, Philiрp Rеichmuth wrote:
> Am Wed, 12 May 2010 10:55:47 +0300 schrieb Khaled Hosny:
>> Or, alternatively, just use the proper unicode character in your
>> input
>> (though, I myself, find TeX notation a bit handy).
>
> It would be even handier if it was easier to configure xunicode's
> glyph
> replacement for precomposed characters.
It is easy. You simply undeclare any definitions that do not apply.
Currently Xunicode has the line:
\DeclareUTFcomposite[\UTFencname]{x1E57}{\.}{p}
which maps \.{p} to Ux1E57
If you include a line, after Xunicode has loaded, as follows:
\UndeclareUTFcomposite[\UTFencname]{x1E57}{\.}{p}
then now \.{p} will be mapped to the pair 'p'Ux0307
which just requires the font to have the combining dot-above accent.
If your font has neither the precomposed characters,
nor the combining accent, then yes there is a bit more to do.
But that is also possible, as Xunicode has a built-in
method to handle this too; viz.
\gdef\add at set@accentMOD#1#2#3{\add at accent{"#3}{#2}}
\makeatletter
\let\add at encoded@accent\add at set@accentMOD
\DeclareEncodedCompositeCharacter{\UTFencname}{\.}{0307}{02D9} %
Combining dot above
... more such declarations ...
\makeatother
Now you will get the non-combining character Ux02D9 positioned
above the letter to be accented.
The \DeclareEncodedCompositeCharacter line can also
be found in xunicode.sty , so you just copy it from there.
>
> Currently I have a lot of \DeclareTextAccent in my preamble to
> customize
> accents for fonts that don't have the necessary precomposed characters
> together with \catcode declarations along the lines of
> \catcode `ṗ = \active\let ṗ\pdotabove
> \catcode `ʿ = \active\let ʿ\PRAin
OK. Xunicode has not assigned individual macro names to these
accented characters, because the old tipa.sty did not do so.
Is there an active standard for these names ?
If not, you could use the same approach but define
\catcode `ṗ = \active \def ṗ{\.{p}}
to use the \add at set@accentMOD method after redeclaring
how the \. accent will be formed.
>
> That way I can supplement a lot of Unicode precomposed glyphs for
> fonts
> that don't have them. It is workable and looks reasonably well in most
> cases, but the preamble is a bit unwieldy and the text accents are
> a bit
> hackish.
>
> It would be nice to have more customization options for xunicode's
> behaviour (no replacement, replacement with "proper" Unicode accent
> glyphs,
> replacement with similarly-looking glyphs such as macron -> dash,
> that sort
> of thing).
Is this not exactly what I described above?
> One of the reasons why I got into TeX in the first place was
> that it was easy to use lots of different accents with standard
> fonts in
> printed output. XeTeX is very useful for Unicode, but it forces me
> again to
> have glyphs for all the fonts or to get hackish.
You cannot call up glyphs in a font that doesn't have them.
So this kind of problem still arises. It isn't XeTeX's fault.
Now we come to the point of the \UTFencname parameter.
If you know what your font supports, then you can define
a specific encoding name for it.
e.g.
\def\UTFencname{Pdot}
\usepackage{xunicode}
\makeatletter
\let\add at encoded@accent\add at set@accentMOD
\UndeclareUTFcomposite[\UTFencname]{x1E57}{\.}{p}
% ... more \Undeclare... combinations, if required
\DeclareEncodedCompositeCharacter{\UTFencname}{\.}{0307}{02D9} %
Combining dot above
\makeatother
Now you have a font-encoding that matches what your font supports.
If you used fontspec to load the main body font, then that still
works with the EU1 encoding.
When you switch to use your special font, you need to include
\fontencoding{Pdot}
with your font-switch macro.
> While I am aware of the
> limitations such as searching in PDFs, it would still be useful to
> customize the replacements xunicode is doing at a higher level than
> changing character encodings all the time.
This should only be necessary if you are using glyphs
from fonts that are not using the Unicode code-points.
If you are doing this, then it is /ActualText that you
need, to get searching to work correctly.
That has been the topic of a recent thread:
"Ligatures and searching in PDFs"
>
> Philipp
Hope this helps,
Ross
------------------------------------------------------------------------
Ross Moore ross at maths.mq.edu.au
Mathematics Department office: E7A-419
Macquarie University tel: +61 (0)2 9850 8955
Sydney, Australia 2109 fax: +61 (0)2 9850 8114
------------------------------------------------------------------------
More information about the XeTeX
mailing list