Я пытаюсь (более или менее) воспроизвести это правило фонологического переписывания:
Я использую пакетphonrule
, и вот чего мне удаётся добиться:
\documentclass{article}
\usepackage{phonrule}
\begin{document}
\phonc
{\phonfeat{$-$cnt\\ +hi}}
{[$\alpha$grv]}
{\oneof{%
\phonfeat{$-$cnt\\ $\alpha$grv}\phold\\
\phold\phonfeat{$-$cnt\\ $\alpha$vce}%
}}
\end{document}
Моя главная проблема здесь в том, что появляется после косой черты «когда»:
(1) В пакете предусмотрена только левая фигурная скобка. Как мне добавить еще и правую?
(2) Два варианта в фигурных скобках не очень хорошо выровнены. Я думаю, сравнение двух картинок само по себе говорит об этом лучше, чем то, что я мог бы сделать словами.
решение1
Вы можете посмотреть на повторную реализацию, которую phonrule
я сделал дляВыравнивание в \oneof из пакета phonrule
Теперь мы можем определить вариант, \oneof
в котором закрывающая скобка добавляется, а пробел между столбцами удаляется.
\documentclass{article}
% BEGIN reimplementation of phonrule
\providecommand*{\textrightarrow}{\ensuremath{\rightarrow}}
\providecommand*{\textplus}{\ensuremath{+}}
\providecommand*{\textminus}{\ensuremath{-}}
\newcommand*{\phold}{\rule[-1.5pt]{1.5ex}{.5pt}}
\newcommand*{\phon}[2]{#1 \textrightarrow{} #2}
\newcommand*{\phonc}[3]{\phon{#1}{#2}~/~#3}
\newcommand*{\phonr}[3]{\phon{#1}{#2}~/~\phold#3}
\newcommand*{\phonl}[3]{\phon{#1}{#2}~/~#3\phold}
\newcommand*{\phonb}[4]{\phonl{#1}{#2}{#3}#4}
\makeatletter
\newcommand*{\env}{\@ifstar{\@env{&}}{\@env{~}}}
\newcommand*{\@env}[3]{#2~/#1#3}
\newcommand*{\envr}{\@ifstar{\@envr{&}}{\@envr{~}}}
\newcommand*{\@envr}[3]{\@env{#1}{#2}{\phold#3}}
\newcommand*{\envl}{\@ifstar{\@envl{&}}{\@envl{~}}}
\newcommand*{\@envl}[3]{\@env{#1}{#2}{#3\phold}}
\newcommand*{\envb}{\@ifstar{\@envb{&}}{\@envb{~}}}
\newcommand*{\@envb}[4]{\@env{#1}{#2}{#3\phold#4}}
% set environment for feature matrix with square brackets
\newcommand*{\phonfeat}[1]{%
\ensuremath{%
\left[\begin{tabular}{c}#1\end{tabular}\right]%
}%
}
\newcommand*{\oneof}[2][c]{%
\ensuremath{%
\left\{
\begin{tabular}{#1#1}#2\end{tabular}
\right.
}%
}
\makeatother
% END
\newcommand{\oneofvar}[2][c]{%
\ensuremath{%
\left\{
\begin{tabular}{#1@{}#1}#2\end{tabular}
\right\}
}%
}
\begin{document}
\phonc
{\phonfeat{$-$cnt\\ +hi}}
{[$\alpha$grv]}
{\oneofvar{%
\phonfeat{$-$cnt\\ $\alpha$grv} & \hrulefill \\
\hrulefill & \phonfeat{$-$cnt\\ $\alpha$vce}%
}}
\end{document}
решение2
Вот версия, которая выглядит нормально. Я добавил \twoof
команду для второй скобки и сделал \phold
команду длиннее \Phold
. Поскольку базовые команды являются табличными, вы можете передать им любую табличную спецификацию, поэтому я удалил межколоночный пробел, чтобы выравнивание выглядело немного лучше.
\documentclass{article}
\usepackage{phonrule}
\usepackage{amsmath}
\newcommand*{\twoof}[2][c]{%
\ensuremath{%
\left\{
\begin{tabular}{#1#1}#2\end{tabular}
\right\}
}%
}
\newcommand*{\Phold}{\rule[-4pt]{2.5em}{.5pt}}
\begin{document}
\phonc
{\phonfeat{$-$cnt\\ +hi}}
{[$\alpha$grv]}
{\twoof[@{}c@{}]{%
\phonfeat{$-$cnt\\ $\alpha$grv} & \Phold\\
\Phold & \phonfeat{$-$cnt\\ $\alpha$vce}%
}}
\end{document}
решение3
С использованиемответ egregкак основу, и включив что-то изОтвет АланаПомимо добавления нескольких своих собственных фрагментов, я остановился на следующем (удалив строки, которые мне не нужны для этого MWE):
\documentclass{article}
\providecommand*{\textrightarrow}{\ensuremath{\rightarrow}}
\makeatletter
\newcommand*{\phoncrossbar}{\leavevmode\leaders\hrule height .5pt\hfill\kern\z@}
\newcommand*{\phon}[2]{#1 \textrightarrow{} #2}
\newcommand*{\phonc}[3]{\phon{#1}{#2}~/~#3}
\newcommand*{\phonfeat}[1]{%
\ensuremath{%
\left[\begin{tabular}{@{}l@{}}#1\end{tabular}\right]%
}%
}
\newcommand*{\phonbraces}[2][@{}c@{}]{% for curly braces on both sides
\ensuremath{%
\left\{
\begin{tabular}{#1#1}#2\end{tabular}
\right\}%
}}
\makeatother
\begin{document}
\phonc
{\phonfeat{$-$cnt\\ +hi}}
{[$\alpha$grv]}
{\phonbraces{%
\phonfeat{$-$cnt\\ $\alpha$grv} & \phoncrossbar\\
\\
\phoncrossbar & \phonfeat{$-$cnt\\ $\alpha$vce}%
}}
\end{document}
Вот что я изменил по сравнению с ответом egreg:
(1) Создал версию \hrulefill
шрифта \phoncrossbar
, которая имеет ту же толщину (0,5 пт), что и используемые здесь в других местах правила.
(2) Добавлено @{}c@{}
в определение \phonfeat
и \phonbraces
для удаления лишних пробелов в матрицах и вокруг фигурных скобок (так это обычно выглядит в литературе).
(3) Выровняйте признаки в матрице признаков по левому краю (что является нормой).