Last active
April 14, 2023 06:13
-
-
Save alexklapheke/0205ae634f5834bf7d97 to your computer and use it in GitHub Desktop.
Some useful commands for syntax & semantics
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% % | |
% Some useful commands for syntax & semantics % | |
% Author: Alex Klapheke (github/klapheke) % | |
% Updated: 26 Feb 2017 % | |
% Licence: GPL v2 % | |
% Installation: % | |
% 1. Place in ~/texmf/tex/latex/ % | |
% 2. $ texhash % | |
% % | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% Rule of thumb for formulae: | |
% Variables should be set in italics | |
% Constants, functions, and syncategoremata should be set in roman | |
% e.g., λ, ι, vP, Merge α, lift/lower | |
\NeedsTeXFormat{LaTeX2e} | |
\ProvidesPackage{synsemtools}[2017/02/26 Misc.\ syntax/semantics tools] | |
\RequirePackage{calc} | |
\RequirePackage{tikz} | |
\RequirePackage[leqno,fleqn]{amsmath} | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% Citations % | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% Typical, LI-style citations | |
\RequirePackage[round,sort&compress]{natbib} | |
\bibpunct[:]{(}{)}{;}{}{}{,} | |
% Commonly-used abbreviations, as proper citation commands. | |
% Abbreviations of book titles should be italicized. | |
% Can also define easy-to-type commands for these, e.g., | |
% \newcommand*\ptq{\citetalias{montague1973proper}} | |
\defcitealias{wittgenstein1953philosophical}{\textit{PI}} % Wittgenstein (1953) Philosophical Investigations, 2nd ed. | |
\defcitealias{chomsky1957syntactic}{\textit{SS}} % Chomsky (1957) Syntactic Structures | |
\defcitealias{chomsky1965aspects}{\textit{Aspects}} % Chomsky (1965) Aspects of the Theory of Syntax | |
\defcitealias{chomsky1968sound}{\textit{SPE}} % Chomsky & Halle (1968) The Sound Pattern of English | |
\defcitealias{lewis1970general}{GS} % Lewis (1970) General Semantics | |
\defcitealias{montague1973the}{PTQ} % Montague (1973) The proper treatment of quantification in ordinary English | |
\defcitealias{karttunen1979conventional}{K\&P} % Kartunnen & Peters (1979) Conventional Implicature | |
\defcitealias{heim1998semantics}{H\&K} % Heim & Kratzer (1998) Semantics in Generative Grammar | |
\defcitealias{kratzer2002indeterminate}{K\&S} % Kratzer & Shimoyama (2002) Indeterminate Pronouns: The View from Japanese | |
\defcitealias{hauser2002faculty}{HCF} % Hauser, Chomsky, & Fitch (2002) The Faculty of Language | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% Numbered examples % | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% Various linguistics tools, including example numbering. | |
% Modified to exclude ^ and _ shortcuts (which are not | |
% worth the havoc they wreak on other packages; see | |
% <http://www.essex.ac.uk/linguistics/external/clmt/latex4ling/examples/>) | |
\RequirePackage{gb4e+} | |
\let\eachwordone=\it % Italicize original in glosses | |
\let\c@exx\c@equation % Use equation numbering for gb4e examples, for consistency | |
% Simple example references to gb4e: | |
% \cref{ex:colorlessgreen} -> example (1) | |
% Should be called AFTER hyperref! | |
\RequirePackage[sort&compress]{cleveref} | |
% tell cleveref to use the word "example" to refer to examples, | |
% and to put example numbers in brackets | |
\crefname{xnumi}{example}{examples} | |
\creflabelformat{xnumi}{(#2#1#3)} | |
\crefname{xnumii}{example}{examples} | |
\creflabelformat{xnumii}{(#2#1#3)} | |
\crefname{xnumiii}{example}{examples} | |
\creflabelformat{xnumiii}{(#2#1#3)} | |
\crefname{xnumiv}{example}{examples} | |
\creflabelformat{xnumiv}{(#2#1#3)} | |
% For "stacks" of options in braces. Takes optional alignment argument: | |
% John \optstack[l]{knows \\ ? cares \\ * doubts} who came to the party. | |
% ⎧ knows ⎫ | |
% => John ⎨ ? cares ⎬ who came to the party. | |
% ⎩ * doubts ⎭ | |
\newcommand*\optstack[2][l]{\ensuremath{\left\{\begin{tabular}{@{}#1@{}}#2\end{tabular}\right\}}} | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% General Definitions % | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% Superscript on the left <http://tex.stackexchange.com/a/52080> | |
\def\presuper#1#2{\mathop{}\mathopen{\vphantom{#2}}^{#1}\kern-\scriptspace#2} | |
% Properly-spaced dot for lambda-like expressions; a bare period | |
% character will have the (very tight) spacing of a decimal point. | |
\def\l@mbdadot[#1]{#1\mathrel{.}} | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% Math/Logic % | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% miscellaneous symbols: | |
\let\emptyset\varnothing % the latter is much nicer (requires amssymb) | |
\newcommand*\zfc{\textsf{ZFC}} | |
% nicer syntactic inference <http://tex.stackexchange.com/a/222510> | |
\DeclareRobustCommand\turnstile{\bigspace{\mathrel{|}\joinrel\mkern-.5mu\mathrel{-}}} | |
% set theory | |
% \DeclareMathOperator{\powerset}{\mathcal{P}} % \wp is dispreferred for this | |
% lattice theory | |
\DeclareMathOperator{\filter}{\uparrow} % alternative: \newcommand\filter[1]{\presuper{f}{#1}} | |
\DeclareMathOperator{\ideal}{\downarrow} % alternative: \newcommand\ideal[1]{\presuper{i}{#1}} | |
% define := symbol in math mode <http://tex.stackexchange.com/a/4881> | |
\newcommand*\defeq{\mathrel{\vcenter{\baselineskip0.5ex \lineskiplimit0pt | |
\hbox{\scriptsize.}\hbox{\scriptsize.}}}=} | |
% For logical operators that connect formulas with relations like '=' | |
% in them, that should have more space than the relations. Example: | |
% \forall x,y \lbrack x=y \bigor x\ne y \rbrack | |
\newcommand*\bigmathskip{\mskip 6mu plus 5mu\relax} | |
\newcommand*\bigspace[1]{\bigmathskip#1\bigmathskip} | |
\newcommand*\bigand{\bigspace{\land}} | |
\newcommand*\bigor{\bigspace{\lor}} | |
\newcommand*\bigarrow{\bigspace{\rightarrow}} | |
\newcommand*\bigArrow{\bigspace{\Rightarrow}} | |
% Hilbert's epsilon operator or Frege's extension operator | |
\newcommand*\ep{{\mathord{\mathrm{\epsilon}}}} | |
% linear logic operators | |
\newcommand*\lintens{\mathbin{\otimes}} | |
\newcommand*\linplus{\mathbin{\oplus}} | |
\newcommand*\linwith{\mathbin{\&}} | |
\newcommand*\linpar{\mathbin{\rotatebox[origin=c]{180}{\&}}} % exists at U+214B but most fonts don't have it | |
\newcommand*\linimpl{\mathbin{\multimap}} | |
\DeclareMathOperator{\ofcourse}{!} | |
\DeclareMathOperator{\whynot}{?} | |
% combinators in the SKI-calculus | |
\DeclareMathOperator{\CombI}{I} | |
\DeclareMathOperator{\CombK}{K} | |
\DeclareMathOperator{\CombS}{S} | |
% Polish notation | |
\DeclareMathOperator{\Pnot}{N} % negation | |
\DeclareMathOperator{\Pand}{K} % conjunction | |
\DeclareMathOperator{\Por}{A} % disjunction | |
\DeclareMathOperator{\Pimpl}{C} % implication | |
\DeclareMathOperator{\Pbiimpl}{E} % biimplication | |
\DeclareMathOperator{\Pnand}{D} % sheffer stroke | |
\DeclareMathOperator{\Ptrue}{V} % tautology | |
\DeclareMathOperator{\Pfalse}{O} % contradiction | |
\DeclareMathOperator{\Pexists}{\Sigma} % existential quantifier | |
\DeclareMathOperator{\Pforall}{\Pi} % universal quantifier | |
\DeclareMathOperator{\Pdiamond}{M} % modal possibility | |
\DeclareMathOperator{\Pbox}{L} % modal necessity | |
% Big-O notation | |
\newcommand*{\BigO}[1]{\operatorname{O}(#1)} | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% Semantics % | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% easy nestable angle brackets: $P_\<e,\<e,t>>$ <https://tex.stackexchange.com/a/214973> | |
\def\<#1>{\ensuremath{\bgroup\left\langle\ignorespaces#1\unskip\right\rangle\egroup}} | |
% double brackets for denotations ("Oxford brackets") ⟦...⟧ | |
\newcommand*\den[1]{\ensuremath{\big\llbracket\textnormal{\strut #1}\big\rrbracket}} | |
% lambda/iota functions with optional dot: | |
% \lam x -> λx | |
% \lam[x]x^2 -> λx . x² | |
\newcommand*\lam{\mathord{\mathrm{\lambda}}\@ifnextchar[{\l@mbdadot}{}} | |
\newcommand*\io{\mathord{\mathrm{\iota}}\@ifnextchar[{\l@mbdadot}{}} | |
% type-shifting operations | |
\DeclareMathOperator{\lift}{lift} | |
\DeclareMathOperator{\lowr}{lower} % \lower is already defined | |
\DeclareMathOperator{\ident}{ident} | |
\DeclareMathOperator{\iot}{iota} % \iota is already defined | |
\DeclareMathOperator{\BE}{BE} % Partee's (1986) BE operator | |
\newcommand*\nom[1]{\presuper{\cap}{#1}} % properties -> kinds (Chierchia 1984) | |
\newcommand*\pred[1]{\presuper{\cup}{#1}} % kinds -> properties (Chierchia 1984) | |
\newcommand*\up[1]{\presuper{\wedge}{#1}} % abstraction over worlds | |
\newcommand*\down[1]{\presuper{\vee}{#1}} % application of implicit world argument | |
% entailment, presupposition, & implicature | |
\newcommand*\entails{\mathrel{\Rightarrow}} | |
\newcommand*\presupposes{\mathrel{\gg}} | |
\newcommand*\implicates{\mathrel{\leadsto}} | |
% Rooth's (1992) focus operator | |
\DeclareMathOperator{\focus}{\sim} | |
% exhaustivity operators and alternative sets | |
\newcommand*\ALT{\textsc{alt}} | |
\DeclareMathOperator{\exh}{Exh} | |
\DeclareMathOperator{\oalt}{O_\ALT} | |
% assertion and presupposition parts (Chierchia 2013) | |
\newcommand*\assert[1]{\presuper{\mathrm{\alpha}}{#1}} % assertion part of a partial proposition | |
\newcommand*\presup[1]{\presuper{\mathrm{\pi}}{#1}} % presupposition part of a partial proposition | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% Number & Plurality % | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% Atomicity | |
\DeclareMathOperator{\at}{AT} | |
% From Link (1983). Example: | |
% \propersum[x]P(x)\defeq\io[x]\ppl{P}(x)\land\forall y\left\lbrack\pl{P}(y)\to y\atomicpart x\right\rbrack | |
% Predicate modifiers | |
\newcommand*\pl[1]{\presuper{\ast}{#1}} % plural predicate (*P) | |
\newcommand*\ppl[1]{\presuper{\circledast}{#1}} % proper plural predicate (⊛P) | |
\newcommand*\massterm[1]{\presuper{m}{#1}} % mass term correspondent (ᵐP) | |
% Relations | |
\newcommand*\atomicpart{\mathrel{\Pi}} % atomic part (Π) | |
\newcommand*\matpart{\mathrel{\top}} % material part (⊤) | |
\newcommand*\makesup{\mathrel{\vartriangleright}} % constitues/makes up (▷) | |
% Maximizers (with dot, as in Landman (1989)). Without a dot, use a thin space: | |
% \atomicsum[x] P(x) -> σx . Px | |
% \atomicsum x\,P(x) -> σx Px | |
\newcommand*\atomicsum{\mathord{\mathrm{\sigma}}\@ifnextchar[{\l@mbdadot}{}} % sum (σxPx) | |
\newcommand*\propersum{\mathord{\mathrm{\sigma}^\ast}\@ifnextchar[{\l@mbdadot}{}} % proper sum (σ*xPx) | |
\newcommand*\matfusion{\mathord{\mathrm{\mu}}\@ifnextchar[{\l@mbdadot}{}} % material fusion (μxPx) | |
% From Schwarzschild (2009). Defined at U+229C but most fonts don't have it. | |
% This definition ensures the operator will have the same dimensions and | |
% spacing as a normal equals sign. These values should work with most math fonts. | |
\newlength{\eqwd}\setlength{\eqwd}{\widthof{$=$}} | |
\newcommand*\sharepartic{\mathrel{\ooalign{$=$\cr\hidewidth\lower0.05ex\hbox{% | |
\tikz{\draw[outer sep=0pt,inner sep=0pt] (0,0) circle (0.44\eqwd);}}\hidewidth}}} | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% Temporal & Modal Logic % | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% accessibility relation | |
\newcommand*\acc{\mathrel{\mathrm{R}}} | |
% modal quantifiers | |
\DeclareMathOperator{\nec}{\Box} | |
\DeclareMathOperator{\pos}{\Diamond} | |
% from Anscombe (1964) | |
\newcommand*\andthen{\mkern6mu\mathcal{T}\mkern1mu} | |
% from Parsons (1990) | |
\DeclareMathOperator{\cul}{Cul} | |
\DeclareMathOperator{\hold}{Hold} | |
% tau operator in event semantics | |
\DeclareMathOperator{\timeof}{\mathrm{\tau}} | |
% temporal logic operators | |
\DeclareMathOperator{\TemP}{P} % past | |
\DeclareMathOperator{\TemF}{F} % future | |
\DeclareMathOperator{\TemH}{H} % has been | |
\DeclareMathOperator{\TemG}{G} % going to be | |
\DeclareMathOperator{\TemM}{M} % temporal possibility | |
\DeclareMathOperator{\TemN}{N} % temporal necessity | |
\DeclareMathOperator{\TemS}{S} % since | |
\DeclareMathOperator{\TemU}{U} % until | |
% Timelines (kind of crappy): | |
% \begin{timeline}{4} | |
% \timelineevent[event 1]{-1}{0} | |
% \timelineevent[event 2]{2}{3} | |
% \end{timeline} | |
\newenvironment{timeline}[1]{% | |
\begin{tikzpicture}[thick]% | |
\draw[->]% | |
(-#1-1,0) -- (#1+1,0) node[below right] {t};% | |
\foreach \x in {-#1,...,#1}% | |
\draw (\x,0) -- ++(0,-5pt) node[below] {\footnotesize$t_{\x}$};% | |
}{\end{tikzpicture}} | |
\newcommand\timelineevent[3][]{ | |
\draw[fill=lightgray] (#2,0) rectangle node[above] {\strut #1} (#3,0.25);% | |
} | |
% Bhatt & Pancheva (2005)-style viewpoint aspect diagrams: | |
% Simple \viewpoint{-1 }{ 1 }{-1 }{ 1 } | |
% Perfective \viewpoint{-1.5}{ 1.5}{-1 }{ 1 } | |
% Progressive \viewpoint{-1 }{ 1 }{-1.5}{ 1.5} | |
% Right edge \viewpoint{ 0 }{ 1.5}{-1.5}{ 1.5} | |
% Left edge \viewpoint{-1.5}{ 0 }{-1.5}{ 1.5} | |
% End \viewpoint{ 0 }{ 1.5}{-1.5}{ 1 } | |
% Beginning \viewpoint{-1.5}{ 0 }{-1 }{ 1.5} | |
% Anterior \viewpoint{ 0.5}{ 1.5}{-1.5}{-0.5} | |
% Posterior \viewpoint{-1.5}{-0.5}{ 0.5}{ 1.5} | |
\newcommand\viewpoint[4]{\mbox{% | |
\vspace{0pt}\begin{tikzpicture}[thick,baseline]% | |
\draw[->] (-2,0) -- (2,0) node[below right] {};% | |
\draw[fill=lightgray] (#1,0) rectangle node[below=0.5ex] {\small R} (#2,-0.25);% | |
\draw[fill=darkgray] (#3,0) rectangle node[above=0.5ex] {\small E} (#4, 0.25);% | |
\end{tikzpicture}% | |
}} | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% Inquisitive Semantics % | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% \begin{tikzpicture}[>=latex,scale=.8] | |
% \tikzstyle{index gray}=[inner sep=2pt, black, circle, fill=lightgray] | |
% \tikzstyle{opaque}=[fill=gray,fill opacity=.1] | |
% \tikzstyle{counter}=[densely dashed] | |
% % Possibilities | |
% \draw[opaque,counter,rounded corners] (-1.7,1.7) rectangle (-.2, .2); | |
% \draw[opaque,rotate=180,rounded corners] | |
% (-1.7,0) -- (-1.7,1.7) -- (1.7, 1.7) -- (1.7,.7) | |
% -- (-.7,-1.7) -- (-1.7,-1.7) -- (-1.7,0); | |
% % Indices | |
% \draw (-1,1) node[index gray] (yy) {$11$}; | |
% \draw (1,1) node[index gray] (yn) {$10$}; | |
% \draw (-1,-1) node[index gray] (ny) {$01$}; | |
% \draw (1,-1) node[index gray] (nn) {$00$}; | |
% \end{tikzpicture} | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% Syntax % | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% X⁰ (for use in text mode; requires fontspec package and compatible font) | |
\newcommand*\head{{\addfontfeature{VerticalPosition=Superior}0}} | |
% Left/right periphery markers that span lines (for glosses): | |
% {\gll ... \rperiph{VP} ... \\ | |
% ... {} ... \\ | |
% \trans `Gloss'} | |
\newcommand*\lperiph[1]{\smash{\raisebox{-0.5\baselineskip}{\rm$\biggl[_\textsubscript{#1}$}}} | |
\newcommand*\rperiph[1]{\smash{\raisebox{-0.5\baselineskip}{\rm$\biggr]_\textsubscript{#1}$}}} | |
% Subscript indexing: | |
% Bill\coindex{i} said John\coindex{k} saw himself\coindex{*i/k}. | |
% These settings should work with most fonts | |
\newcommand*\coindex[1]{% | |
{\footnotesize\ensuremath{{}_{\textnormal{\c@index#1\relax\mathstrut}}}}% | |
} | |
\def\c@index#1{\ignorespaces% | |
\ifx#1\relax% | |
\let\next\relax% | |
\else\ifx#1*\expandafter{$*$}% | |
\else\ifx#1?\expandafter{\scalebox{0.75}{?}}% | |
\else\ifx#1/\expandafter{\kern 0.5pt/\kern 0.3pt}% looser kerning for ease of reading | |
\else\expandafter{#1}% | |
\fi\fi\fi | |
\let\next\c@index% | |
\fi\next% | |
} | |
% forest is much more extensible and better laid-out than [tikz-]qtree | |
% these settings try to look like qtree defaults | |
\RequirePackage{forest} | |
\forestset{tree/.style={for tree={% | |
align=center, | |
parent anchor=south, | |
child anchor=north, | |
calign=fixed edge angles, | |
calign primary angle=-67.5, | |
calign secondary angle=67.5 | |
}}} | |
% movement: \movel{startnode}{endnode}{1} | |
\newcommand\movel[3]{\draw[thin,->,out=180,in=270,looseness=#3,shorten >=1pt,shorten <=1pt] (#1.west) to (#2.south);} % leftward movement | |
\newcommand\mover[3]{\draw[thin,->,out=0, in=270,looseness=#3,shorten >=1pt,shorten <=1pt] (#1.east) to (#2.south);} % rightward movement | |
% Finite-State Automata: | |
% \begin{tikzpicture}[>=stealth',shorten >=1pt,auto,node distance=2cm] | |
% \node[initial,state] (1) {$1$}; | |
% \node[state,accepting] (2) [right of=1] {$2$}; | |
% \path[->] (1) edge [bend right] node[below] {a} (2); | |
% \path[->] (2) edge [bend right] node[below] {b} (1); | |
% \path[->] (1) edge [loop below] node[below] {b} (1); | |
% \path[->] (2) edge [loop below] node[below] {a} (2); | |
% \end{tikzpicture} | |
\usetikzlibrary{positioning,arrows,automata} | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% Phonetics/Phonology % | |
%-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-% | |
% This section assumes the use of XeTeX, which allows full UTF-8 | |
% input, and lets you use a real IPA font like Gentium or Junicode. | |
% Unless you need crazy things like "open o-e ligature", this is | |
% probably preferable to tipa. See <https://tex.stackexchange.com/a/75> | |
\RequirePackage{ifxetex} | |
\ifxetex | |
% Modifiers (WARNING: Unicode combining marks. Edit with caution) | |
\newcommand*\tiebar[2]{#1͡#2} % double articulation | |
\newcommand*\voiced[1]{#1̬} | |
\newcommand*\voiceless[1]{#1̥} | |
\newcommand*\syll[1]{#1̩} | |
\newcommand*\nasal[1]{#1̃} | |
\newcommand*\retro[1]{#1̣} | |
\newcommand*\dent[1]{#1̪} | |
% Various apostrophe-like things | |
\newcommand*\stress{ˈ} | |
\newcommand*\ej{ʼ} % ejective | |
\newcommand*\ayn{ʿ} | |
\newcommand*\hamza{ʾ} | |
\newcommand*\okina{ʻ} % proper setting: \newcommand*\hawaii{Hawai\okina{}i} | |
\fi | |
% Phonological rules: | |
% \phonc{z}{s}{\placehold | |
% \begin{phonfeat} | |
% \mbox{–syl} \\ | |
% \mbox{-voi} | |
% \end{phonfeat} | |
% } | |
\RequirePackage{phonrule} | |
% Autosegmental tiers: <http://tex.stackexchange.com/a/240372> | |
% \begin{forest}syll | |
% [$\sigma$ [X,tier=tim [$\alpha$ː,name=a ]] | |
% [X,tier=tim,name=x ] | |
% ] | |
% \draw (x.south) -- (a.north); | |
\forestset{syll/.style={for tree={% | |
align=center, | |
parent anchor=south, | |
child anchor=north, | |
calign=center, | |
inner sep=0pt, | |
where n children=0{tier=seg}{} | |
}}} | |
% OT tableaux (from <http://sanders.phonologist.org/OTtablx/>) | |
% Warning: breaks some font packages like newtxtext | |
% \usepackage[medium,open,noipa]{OTtablx} | |
% % Alternative for OT tableaux (calls amssymb which messes with some font packages): | |
% % \begin{tableau}{c:c|c} | |
% % \inp{stap} \const{*Complex} \const{Anchor-IO} \const{Contiguity-IO} | |
% % \cand{stap} \vio{*!} \vio{} \vio{} | |
% % \cand[\Optimal]{sap} \vio{} \vio{} \vio{*} | |
% % \cand{tap} \vio{} \vio{*!} \vio{} | |
% % \end{tableau} | |
% \usepackage[notipa,shadedcells]{ot-tableau} | |
% \renewcommand\OptimalMarker{☞} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment