組版言語書き換えルール

組版言語書き換えルール

私は(多かれ少なかれ)この音韻的書き換えルールを再現しようとしています:

ここに画像の説明を入力してください

パッケージを使用しています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}

ここに画像の説明を入力してください

ここでの主な問題は、「when」スラッシュの後に何が表示されるかです。

(1)パッケージには左中括弧しか含まれていません。右中括弧も追加するにはどうすればいいでしょうか?

(2)中括弧内の2つの選択肢の位置がずれています。言葉で説明するよりも、2つの画像を比較した方が分かりやすいと思います。

答え1

phonrule私が行った再実装を見ることができますphonrule パッケージの \oneof での配置

\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

問題なさそうなバージョンを次に示します。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 の回答から私が変更したのは次の点です:

\hrulefill(1)他の場所で使用されているルール\phoncrossbarと同じ太さ(0.5pt)のバージョンを作成しました。

(2)行列内と括弧の周りの余分な空白を削除するために、および@{}c@{}の定義に追加されました(これは文献でも通常の表示方法です)。\phonfeat\phonbraces

(3)特徴マトリックス内の特徴を左揃えにする(これが標準である)。

関連情報