On Jul 28, 2010, at 5:37 PM, Ross Moore wrote:

Hi Ulrike and Alan,

On 29/07/2010, at 4:03 AM, Ulrike Fischer wrote:

I know the definition for the IPA environment isn't correct; what I
want is characters inside that environment to be interpreted in the
same way that they are within the \textipa command provided by xunicode.

You must use a name with small letters for your environment (tipa
activates the others)

\documentclass{article}
\usepackage{xltxtra}
\newfontfamily{\ipafont}{Doulos SIL}
\def\useTIPAfont{\ipafont}
\newenvironment{ipa}{%
\let\stone\TIPAstonebar
\let\tone\TIPAtonebar
\setTIPAcatcodes\activatetipa
\csname useTIPAfont\endcsname
}{}
\begin{document}
\textipa{RPAQIOE} % This will give you correct phonetic characters
\begin{ipa}
RPAQIOE
\end{ipa}

\end{document}

You can take the extra step to be able to use
 \begin{IPA}
  ...
 \end{IPA}

viz.

\documentclass{article}
\usepackage{xltxtra}
\newfontfamily{\ipafont}{Doulos SIL}
\def\useTIPAfont{\ipafont}
\newenvironment{ipa}{%
\let\stone\TIPAstonebar
\let\tone\TIPAtonebar
\setTIPAcatcodes\activatetipa
\useTIPAfont  % no need for \csname  here
}{}
\let\realend\end
\let\endIPA\endipa
\def\IPA{\let\end\ipaspecialend\ipa}% change how \end works inside IPA envs
\def\endendipa{\end{IPA}}
{\catcode`I = \active \catcode`P = \active \catcode`A= \active
 \gdef\foundendipa{IPA}%
 \gdef\ipaspecialend#1{\def\testforipa{#1}%
  \ifx \testforipa \foundendipa\expandafter\endendipa
  \else\realend{#1}%
  \fi}%
}% end of \catcode  changes

\begin{document}
\textipa{RPAQIOE} % This will give you correct phonetic characters
\begin{ipa}
RPAQIOE
\end{ipa}

RPAQIOE

\begin{IPA}% So will this!
RPAQIOE
\end{IPA}

\end{document}

But do *not* try to nest these environments.
If you have macros expanding to use such environments,
then there is no guarantee that these will work properly.

I think they will, since the definitions will have been
made with non-active letters, but have not tested it.

Writing out IPA environments into auxiliary files is
almost certain to *not* work.
But test it, if you need this kind of feature.


Thanks, Ross. What I'm mainly looking for is a fairly simple way of using legacy TIPA code, and I don't know whether this would cause any problems or not. I also don't quite know how much xunicode itself emulates TIPA and how much it doesn't. Right now there are various things that don't work, but I don't know enough about how xunicode works (and probably the relevant fonts themselves) to make a new package that would make the emulation more complete.

For example, (and not surprisingly) the following commands are defined in TIPA, but don't work with xunicode:

\*<char> depending on <char> produces the turned version of <char> for {fkrtw} or a specific other character for {jnhlz} else a non-IPA version of <char>

\;<char> produces a small caps version for {EJAHLUBGNR}
\:<char> produces a retroflex version for {dlnrRstz}

etc.

These commands are defined in the following way in tipa.sty

\DeclareTextCommand{\:}{T3}[1]{#1}
 \DeclareTextAccentDefault{\:}{T3}
 \DeclareTextComposite{\:}{T3}{d}{227}

etc.

If I were to do the same thing using xunicode how would I do it?

Also (and more suprisingly) \c{c} doesn't seem to work, but gives

Undefined control sequence \realLaTeXcedilla

Anyway, I'd be happy to do some of the work, but I'm somewhat in the dark as to how to start.

Thanks

Alan



--
Alan Munn
[email protected]






--------------------------------------------------
Subscriptions, Archive, and List information, etc.:
 http://tug.org/mailman/listinfo/xetex

Reply via email to