排版語言重寫規則

排版語言重寫規則

我試著(或多或少)複製這個語音重寫規則:

在此輸入影像描述

我正在使用該包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) 大括號內的兩個選項沒有很好地對齊。我認為比較兩張圖片本身比我用文字更能說明問題。

答案1

你可以看看phonruleI did for的重新實現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

這是一個看起來不錯的版本。我\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

使用艾格格的回答作為基礎,並結合一些東西艾倫的回答除了添加我自己的一些內容之外,我還決定這樣做(刪除此 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) 創建了與此處其他地方使用的規則具有相同厚度 (0.5pt)的\hrulefillCalled版本。\phoncrossbar

(2)在加到和@{}c@{}的定義中,以刪除矩陣中和大括號周圍的額外空白(這也是文獻中通常的樣子)。\phonfeat\phonbraces

(3) 將特徵矩陣中的特徵左對齊(這是常態)。

相關內容