23

I am looking for certain diacritics from the phonetic transcription system of the Sprachatlas der deutschen Schweiz (Swiss German linguistic atlas). It is a system that is similar to the one sometimes called Teuthonista. Here are (rather poor) pictures from Rudolf Hotzenköcherle (1962): Einführung in den Sprachatlas der deutschen Schweiz. Part B. Bern, pp. 87, 80:

b/p series e series

List of characters

The following ones are not yet in Unicode (you can see them for instance in N4081: Revised proposal to encode “Teuthonista” phonetic characters in the UCS):

  • parenthesized dot below
  • parenthesized diaeresis below
  • lenis mark below (the diacritic similar to an ogonek)
  • parenthesized lenis mark below
  • double lenis mark below
  • parenthesized double lenis mark below

This one is in Unicode, but I have not been able to find a nice solution for it in LaTeX:

  • U+0353 combining x below

These ones are available in tipa (I just list them here for completeness):

  • \textsubdot
  • \textsubumlaut
  • \textsyllabic (vertical bar below)

My preliminary ugly solutions

Based on tipaman.pdf, I achieved this:

preliminary ugly solution

With the following code:

\documentclass{scrartcl}
\usepackage{tipa}
\begin{document}
\tipaLoweraccent[.2ex]{\textsf{\super{x}}}{b}
b
\textsyllabic{b}
\tipaUpperaccent[.4ex]{\super{b}}{p}
\tipaLoweraccent[.2ex]{\textsf{\super{x}}}{p}
p
\=p
\textsuperscript{p}p
pp\par
\tipaLoweraccent[.2ex]{\textsf{\super{\textit{\textiota\textiota}}}}{i}
\tipaUpperaccent[.4ex]{\super{i}}{e}
\textsubumlaut{e}
\tipaLoweraccent[.2ex]{\textsf{\super{($\cdot\cdot$)}}}{e}
\textsubdot{e}
\tipaLoweraccent[.2ex]{\textsf{\super{($\cdot$)}}}{e}
e
\tipaLoweraccent[.2ex]{\textsf{\super{(\textit{\textiota})}}}{e}
\textpolhook{e}
\tipaLoweraccent[.2ex]{\textsf{\super{(\textit{\textiota\textiota})}}}{e}
\tipaLoweraccent[.2ex]{\textsf{\super{\textit{\textiota\textiota}}}}{e}
\ae{}
\textsubumlaut{a}
\end{document}

How can I get better results? The parenthesis are too big. The \textiota is a very crude solution (I think something closer to an ogonek would be a closer match to the above picture).

4 Answers 4

7

Support for Teuthonista has been added to the Unicode standard in Version 7.0 released in 2014 (or thereabout). So in a modern LaTeX environment, you can insert these special characters directly, for example through their Unicode codepoint with the notation \char"1AB7 for the combining open mark below.

The difficult part is to find a font that actually supports Teuthonista. Even fonts made for linguists like Brill typeface, Gentium or Junicode do not support these fully (to my knowledge). The only publicly available font with full support for Teuthonista that I am aware of is Noto Serif commissioned by Google, which does provide all characters and marks and gets them almost right typographically, with the exception that the parentheses for the diacritics are misplaced (see image below).

Example to be compiled with xelatex:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Noto Serif}

\begin{document}

b\char"0353{} b b\char"0329{} p\char"1DE8{} p\char"0353{} p p\char"0304{} \textsuperscript{p}p pp

i\char"1AB8{} e\char"0365{} e\char"0324{} e\char"0324\char"1ABD{} e\char"0323{} e\char"0323\char"1ABD{} e{} e\char"1AB7\char"1ABD{} e\char"1AB7{} e\char"1AB8\char"1ABD{} e\char"1AB8{} æ a\char"0324{}

\end{document}

Result (upper two rows are Noto Serif):

enter image description here

1
  • LuaLatex now uses the HarfBuzz font renderer, like XeLatex, but there are still slight differences in the output - see images in my answer.
    – Cicada
    Commented Mar 28, 2021 at 11:17
