%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% File: langsci-optional.sty %% Author: Language Science Press (http://langsci-press.org) %% Date: 2016-01-16 16:47:43 UTC %% Purpose: This file contains useful, but not essential, %% macros for books using langscibook.cls %% Language: LaTeX %% Licence: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Heiko Oberdiek % http://tex.stackexchange.com/questions/136644/vertical-space-in-interaction-with-figure-center-environment \newcommand{\oneline}[1]{% \begingroup \sbox0{\ignorespaces#1\unskip}% \leavevmode \ifdim\wd0>\linewidth \hbox to\linewidth{% \hss\resizebox{\linewidth}{!}{\copy0 }\hss }% \else \copy0 % \fi \endgroup } \newcommand{\centerfit}[1]{% \begingroup \sbox0{\ignorespaces#1\unskip}% \leavevmode \ifdim\wd0>\linewidth \hbox to\linewidth{% \hss\resizebox{\linewidth}{!}{\copy0 }\hss }% \else \centerline{\copy0 }% \fi \endgroup } % Helps to fit verbatim onto one line: % http://tex.stackexchange.com/questions/140593/shrinking-verbatim-text/ \usepackage{fancyvrb} \newenvironment{fitverb} {\SaveVerbatim{rlwv}} {\endSaveVerbatim \sbox0{\BUseVerbatim{rlwv}} \begingroup\center % don't add indentation \ifdim\wd0>\linewidth \resizebox{\linewidth}{!}{\copy0}% \else \copy0 \fi \endcenter\endgroup} \VerbatimFootnotes % http://tex.stackexchange.com/questions/73464/inserting-rtl-text-in-verbatim-environment?rq=1 % verbatim with RTL text %\DefineVerbatimEnvironment{rtlverbatim}{Verbatim}{commandchars=+\[\]} \newcommand{\ispackage}[1]{\if@noftnote% \is{package!{\scshape #1}}% \else% \is{package!{\scshape #1}|fn{*}}% \fi% } % breaks the index %\usepackage{doc} \newcommand{\ispackageb}[1]{ \is{package!\texttt{#1}|(} } \newcommand{\ispackagee}[1]{ \is{package!\texttt{#1}|)} } \newcommand{\isoption}[1]{\if@noftnote% \is{option!\texttt{#1}}% \else% \is{option!\texttt{#1}|fn{*}}% \fi% } \newcommand{\iscommand}[1]{\if@noftnote% \index{#1@{\ttfamily $\backslash$#1}}% \else% \is{{#1@\ttfamily $\backslash$#1}|fn{*}}% \fi% } \newcommand\displaycmd[2]{% \DescribeMacro{#2}\centerline{\cmd{#1}}} % \mex considered evil, as we need explicit reference to examples in XML % % The following allows for a quick reference to following or preceeding examples (\mex{1}) or % % (\mex{0}) but also (\mex{-1}) % % taken from covington.sty (check) % \newcounter{lsptempcnt} % % \newcommand{\mex}[1]{\setcounter{lsptempcnt}{\value{equation}}% % \addtocounter{lsptempcnt}{#1}% % \arabic{lsptempcnt}}% \newcommand{\fitpagewidth}[1]{ \resizebox{\textwidth}{!}{#1} } %add intonation bars over morphemes or words \newcommand{\intline}[2]{\settowidth{\LSPTmp}{#2}\raisebox{#1pt}{\parbox{.1mm}{\rule{\LSPTmp}{.5pt}}}#2} %add rising or falling intonation \newcommand{\dline}[3]{% \parbox{.1mm}{\begin{picture}(0,0)% \put(0,#1){\line(#2,-1){#3}}% \end{picture}% }% } %% rotated table headers % create lengths \newlength{\rotheight} \newlength{\rotwidth} \newcommand{\rotatehead}[2][1cm]{ %width is the width of the parbox %height is the buffer space used to vertically stretch the headere \setlength{\rotwidth}{#1} \setlength{\rotheight}{.85\rotwidth} \begin{rotate}{33}~ %nbsp shifts the content away from the line underneath \parbox{\rotwidth}{\raggedright #2} \end{rotate}% \rule{0pt}{\rotheight} %add zero width rule to get the right table height } % example metadata \newcommand{\langinfo}[3]{{\upshape #1\il{#1}~(% \ifx\\#2\\% \else% #2; \fi% #3)}\nopagebreak[4]\ignorespaces} \newcommand{\fittable}[1]{\resizebox{\textwidth}{!}{#1}} % integrate see also in multiple indexes \def\igobble#1 {} \newcommand{\langsciseealso}{\par\addvspace{.1\baselineskip}\hspace*{1.4cm}\hangindent=1.4cm\seealso} \newcommand{\ilsa}[2]{\il{#1@\igobble | langsciseealso{#2}}} \newcommand{\issa}[2]{\is{#1@\igobble | langsciseealso{#2}}} \newcommand{\iasa}[2]{\ia{#1@\igobble | langsciseealso{#2}}} \usepackage{tabularx} \usepackage{array} \newenvironment{widetabular}[1][1] {\tabularx{#1\textwidth}} {\endtabularx} \newcommand{\citetv}[1]{\citeauthor{#1} (\citeyear*{#1} [this volume])} \newcommand{\citepv}[1]{(\citealt{#1} [this volume])} % Vowel chart tikz commands \newcommand{\aeiou}{% \node at (1.5,0) (a) {a}; \node at (0,3) (i) {i}; \node at (3,3) (u) {u}; \node at (0.5,1.5) (e) {e}; \node at (2.5,1.5) (o) {o}; } \newcommand{\aeiouEO}{% \node at (1.5,0) (a) {a}; \node at (0,3) (i) {i}; \node at (3,3) (u) {u}; \node at (0.25,2) (e) {e}; \node at (2.75,2) (o) {o}; \node at (0.75,1) (E) {ε}; \node at (2.25,1) (O) {ɔ}; } %no hyphenation left alingned \newcolumntype{Q}{>{\raggedright\arraybackslash}X} %no hyphenation right aligned \newcolumntype{S}{>{\raggedleft\arraybackslash}X} %no hyphenation centered \newcolumntype{C}{>{\centering\arraybackslash}X} %no hyphenation fixed width \newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} %no hyphenation centered fixed width \newcolumntype{Z}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} %no hyphenation right aligned fixed width \newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} \newcolumntype{d}[1]{D{.}{.}{#1}} \newcommand{\xxref}[2]{(\ref{#1}--\ref{#2})} % Underlining in gb4e-example Environments. Usual underlining commands that span multiple words do not work, because gb4e would parse it as one word. % Example: \underline{My example phrase} should become \ulp{My}{~~~~~} \ulp{example}{~~~~~} \ule{phrase} % Note: The 2nd Argument of the \ulp command is filled in by experience - if you are not familiar with the command, you should experiment a bit. Usually, five tildes are enough, but be sure to check the outcome. % \ule is meant to be the last word in a phrase that is underlined. Therefore, \ule does not have an extra length. \usepackage[normalem]{ulem} \newcommand{\ulp}[2]{%#1: stuff to underline, #2: extra length to skip the whitespace between to components \settowidth{\LSPTmp}{#1}% % several boxes are need to assure that words with ascending and descending letters are underlined at the same % level, leading to the impression of a continuous stroke \parbox[t]{\LSPTmp}{ %restrict first box to the length of first argument \settowidth{\LSPTmp}{#1#2} %inner box is larger than outerbox, so underlining will extend beyond length of outer box % align parbox to bottom % | mbox to prevent hyphenation \uline{\parbox[b]{\LSPTmp}{\mbox{#1#2}}} } } \newcommand{\ule}[1]{%#1: stuff to underline, no extra length \ulp{#1}{} } \usepackage{newfile} \newoutputstream{colorfigures} \openoutputfile{\jobname.clr}{colorfigures} \addtostream{colorfigures}{Note the offset incurred by the frontmatter!} \newenvironment{colorfigure}{\begin{figure}\addtostream{colorfigures}{\thepage}}{\end{figure}} \AtEndDocument{ \closeoutputstream{colorfigures} } \newcommand{\longrule}{\rule{1em}{.3pt}} \usepackage{colortbl} \newcommand{\shadecell}{\cellcolor{black!20!white}} % vertical alignment of numbered example \newcommand{\eabox}[2][-.7\baselineskip]{ \ea \parbox[t]{.8\textwidth}{ \vspace{#1} #2 } \z } \newcommand{\exbox}[2][-.7\baselineskip]{ \ex \parbox[t]{.8\textwidth}{ \vspace{#1} #2 } } %fix \verb error in biblatex \makeatletter \def\blx@maxline{77} \makeatother \newcommand{\twodigitexamples}{\exewidth{(23)}} \newcommand{\threedigitexamples}{\exewidth{(234)}} \newcommand{\fourdigitexamples}{\exewidth{(2345)}} \newcommand{\noabstract}{\vspace*{-2\baselineskip}} %for chapters without abstract \newcommand{\barplot}[4]{% \begin{tikzpicture} \begin{axis}[ xlabel={#1}, ylabel={#2}, axis lines*=left, width = \textwidth, height = .3\textheight, nodes near coords, xtick=data, x tick label style={}, ymin=0, symbolic x coords={#3}, ] \addplot+[ybar,lsRichGreen!80!black,fill=lsRichGreen] plot coordinates { #4 }; \end{axis} \end{tikzpicture} } \newcommand{\rephrase}[2]{{\color{yellow!30!black}#2}\todo{replaced `#1'}} \newcommand{\missref}[2][]{\todo[#1]{missing reference #2}}