조판 언어 재작성 규칙

조판 언어 재작성 규칙

나는 이 음운론적 재작성 규칙을 (다소) 복제하려고 합니다.

여기에 이미지 설명을 입력하세요

패키지를 사용하고 있어요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

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)를 갖는 \hrulefill호출 버전을 만들었습니다 .\phoncrossbar

(2) 행렬과 중괄호 주위의 여분의 공백을 제거하기 위해 @{}c@{}정의에 \phonfeat추가 되었습니다 \phonbraces(이것은 문헌에서 일반적으로 나타나는 방식이기도 합니다).

(3) 특징 매트릭스의 특징을 왼쪽 정렬합니다(표준임).

관련 정보