17

Could be tweaked a bit more but....

output

\documentclass{scrartcl}
\usepackage{tipa,graphics}
\makeatletter
\providecommand\xloweraccent{\@ifnextchar[{\lower@accent x\empty}%
  {\lower@accent x\empty[\z@]}}

\def\brak#1{\xloweraccent{%
\raisebox{-.3ex}{\resizebox{!}{.6ex}{\bfseries(}}%
{\fontencoding{T3}\selectfont\char12}%
\raisebox{-.3ex}{\resizebox{!}{.6ex}{\bfseries)}}%
}{#1}}


\def\brakk#1{\xloweraccent{%
\raisebox{-.3ex}{\resizebox{!}{.6ex}{\bfseries(}}%
\scalebox{.7}{\fontencoding{T3}\selectfont\char12\kern-.1em\char12}%
\raisebox{-.3ex}{\resizebox{!}{.6ex}{\bfseries)}}%
}{#1}}


\def\tipakk#1{\xloweraccent{%
{\fontencoding{T3}\selectfont\char12\kern-.1em\char12}%
}{#1}}


\def\brauml#1{\xloweraccent[.3ex]{%
\raisebox{1.1ex}{\resizebox{!}{.6ex}{\bfseries(}}%
{\kern-.1em\fontencoding{T3}\selectfont\char4\kern-.1em}%
\raisebox{1.1ex}{\resizebox{!}{.6ex}{\bfseries)}}%
}{#1}}

\def\bradot#1{\xloweraccent[.3ex]{%
\raisebox{1.1ex}{\resizebox{!}{.6ex}{\bfseries(}}%
{\kern-.1em\fontencoding{T3}\selectfont\char10\kern-.1em}%
\raisebox{1.1ex}{\resizebox{!}{.6ex}{\bfseries)}}%
}{#1}}

\makeatother

\begin{document}

\tipaLoweraccent[.2ex]{\tiny\textsf{x}}{b}
b
\textsyllabic{b}
\tipaUpperaccent[.3ex]{\tiny b}{p}
\tipaLoweraccent[.2ex]{\tiny\textsf{x}}{p}
p
\=p
\textsuperscript{p}p
pp\par
\tipakk{i}
\tipaUpperaccent[.3ex]{\tiny i}{e}
\textsubumlaut{e}
\brauml{e}
\textsubdot{e}
\bradot{e}
e
\brak{e}
\textpolhook{e}
\brakk{e}
\tipakk{e}
\ae{}
\textsubumlaut{a}
\end{document}
16

Thank you very much, David Carlisle! After learning how it works from your answer, I have been able to make my own tweaks: Instead of the brackets and the x, I am using the tipa characters that are produced with \textsublhalfring, \textsubrhalfring and \textovercross respectively. I also forced the bracketed diacritics to be always upright, so the kerning is not messed up when in italics.

screenshot that includes italic characters

\documentclass{scrartcl}
\usepackage{tipa,graphicx}

\newcommand{\subpardot}[1]{\tipaLoweraccent[.2ex]
  {\upshape\fontencoding{T3}\selectfont
    \char21
    \raisebox{-1.15ex}{\kern-.12em\char10\kern-.09em}%
    \kern-.05em\char20}
  {#1}}

\newcommand{\subpardotdot}[1]{\tipaLoweraccent[.2ex]
  {\upshape\fontencoding{T3}\selectfont
    \char21
    \raisebox{-1.15ex}{\kern-.19em\char4}%
    \kern-.18em\char20}
  {#1}}

\newcommand{\subhook}[1]{\tipaloweraccent[.2ex]{12}{#1}}

\newcommand{\subparhook}[1]{\tipaLoweraccent[.17ex]
  {\upshape\fontencoding{T3}\selectfont
    \char21
    \kern-.1em\raisebox{.5ex}{\char12}%
    \kern-.1em\char20}
  {#1}}

\newcommand{\subhookhook}[1]{\tipaloweraccent[.2ex]
  {12\kern-.1em\char12}
  {#1}}

\newcommand{\subparhookhook}[1]{\tipaLoweraccent[.17ex]
  {\upshape\fontencoding{T3}\selectfont
    \char21
    \kern-.1em\raisebox{.45ex}{\scalebox{.7}{\char12\kern-.1em\char12}}%
    \kern-.1em\char20}
  {#1}}

\newcommand{\subx}[1]{\tipaloweraccent[.15ex]{24}{#1}}

\begin{document}

\subx{b}
b
\textsyllabic{b}
\tipaUpperaccent[.3ex]{\tiny b}{p}
\subx{p}
p
\=p
\textsuperscript{p}p
pp

\subhookhook{i}
\tipaUpperaccent[.3ex]{\tiny i}{e}
\textsubumlaut{e}
\subpardotdot{e}
\textsubdot{e}
\subpardot{e}
e
\subparhook{e}
\subhook{e}
\subparhookhook{e}
\subhookhook{e}
\ae{}
\textsubumlaut{a}

\emph{\subx{b}
  b
  \textsyllabic{b}
  \tipaUpperaccent[.3ex]{\tiny b}{p}
  \subx{p}
  p
  \=p
  \textsuperscript{p}p
  pp}

\emph{\subhookhook{i}
  \tipaUpperaccent[.3ex]{\tiny i}{e}
  \textsubumlaut{e}
  \subpardotdot{e}
  \textsubdot{e}
  \subpardot{e}
  e
  \subparhook{e}
  \subhook{e}
  \subparhookhook{e}
  \subhookhook{e}
  \ae{}
  \textsubumlaut{a}}

\end{document}
4
  • yes they look nice, feel free to accept your own answer, I won't be offended:-) Commented Nov 12, 2012 at 19:23
  • oh you accepted mine, I don't mind that either, although actually it's probably better to accept your own in this case so someone else looking for these accents will first find your code not mine. Commented Nov 12, 2012 at 19:27
  • I essentially copied your code and – as you suggested – «tweaked a bit more».
    – mach
    Commented Nov 13, 2012 at 7:06
  • 1
    You should seriously consider publishing this as an own LaTeX package or at least writing to the tipa maintainer and asking for addition as option to this package! You could also ask in the chat TeX, LaTeX and Friends or in the usenet group comp.text.tex for an expert doing it for you, if you not versed in packaging.
    – Speravir
    Commented Nov 13, 2012 at 16:58
4

The HarfBuzz font-rendering engine is now used by both LuaLatex and XeLatex, so both compilers would be expected to produce similar ouput.

Using version 2 of the Noto Serif font group, compiled with LuaLatex, gives this for three random font faces:

lualatex

XeLatex almost matches output, but is mis-aligned in a few cases, where the diacritical mark is interpreted as stackable:

xelatex

MWE

\documentclass{article}
\usepackage{fontspec}
\newcommand\fname{NotoSerif-ExtraCondensedMediumItalic.ttf}
\setmainfont{\fname}
\newcommand\fnameb{NotoSerif-SemiCondensedExtraBold.ttf}
\newfontface{\ffb}{\fnameb}
\newcommand\fnamec{Noto Serif}
\newfontface{\ffc}{\fnamec}

\begin{document}
LuaLatex + \fname 

b\char"0353{} b b\char"0329{} p\char"1DE8{} p\char"0353{} p p\char"0304{} \textsuperscript{p}p pp

i\char"1AB8{} e\char"0365{} e\char"0324{} e\char"0324\char"1ABD{} e\char"0323{} e\char"0323\char"1ABD{} e{} e\char"1AB7\char"1ABD{} e\char"1AB7{} e\char"1AB8\char"1ABD{} e\char"1AB8{} æ a\char"0324{}
\bigskip

\ffb
LuaLatex + \fnameb 

b\char"0353{} b b\char"0329{} p\char"1DE8{} p\char"0353{} p p\char"0304{} \textsuperscript{p}p pp

i\char"1AB8{} e\char"0365{} e\char"0324{} e\char"0324\char"1ABD{} e\char"0323{} e\char"0323\char"1ABD{} e{} e\char"1AB7\char"1ABD{} e\char"1AB7{} e\char"1AB8\char"1ABD{} e\char"1AB8{} æ a\char"0324{}
\bigskip

\ffc
LuaLatex + \fnamec

b\char"0353{} b b\char"0329{} p\char"1DE8{} p\char"0353{} p p\char"0304{} \textsuperscript{p}p pp

i\char"1AB8{} e\char"0365{} e\char"0324{} e\char"0324\char"1ABD{} e\char"0323{} e\char"0323\char"1ABD{} e{} e\char"1AB7\char"1ABD{} e\char"1AB7{} e\char"1AB8\char"1ABD{} e\char"1AB8{} æ a\char"0324{}
\bigskip

\end{document}

** Addendum**

XeLatex works with a kludge:

  1. Do parentheses below first. This fixes dot-below straightaway in terms of stacking: e\char"1ABD{}\char"0323{}

  2. parentheses below + diaeresis below work OK separately, so overlap them: e\char"1ABD{}\llap{e\char"0324{}}

xelatex kludge

MWE

\documentclass{article}
\usepackage{fontspec}
\newcommand\fname{NotoSerif-ExtraCondensedMediumItalic.ttf}
\setmainfont{\fname}
\newcommand\fnameb{NotoSerif-SemiCondensedExtraBold.ttf}
\newfontface{\ffb}{\fnameb}
\newcommand\fnamec{Noto Serif}
\newfontface{\ffc}{\fnamec}

\begin{document}
XeLatex + \fname 

b\char"0353{} b b\char"0329{} p\char"1DE8{} p\char"0353{} p p\char"0304{} \textsuperscript{p}p pp

i\char"1AB8{} 
e\char"0365{} 
e\char"0324{} 
e\char"1ABD{}\llap{e\char"0324{}}
%e\char"1ABB{}\char"1AB4{}
e\char"0323{} 
e\char"1ABD{}\char"0323{}
e{} 
e\char"1AB7\char"1ABD{} 
e\char"1AB7{} 
e\char"1AB8\char"1ABD{} 
e\char"1AB8{} 
æ 
a\char"0324{}
\bigskip

\ffb
XeLatex + \fnameb 

b\char"0353{} b b\char"0329{} p\char"1DE8{} p\char"0353{} p p\char"0304{} \textsuperscript{p}p pp

i\char"1AB8{} 
e\char"0365{} 
e\char"0324{} 
e\char"1ABD{}\llap{e\char"0324{}}
e\char"0323{} 
e\char"1ABD{}\char"0323{}
e{} 
e\char"1AB7\char"1ABD{} 
e\char"1AB7{} 
e\char"1AB8\char"1ABD{} 
e\char"1AB8{} 
æ 
a\char"0324{}
\bigskip

\ffc
XeLatex + \fnamec

b\char"0353{} b b\char"0329{} p\char"1DE8{} p\char"0353{} p p\char"0304{} \textsuperscript{p}p pp

i\char"1AB8{} 
e\char"0365{} 
e\char"0324{} 
e\char"1ABD{}\llap{e\char"0324{}}
e\char"0323{} 
e\char"1ABD{}\char"0323{}
e{} 
e\char"1AB7\char"1ABD{} 
e\char"1AB7{} 
e\char"1AB8\char"1ABD{} 
e\char"1AB8{} 
æ 
a\char"0324{}
\bigskip



\end{document}
2
  • Nice update, +1. Is there a reason you use none for the syntax highlighting? The default output doesn't seem too bad for this code.
    – Marijn
    Commented Mar 28, 2021 at 12:18
  • @Marijn none is via the prior example of others; thanks for the hint that there are other options. I will have to learn/explore.
    – Cicada
    Commented Mar 28, 2021 at 12:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .