diff options
author | Norbert Preining <norbert@preining.info> | 2022-02-18 03:01:44 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-02-18 03:01:44 +0000 |
commit | 41041c6bdcedcc33698491c2caec4cd725a4fe97 (patch) | |
tree | 59aa0f9e0235ceee2474351b4b1a90a1eace6619 /macros/xetex/latex/langsci/langsci-forest-setup.sty | |
parent | bd0e05b5b4dba5b38512acb2e7104f180fdb97e6 (diff) |
CTAN sync 202202180301
Diffstat (limited to 'macros/xetex/latex/langsci/langsci-forest-setup.sty')
-rw-r--r-- | macros/xetex/latex/langsci/langsci-forest-setup.sty | 396 |
1 files changed, 0 insertions, 396 deletions
diff --git a/macros/xetex/latex/langsci/langsci-forest-setup.sty b/macros/xetex/latex/langsci/langsci-forest-setup.sty deleted file mode 100644 index 07af8fc910..0000000000 --- a/macros/xetex/latex/langsci/langsci-forest-setup.sty +++ /dev/null @@ -1,396 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% 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. This version is for 2.0. -%% 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 - -% Do we need this for 2017? -% We seem to be better off without it 31.10.2017 -%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} - -% dangerous, use at own risk -%\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}} - - -% externalization works with package memoize -\usepackage[linguistics]{forest} -%\usepackage{morewrites} - - - -% specification for all trees, "default preamble" appends to existing specification. -% The version with apostrophe replaces it. -\forestset{default preamble'={ - for tree={align=center,parent anchor=south, child anchor=north,anchor=north,base=bottom}, -% anchor=north was introduced to get alignments of AVMs right. -% used to be anchor=north but this fails on trees in \ea \z examples, St. Mü. 02.05.2020 or may be not -% -% This would align trees to the baseline. We do not want this for TAG -% where several trees have to be aligned with respect to their center. -% before drawing tree={ -% sort by=y, -% for min={tree}{baseline} -% } - }} - - -\forestset{ - declare dimen={child anchor yshift}{0pt}, - adjust childrens child anchors/.style={ - if n children>=2{ - before packing={ - tempdima/.max={max_y}{children}, - for children={ - child anchor yshift=tempdima()-max_y() - }, - } - }{} - }, - default preamble={ - for tree={ - edge path'={(!u.parent anchor)--([yshift=\forestoption{child anchor yshift}].child anchor)}, - adjust childrens child anchors - } - }, -} - - - -% 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={ - if={strequal("#1","")}{}{ - append={[#1,no edge,inner xsep=0,inner ysep=0,outer ysep=0, - tier=gloss, % does not work for TAG trees since the words are not aligned at the baseline - l=\baselineskip + 0.2ex, - ]} - } - } -} - -\forestset{ - with unaligned translation/.style={ - l sep=0,inner xsep=0, - append unaligned translation/.expanded/.wrap pgfmath arg={\gettranslation{##1}}{content}, - content/.expanded/.wrap pgfmath arg={\gettext{##1}}{content}, - }, - append unaligned translation/.style={ - if={strequal("#1","")}{}{ - append={[#1,no edge,inner xsep=0,inner ysep=0,outer ysep=0, - %tier=gloss, % does not work for TAG trees since the words are not aligned at the baseline - l=\baselineskip + 0.2ex, - ]} - } - } -} - - -\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} - -% copy of the above for TAG -\forestset{ - with translation TAG/.style={ - l sep=0,inner xsep=0, - append translation TAG/.expanded/.wrap pgfmath arg={\gettranslation{##1}}{content}, - content/.expanded/.wrap pgfmath arg={\gettext{##1}}{content}, - }, - append translation TAG/.style={ - if={strequal("#1","")}{}{ - append={[#1,no edge,inner xsep=0,inner ysep=0,outer ysep=0, - %tier=gloss, % does not work for TAG trees since the words are not aligned at the baseline - l=\baselineskip + 0.2ex, - ]} - } - } -} - - -% 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{ -sm edges/.style={for tree={parent anchor=south, child anchor=north,base=top}, % changed base=bottom - % to top since we have NP and AVM nodes and the NP has to start - % right away at the same hight as the AVM St. Mü. 18.10.2017 - where n children=0{tier=word,delay=with translation}{} %,delay=with translation - }, -sm edges without translation/.style={for tree={parent anchor=south, child anchor=north,base=bottom}, - 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ć -% -% modified to cope with multiple occurances of the same word (the, the1, the2) -% - wg/.style={ - for tree={ - no edge, - draw, - outer ysep=1pt, - }, - delay={ - copy label, - for tree={nameN/.option=content}, - }, - for tree={content format={\strut\forestoption{content}}}, - where n children={0}{ - tier=word, - }{}, - }, - copy label/.style={ - for children={ - if content={}{ - % content/.pgfmath={content("!u")}, - content/.option=!u.content, % faster - calign with current, - edge={draw,{-Triangle[open,reversed]}}, - copy label, - % !u.content/.pgfmath={content}, - !u.content/.option=content, % faster - !u.content+=', - }{ - copy label, - } - } - }, - % 1. This is not effective if there's many clashes. - % 2. Register tempcounta must be free to use. - nameN/.style={ - if nodewalk valid={name=#1}{ - tempcounta=2, - @nameN=#1, - }{ - name=#1, - }, - }, - @nameN/.style={ - while nodewalk valid={name/.process=Rw1{tempcounta}{#1##1}}{ - tempcounta+=1, - }, - name/.process=Rw1{tempcounta}{#1##1}, - }, -% -% -% 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 TAG}{}, -% 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}, -% -% -% 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}}}{}} -%% }} - - -% forest 2.0 -\forestset{ - empty nodes/.style={ - delay={where content={}{shape=coordinate,for siblings={anchor=north}}{}} - } - } - -\forestset{ - % Easy extra edges - edge to'/.style 2 args={ - tikz+={\path[#2](#1.parent anchor)--(.child anchor);} - }, - edge to/.style={ - edge to'/.expanded={\unexpanded{#1}}{\forestoption{edge}}, - }, - edge from'/.style 2 args={ - tikz+={\path[#2](.parent anchor)--(#1.child anchor);} - }, - edge from/.style={ - edge from'/.process=_O{#1}{#1.edge}, - }, - % Identify two (adjacent, vertically aligned) nodes - forget@node@boundary/.code={% - \forestolet{positive@edge@#1}\relax - \forestolet{negative@edge@#1}\relax - }, - identify/.style={ - phantom, - temptoksa/.option=#1.name, - before typesetting nodes/.process=Rw1{temptoksa}{ - content/.option=##1.content, - content format/.option=##1.content format, - node format/.option=##1.node format, - }, - for parent/.process=Ow1{n}{ - after packing node={ - for ##1={ - ignore,ignore edge,forget@node@boundary/.option=grow, - }, - }, - }, - for nodewalk/.process=Rw1Ow1{temptoksa}{name=##1}{!u.name}{edge to={##1}}, - }, - % Uniformly spread any sequence of nodes - spread/.style n args=4{ - % #1 = coordinate (x,y,s,l) - % #2 = nodewalk to spread - % #3 = relative node name of the node with the final coordinate - % #4 = final coordinate shift - for nodewalk={ - tempcounta'=-1, - #2, - tempdima/.pgfmath={(#1("#3")+#4-#1(""))/tempcounta()} - }{tempcounta'+=1}, - tempdimb'=0pt, - for nodewalk={#2}{ - #1'+/.register=tempdimb, - tempdimb'+/.register=tempdima, - }, - }, -} - -% The old type hierarchy style -\forestset{ -typehierarchy/.style={for tree={parent anchor=south, child -% old version: -% anchor=north,align=center,base=top,font=\itshape,fit=rectangle}}, -% to get parallel lines: - anchor=north,align=center,base=top,font=\itshape,calign=fixed angles}}, -% if there are instances as leaves in the hiarchy -instance/.style={edge=dotted} -} - -% Type hierarchy (Saso 2020) -\forestset{ - type hierarchy/.style={ - for tree={ - anchor=base, -%anchor=north, - content format={\noexpand\type{\unexpanded{#1}\forestoption{content}}}, - }, - }, - partition/.style={ - content format={\noexpand\textsc{\forestoption{content}}}, - draw, - }, - instance/.style={ - gray,edge={gray,dashed} - }, - % if all leaves in the hierarchy are instances, we can declare this as follows: - % nodes which do not have children (n children=0) are drawn in gray and edges leading to them are dashed - instances/.style={ - for tree={ - s sep=0, - if n children=0{ - gray, - edge={dashed,gray}, - }{}, - }}, -} - -% AVM helper -\forestset{ - avm/.style={ - content format={% - \noexpand\avmoptions{#1}% - \noexpand\begin{avm}% - \forestoption{content}% - \noexpand\end{avm}% - }, - }, -} - - |