Regla de reescritura lingüística tipográfica

Regla de reescritura lingüística tipográfica

Estoy intentando (más o menos) replicar esta regla de reescritura fonológica:

ingrese la descripción de la imagen aquí

estoy usando el paquetephonrule, y lo que logro lograr es esto:

\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}

ingrese la descripción de la imagen aquí

Mi principal problema aquí es lo que aparece después de la barra "cuándo":

(1) El paquete solo proporciona un corchete izquierdo. ¿Cómo puedo agregar uno derecho también?

(2) Las dos opciones entre llaves no están bien alineadas. Creo que comparar las dos imágenes lo dice mejor que lo que podría hacer con palabras.

Respuesta1

Puedes ver la reimplementación de phonrulelo que hice paraAlineación en \oneof del paquete phonrule

Ahora podemos definir una variante de \oneofdonde se agrega la llave de cierre y se elimina el espacio entre columnas.

\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}

ingrese la descripción de la imagen aquí

Respuesta2

Aquí hay una versión que se ve bien. Agregué un \twoofcomando para la segunda llave e hice un \pholdcomando más largo \Phold. Dado que los comandos subyacentes son tabulares, puede pasarles cualquier especificación tabular, por lo que eliminé el espacio entre columnas para que la alineación se vea un poco mejor.

\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}

salida de código

Respuesta3

Usandola respuesta de egregcomo base, e incorporando algo dela respuesta de alanAdemás de agregar algunas cosas mías, me decidí por esto (eliminando líneas que no necesito para este 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}

ingrese la descripción de la imagen aquí

Lo que he cambiado de la respuesta de egreg es esto:

(1) Creé una versión de \hrulefillcall \phoncrossbarque tiene el mismo grosor (0,5 puntos) que las reglas utilizadas en otros lugares aquí.

(2) Se agregó @{}c@{}a la definición \phonfeaty \phonbracesse elimina el espacio en blanco adicional en las matrices y alrededor de las llaves (así es como se ve normalmente en la literatura).

(3) Alineó a la izquierda las características en la matriz de características (que es la norma).

información relacionada