summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/xelatex/langsci/langsci-forest-setup.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/langsci/langsci-forest-setup.sty')
-rw-r--r--Master/texmf-dist/tex/xelatex/langsci/langsci-forest-setup.sty186
1 files changed, 186 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/xelatex/langsci/langsci-forest-setup.sty b/Master/texmf-dist/tex/xelatex/langsci/langsci-forest-setup.sty
new file mode 100644
index 00000000000..dc7c887bcbd
--- /dev/null
+++ b/Master/texmf-dist/tex/xelatex/langsci/langsci-forest-setup.sty
@@ -0,0 +1,186 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% File: langsci-forest-setup.sty
+%% Author: Language Science Press (http://langsci-press.org)
+%% Date: 2016-01-16 16:47:43 UTC
+%% Purpose: This file contains optional styles and settings for the
+%% forest package.
+%% Language: LaTeX
+%% Licence:
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+% texlive 2015 is broken (in comparison to texlive 2013)
+% a workaround is to use a different pgf driver.
+% See email from Akira Kakuto to Stefan Müller 15.01.2016
+
+%deceive the driver
+\def\pdftexversion{140}
+%use the old driver for dvipdfm
+\def\pgfsysdriver{pgfsys-dvipdfm.def}
+
+% http://en.wikibooks.org/wiki/LaTeX/Linguistics#Syntactic_trees
+\usepackage{tikz-dependency}
+
+\usetikzlibrary{tikzmark} % saves positions in tikz pictures, allows to connect arbitrary text
+
+
+% http://tex.stackexchange.com/questions/256280/drawing-complex-dependency-diagrams-with-tikz-forest
+\usetikzlibrary{arrows.meta}
+
+\tikzset{deparrow/.style={-Latex}}%,blue}}
+
+
+\usepackage{forest}
+% does not work
+%\usepackage[external]{forest}\tikzexternalize\usepackage{morewrites}
+
+
+% specification for all trees
+\forestset{.style={for tree={parent anchor=south, child anchor=north,align=center,base=top}}}
+
+
+% http://www.texample.net/tikz/examples/borrowers-and-lenders/
+\usetikzlibrary{arrows} %,positioning}
+\tikzset{
+ %Define standard arrow tip
+ >=stealth'}
+
+
+
+%% \forestset{
+%% sn edges/.style={for tree={parent anchor=south, child anchor=north,align=center,base=bottom,where n children=0{tier=word}{}}},
+%% background tree/.style={for tree={text opacity=0.2,draw opacity=0.2,edge={draw opacity=0.2}}}
+%% }
+
+
+
+% The following code fixes the size of triangles for examples with translations. The specification
+% ",delay=with translation" at the leaves is important to make this work.
+% http://tex.stackexchange.com/questions/167978/smaller-roofs-for-forest/205311#205311
+\forestset{
+ with translation/.style={
+ l sep=0,inner xsep=0,
+ append translation/.expanded/.wrap pgfmath arg={\gettranslation{##1}}{content},
+ content/.expanded/.wrap pgfmath arg={\gettext{##1}}{content},
+ },
+ append translation/.style={append={[#1,no edge,l=0,inner xsep=0,inner ysep=0,outer ysep=0,before computing xy={l-=2pt}]}}
+}
+
+\def\gettext#1{\gettextA#1;;\endget}
+\def\gettextA#1;#2;{\removesep#1;}
+\def\gettranslation#1{\gettranslationA#1;;\endget}
+\def\gettranslationA#1;#2;{\removesep#2;}
+\def\removesep#1;#2\endget{#1}
+
+
+% a specific style that specifies the word tier: all nodes that do not have any children
+% to do: make this style default and change all other figures explicitely as is described here:
+% http://tex.stackexchange.com/questions/167983/getting-rid-of-a-default-where-specification
+\forestset{
+sn edges/.style={for tree={parent anchor=south, child anchor=north,align=center,base=top},
+ where n children=0{tier=word,delay=with translation}{} %,delay=with translation
+ },
+sn edges without translation/.style={for tree={parent anchor=south, child anchor=north,align=center,base=top},
+ where n children=0{tier=word}{}
+ },
+word tier/.style={where n children=0{tier=word}{}
+ },
+%
+% dependency grammar trees, projective trees only, I guess. St. Mü. 29.09.2014
+dg edges/.style={for tree={parent anchor=south, child anchor=north,align=center,base=bottom},
+ where n children=0{tier=word,edge=dotted,calign with current edge,delay=with translation}{}
+ },
+%
+% Adjunct edges as suggested by Engels, 1977
+% http://tex.stackexchange.com/questions/204770/defining-a-special-edge-style-for-connecting-nodes-in-forest/204819#204819
+dg adjunct/.style={edge path={\noexpand\path[\forestoption{edge}]
+(!u.parent anchor)--(.child anchor)-- +(0,#1)\forestoption{edge label};}},
+%
+dg adjunct/.default=6pt,
+%
+% for Tesniere-style translations
+dg transfer/.style={edge path={\noexpand\path[\forestoption{edge}, rounded corners=3pt]
+ % the line downwards
+ (!u.parent anchor)-- +($(0,-l)-(0,4pt)$)-- +($(12pt,-l)-(0,4pt)$)
+ % the horizontal line
+ ($(!p.north west)+(0,l)-(0,20pt)$)--($(.north east)+(0,l)-(0,20pt)$)\forestoption{edge label};},!p.edge'={}},
+% for Tesniere-style junctions
+dg junction/.style={no edge, tikz+={\draw (!p.east)--(!.west) (.east)--(!n.west);} },
+%
+%
+%
+% http://tex.stackexchange.com/questions/256280/drawing-complex-dependency-diagrams-with-tikz-forest/256300#256300
+% in the tree draw the highest nodes of the inheritance network. For lower nodes insert empty nodes
+% "[]". These will be filled by the same word and the numbers will be provided with bars according
+% to remoteness from the word level.
+%
+% So cool! Thanks Sašo Živanović
+%
+ wg/.style={
+ for tree={
+ no edge,
+ draw,
+ outer ysep=1pt,
+ },
+ copy label/.style={
+ for children={
+ if content={}{
+ content/.pgfmath={content("!u")},
+ calign with current,
+ edge={draw,{-Triangle[open,reversed]}},
+ copy label,
+ !u.content/.pgfmath={content},
+ !u.content+=',
+ }{
+ copy label,
+ }
+ }
+ },
+ delay={
+ copy label,
+ for tree={name/.pgfmath={content}},
+ },
+ for tree={content format={\strut\forestoption{content}}},
+ where n children={0}{
+ tier=word,
+ }{},
+ },
+%
+%
+% TAG
+% http://tex.stackexchange.com/questions/207459/getting-old-school-trees-with-forest
+% fit -> fit=band causes all nodes to have nothing below them
+tag/.style={for tree={parent anchor=south, child anchor=north,align=center,base=top,fit=rectangle},
+ where n children=0{delay=with translation}{},
+% the following breaks the alignments in sets
+ begin draw/.code={\begin{tikzpicture}[baseline=(current bounding box.center)]}
+},
+%
+% like the tag style, but without fit rectangle
+no word baseline/.style={for tree={parent anchor=south, child anchor=north,align=center,base=top},
+ where n children=0{delay=with translation}{}},
+%
+% a style that creates an arrow pointing to the substitution node from a tree top node encoded as daughter
+substitution/.style={edge={<-,dashed},l+=\baselineskip},
+%
+%
+%
+typehierarchy/.style={for tree={parent anchor=south, child
+ anchor=north,align=center,base=top,font=\itshape,fit=rectangle}},
+% if there are instances as leaves in the hiarchy
+instance/.style={edge=dotted},
+%
+% auxiliary nodes without node label
+empty nodes/.style={
+ delay={where content={}{shape=coordinate,for parent={for children={anchor=north}}}{}}}
+}
+
+
+
+
+% Manual page 52
+\forestset{
+nice empty nodes/.style={
+for tree={calign=fixed edge angles},
+delay={where content={}{shape=coordinate,for parent={for children={anchor=north}}}{}}
+}}