From 44af1a53bf28c922f525bd635c417b22f3b99b39 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 14 Jul 2017 22:14:58 +0000 Subject: forest (14jul17) git-svn-id: svn://tug.org/texlive/trunk@44797 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/forest/README | 2 +- Master/texmf-dist/doc/latex/forest/forest-doc.pdf | Bin 1212416 -> 1318520 bytes Master/texmf-dist/doc/latex/forest/forest-doc.tex | 19 +++++- Master/texmf-dist/doc/latex/forest/forest.pdf | Bin 498559 -> 498670 bytes .../texmf-dist/source/latex/forest/forest-libs.dtx | 11 +++- Master/texmf-dist/source/latex/forest/forest.dtx | 64 ++++++++++++--------- .../tex/latex/forest/forest-lib-linguistics.sty | 9 ++- Master/texmf-dist/tex/latex/forest/forest.sty | 58 +++++++++++-------- 8 files changed, 105 insertions(+), 58 deletions(-) diff --git a/Master/texmf-dist/doc/latex/forest/README b/Master/texmf-dist/doc/latex/forest/README index df173068679..75702e750ec 100644 --- a/Master/texmf-dist/doc/latex/forest/README +++ b/Master/texmf-dist/doc/latex/forest/README @@ -1,4 +1,4 @@ -LaTeX package: forest [2017/02/02 v2.1.4 Drawing (linguistic) trees] +LaTeX package: forest [2017/07/14 v2.1.5 Drawing (linguistic) trees] Copyright (c) 2012-2017 Saso Zivanovic (Sa\v{s}o \v{Z}ivanovi\'{c}) diff --git a/Master/texmf-dist/doc/latex/forest/forest-doc.pdf b/Master/texmf-dist/doc/latex/forest/forest-doc.pdf index 53f21b9e28b..e9651a7fa3c 100644 Binary files a/Master/texmf-dist/doc/latex/forest/forest-doc.pdf and b/Master/texmf-dist/doc/latex/forest/forest-doc.pdf differ diff --git a/Master/texmf-dist/doc/latex/forest/forest-doc.tex b/Master/texmf-dist/doc/latex/forest/forest-doc.tex index a4c73212316..53410b697ff 100644 --- a/Master/texmf-dist/doc/latex/forest/forest-doc.tex +++ b/Master/texmf-dist/doc/latex/forest/forest-doc.tex @@ -1838,7 +1838,7 @@ preamble or in the document body. Its effect is local to the current \TeX\ scope For example, the |linguistics| library defines c-command related nodewalks, changes the default parent--child edges to south--north (the main package default is border--border) and sets the -baseline to the root node. Thus, if you write |\usepackage[linguistics]{forest}| in your preamble, +baseline to the root\footnote{For details, see \S\ref{sec:library-linguistics}.} node. Thus, if you write |\usepackage[linguistics]{forest}| in your preamble, or use macro \cmdname{forestapplylibrarydefaults} like below, you get the following: \begin{forestexample}[tree bin=minipage,index={for step,c-commanded}] @@ -2016,6 +2016,15 @@ To customize the bracket parser, call \indexitem(none){bracket key>action character}|=|\meta{character} \end{syntax} +\begin{advise} +\item Careful when setting the \index{opening bracket} to |(|, %) + as an initial |(| %) + is understood as the delimiter of the optional \meta{config} argument of the + \index{environment>forest} environment or \index{macro>Forest} macro. The workaround is to either + provide an empty \meta{config} argument |()|, or put some whitespace (e.g.\ a newline) before the + tree specification. +\end{advise} + By redefining the following two keys, the bracket parser can be used outside \foRest;. \begin{syntax} \indexitem{bracket key>new node}|=|\meta{preamble}\meta{node specification}\meta{csname}. @@ -6409,6 +6418,14 @@ in |-all| styles. \subsubsection{v2.1} \begin{description} +\item[v2.1.5 (2017/07/14)] \mbox{} + Minor improvements: + \begin{itemize} + \item Smarter \index{baseline} defaults for the \reflibrary{linguistics} library. + \item Yield warning when the \index{baseline} is set to a node that is not drawn (e.g.\ a + \index{phantom} node). + \end{itemize} + \item[v2.1.4 (2017/02/02)] \mbox{} Performance: diff --git a/Master/texmf-dist/doc/latex/forest/forest.pdf b/Master/texmf-dist/doc/latex/forest/forest.pdf index d8d7cacbf42..34a1a3df390 100644 Binary files a/Master/texmf-dist/doc/latex/forest/forest.pdf and b/Master/texmf-dist/doc/latex/forest/forest.pdf differ diff --git a/Master/texmf-dist/source/latex/forest/forest-libs.dtx b/Master/texmf-dist/source/latex/forest/forest-libs.dtx index 90816b44b55..9873abfa54a 100644 --- a/Master/texmf-dist/source/latex/forest/forest-libs.dtx +++ b/Master/texmf-dist/source/latex/forest/forest-libs.dtx @@ -45,12 +45,15 @@ %\fi % \librarysection{linguistics} % \begin{macrocode} -\ProvidesForestLibrary{linguistics}[2017/01/27 v0.1.1] +\ProvidesForestLibrary{linguistics}[2017/07/14 v0.1.2] % \end{macrocode} % % Defaults: % \begin{macrocode} \forestset{ + linguistics@set@baseline/.style={ + if phantom={for next node=linguistics@set@baseline}{baseline} + }, libraries/linguistics/defaults/.style={ default preamble={ % \end{macrocode} @@ -59,8 +62,12 @@ sn edges, % \end{macrocode} % The root of the tree will be aligned with the text \dots\ or, more commonly, the example number. +% More precisely, we actually align the first (in linear order) non-phantom node. This covers the +% common case of side-by-side trees joined with a phantom root. % \begin{macrocode} - baseline, + before drawing tree={ + if nodewalk valid={name=forest@baseline@node}{}{linguistics@set@baseline}, + }, % \end{macrocode} % Enable (centered) multi-line nodes. % \begin{macrocode} diff --git a/Master/texmf-dist/source/latex/forest/forest.dtx b/Master/texmf-dist/source/latex/forest/forest.dtx index 6f0f6bfae1a..4b136615dbc 100644 --- a/Master/texmf-dist/source/latex/forest/forest.dtx +++ b/Master/texmf-dist/source/latex/forest/forest.dtx @@ -1,4 +1,4 @@ -% \CheckSum{16623} +% \CheckSum{16651} % \iffalse meta-comment % forest.dtx %% `forest' is a `pgf/tikz'-based package for drawing (linguistic) trees. @@ -83,7 +83,7 @@ % % \section{Identification} % \begin{macrocode} -\ProvidesPackage{forest}[2017/02/02 v2.1.4 Drawing (linguistic) trees] +\ProvidesPackage{forest}[2017/07/14 v2.1.5 Drawing (linguistic) trees] \RequirePackage{tikz}[2013/12/13] \usetikzlibrary{shapes} @@ -4079,7 +4079,7 @@ \pgfkeyssetvalue{#1'/option@name}{#3}% \forest@copycommandkey{#1+}{#1}% \pgfkeysalso{#1-/.code={% - \forest@fornode{register}{% + \forest@fornode{}{% \forest@node@removekeysfromkeylist{##1}{#3}% }}}% \pgfkeyssetvalue{#1-/option@name}{#3}% @@ -5178,7 +5178,7 @@ #4% \let\forest@temp@pgfmathpostparse\pgfmathpostparse \let\pgfmathpostparse\forest@aggregate@pgfmathpostparse - \forestmath@convert@to\forestmathtype@dimen{\forestmathresult} + \forestmath@convert@to\forestmathtype@dimen{\forestmathresult}% \pgfmathqparse{\forestmathresult}% \let\pgfmathpostparse\forest@temp@pgfmathpostparse \forestrlet{aggregate result}\pgfmathresult @@ -5359,7 +5359,7 @@ \ifx\forest@nodewalk@config@oninvalid\forest@nodewalk@oninvalid@inherited@text \edef\forest@nodewalk@config@oninvalid{\forest@nodewalk@oninvalid}% \fi - \edef\forest@marshal{% + \edef\forest@nw@marshal{% \noexpand\pgfqkeys{/forest/nodewalk}{\unexpanded{#1}}% \csname forest@nodewalk@config@everystep@\forest@nodewalk@config@everystep@method @after\endcsname \csname forest@nodewalk@config@history@\forest@nodewalk@config@history@method @after\endcsname @@ -5368,8 +5368,10 @@ \csname forest@nodewalk@config@everystep@\forest@nodewalk@config@everystep@method @before\endcsname{#2}% \csname forest@nodewalk@config@history@\forest@nodewalk@config@history@method @before\endcsname \edef\forest@nodewalk@oninvalid{\forest@nodewalk@config@oninvalid}% - \forest@nodewalk@fakefalse - \forest@marshal + \forest@saveandrestoreifcs{forest@nodewalk@fake}{% + \forest@nodewalk@fakefalse + \forest@nw@marshal + }% } \pgfmathdeclarefunction{valid}{1}{% \forest@forthis{% @@ -5488,15 +5490,15 @@ \expandafter\forest@temp@toks\expandafter{\expandafter\forest@saveandrestoremacro\expandafter\forest@nodewalk@currentstepname\expandafter{\the\forest@temp@toks}}% \ifforestdebugnodewalks \epretotoks\forest@temp@toks{\noexpand\typeout{Starting step "#1" from id=\noexpand\forest@cn - \ifnum\forest@nodewalkstephandler@nargs>0 \space with args ####1\fi - \ifnum\forest@nodewalkstephandler@nargs>1 ,####2\fi - \ifnum\forest@nodewalkstephandler@nargs>2 ,####3\fi - \ifnum\forest@nodewalkstephandler@nargs>3 ,####4\fi - \ifnum\forest@nodewalkstephandler@nargs>4 ,####5\fi - \ifnum\forest@nodewalkstephandler@nargs>5 ,####6\fi - \ifnum\forest@nodewalkstephandler@nargs>6 ,####7\fi - \ifnum\forest@nodewalkstephandler@nargs>7 ,####8\fi - \ifnum\forest@nodewalkstephandler@nargs>8 ,####9\fi + \ifnum\forest@nodewalkstephandler@nargs>0 \space with args \noexpand\unexpanded{####1}\fi + \ifnum\forest@nodewalkstephandler@nargs>1 ,\noexpand\unexpanded{####2}\fi + \ifnum\forest@nodewalkstephandler@nargs>2 ,\noexpand\unexpanded{####3}\fi + \ifnum\forest@nodewalkstephandler@nargs>3 ,\noexpand\unexpanded{####4}\fi + \ifnum\forest@nodewalkstephandler@nargs>4 ,\noexpand\unexpanded{####5}\fi + \ifnum\forest@nodewalkstephandler@nargs>5 ,\noexpand\unexpanded{####6}\fi + \ifnum\forest@nodewalkstephandler@nargs>6 ,\noexpand\unexpanded{####7}\fi + \ifnum\forest@nodewalkstephandler@nargs>7 ,\noexpand\unexpanded{####8}\fi + \ifnum\forest@nodewalkstephandler@nargs>8 ,\noexpand\unexpanded{####9}\fi }}% \fi \def\forest@temp{/forest/nodewalk/#1/.code}% @@ -8642,16 +8644,21 @@ }% \forest@node@Ifnamedefined{forest@baseline@node}{% \edef\forest@baseline@id{\forest@node@Nametoid{forest@baseline@node}}% - \ifcsdef{forest@drawn@\forest@baseline@id}{% - \edef\forest@marshal{% - \noexpand\pgfsetbaselinepointlater{% - \noexpand\pgfpointanchor - {\forestOve{\forest@baseline@id}{name}}% - {\forestOve{\forest@baseline@id}{anchor}}% - }% - }\forest@marshal - }{}% - }{}% + \ifnum\forest@baseline@id=0 + \else + \ifcsdef{forest@drawn@\forest@baseline@id}{% + \edef\forest@marshal{% + \noexpand\pgfsetbaselinepointlater{% + \noexpand\pgfpointanchor + {\forestOve{\forest@baseline@id}{name}}% + {\forestOve{\forest@baseline@id}{anchor}}% + }% + }\forest@marshal + }{% + \PackageWarning{forest}{Baseline node (id=\forest@cn) was not drawn (most likely it's a phantom node)}% + }% + \fi + }% \forest@clear@drawn } \def\forest@draw@node{% @@ -10885,7 +10892,10 @@ \forest@global@marshal } % \end{macrocode} -% +% Fill in the values of the invalid node. (It's now easy to test for |id=0|.) +% \begin{macrocode} +\forest@node@init +% \end{macrocode} % \section{Compatibility with previous versions} % \begin{macrocode} \ifdefempty{\forest@compat}{}{% diff --git a/Master/texmf-dist/tex/latex/forest/forest-lib-linguistics.sty b/Master/texmf-dist/tex/latex/forest/forest-lib-linguistics.sty index 74c883ba3f9..81eaa7a5461 100644 --- a/Master/texmf-dist/tex/latex/forest/forest-lib-linguistics.sty +++ b/Master/texmf-dist/tex/latex/forest/forest-lib-linguistics.sty @@ -29,12 +29,17 @@ %% `forest.dtx', or the derived `forest.sty'. %% \RequirePackage{forest} -\ProvidesForestLibrary{linguistics}[2017/01/27 v0.1.1] +\ProvidesForestLibrary{linguistics}[2017/07/14 v0.1.2] \forestset{ + linguistics@set@baseline/.style={ + if phantom={for next node=linguistics@set@baseline}{baseline} + }, libraries/linguistics/defaults/.style={ default preamble={ sn edges, - baseline, + before drawing tree={ + if nodewalk valid={name=forest@baseline@node}{}{linguistics@set@baseline}, + }, for tree={align=center}, }, }, diff --git a/Master/texmf-dist/tex/latex/forest/forest.sty b/Master/texmf-dist/tex/latex/forest/forest.sty index 0c6c43ba005..100e8aa90d5 100644 --- a/Master/texmf-dist/tex/latex/forest/forest.sty +++ b/Master/texmf-dist/tex/latex/forest/forest.sty @@ -44,7 +44,7 @@ %% - LICENCE %% To use the package, only the files marked with + need to be installed. %% -\ProvidesPackage{forest}[2017/02/02 v2.1.4 Drawing (linguistic) trees] +\ProvidesPackage{forest}[2017/07/14 v2.1.5 Drawing (linguistic) trees] \RequirePackage{tikz}[2013/12/13] \usetikzlibrary{shapes} @@ -3346,7 +3346,7 @@ \pgfkeyssetvalue{#1'/option@name}{#3}% \forest@copycommandkey{#1+}{#1}% \pgfkeysalso{#1-/.code={% - \forest@fornode{register}{% + \forest@fornode{}{% \forest@node@removekeysfromkeylist{##1}{#3}% }}}% \pgfkeyssetvalue{#1-/option@name}{#3}% @@ -4419,7 +4419,7 @@ #4% \let\forest@temp@pgfmathpostparse\pgfmathpostparse \let\pgfmathpostparse\forest@aggregate@pgfmathpostparse - \forestmath@convert@to\forestmathtype@dimen{\forestmathresult} + \forestmath@convert@to\forestmathtype@dimen{\forestmathresult}% \pgfmathqparse{\forestmathresult}% \let\pgfmathpostparse\forest@temp@pgfmathpostparse \forestrlet{aggregate result}\pgfmathresult @@ -4589,7 +4589,7 @@ \ifx\forest@nodewalk@config@oninvalid\forest@nodewalk@oninvalid@inherited@text \edef\forest@nodewalk@config@oninvalid{\forest@nodewalk@oninvalid}% \fi - \edef\forest@marshal{% + \edef\forest@nw@marshal{% \noexpand\pgfqkeys{/forest/nodewalk}{\unexpanded{#1}}% \csname forest@nodewalk@config@everystep@\forest@nodewalk@config@everystep@method @after\endcsname \csname forest@nodewalk@config@history@\forest@nodewalk@config@history@method @after\endcsname @@ -4598,8 +4598,10 @@ \csname forest@nodewalk@config@everystep@\forest@nodewalk@config@everystep@method @before\endcsname{#2}% \csname forest@nodewalk@config@history@\forest@nodewalk@config@history@method @before\endcsname \edef\forest@nodewalk@oninvalid{\forest@nodewalk@config@oninvalid}% - \forest@nodewalk@fakefalse - \forest@marshal + \forest@saveandrestoreifcs{forest@nodewalk@fake}{% + \forest@nodewalk@fakefalse + \forest@nw@marshal + }% } \pgfmathdeclarefunction{valid}{1}{% \forest@forthis{% @@ -4718,15 +4720,15 @@ \expandafter\forest@temp@toks\expandafter{\expandafter\forest@saveandrestoremacro\expandafter\forest@nodewalk@currentstepname\expandafter{\the\forest@temp@toks}}% \ifforestdebugnodewalks \epretotoks\forest@temp@toks{\noexpand\typeout{Starting step "#1" from id=\noexpand\forest@cn - \ifnum\forest@nodewalkstephandler@nargs>0 \space with args ####1\fi - \ifnum\forest@nodewalkstephandler@nargs>1 ,####2\fi - \ifnum\forest@nodewalkstephandler@nargs>2 ,####3\fi - \ifnum\forest@nodewalkstephandler@nargs>3 ,####4\fi - \ifnum\forest@nodewalkstephandler@nargs>4 ,####5\fi - \ifnum\forest@nodewalkstephandler@nargs>5 ,####6\fi - \ifnum\forest@nodewalkstephandler@nargs>6 ,####7\fi - \ifnum\forest@nodewalkstephandler@nargs>7 ,####8\fi - \ifnum\forest@nodewalkstephandler@nargs>8 ,####9\fi + \ifnum\forest@nodewalkstephandler@nargs>0 \space with args \noexpand\unexpanded{####1}\fi + \ifnum\forest@nodewalkstephandler@nargs>1 ,\noexpand\unexpanded{####2}\fi + \ifnum\forest@nodewalkstephandler@nargs>2 ,\noexpand\unexpanded{####3}\fi + \ifnum\forest@nodewalkstephandler@nargs>3 ,\noexpand\unexpanded{####4}\fi + \ifnum\forest@nodewalkstephandler@nargs>4 ,\noexpand\unexpanded{####5}\fi + \ifnum\forest@nodewalkstephandler@nargs>5 ,\noexpand\unexpanded{####6}\fi + \ifnum\forest@nodewalkstephandler@nargs>6 ,\noexpand\unexpanded{####7}\fi + \ifnum\forest@nodewalkstephandler@nargs>7 ,\noexpand\unexpanded{####8}\fi + \ifnum\forest@nodewalkstephandler@nargs>8 ,\noexpand\unexpanded{####9}\fi }}% \fi \def\forest@temp{/forest/nodewalk/#1/.code}% @@ -7606,16 +7608,21 @@ }% \forest@node@Ifnamedefined{forest@baseline@node}{% \edef\forest@baseline@id{\forest@node@Nametoid{forest@baseline@node}}% - \ifcsdef{forest@drawn@\forest@baseline@id}{% - \edef\forest@marshal{% - \noexpand\pgfsetbaselinepointlater{% - \noexpand\pgfpointanchor - {\forestOve{\forest@baseline@id}{name}}% - {\forestOve{\forest@baseline@id}{anchor}}% - }% - }\forest@marshal - }{}% - }{}% + \ifnum\forest@baseline@id=0 + \else + \ifcsdef{forest@drawn@\forest@baseline@id}{% + \edef\forest@marshal{% + \noexpand\pgfsetbaselinepointlater{% + \noexpand\pgfpointanchor + {\forestOve{\forest@baseline@id}{name}}% + {\forestOve{\forest@baseline@id}{anchor}}% + }% + }\forest@marshal + }{% + \PackageWarning{forest}{Baseline node (id=\forest@cn) was not drawn (most likely it's a phantom node)}% + }% + \fi + }% \forest@clear@drawn } \def\forest@draw@node{% @@ -9243,6 +9250,7 @@ }% \forest@global@marshal } +\forest@node@init \ifdefempty{\forest@compat}{}{% \RequirePackage{forest-compat} } -- cgit v1.2.3