From abdd389db8b3e93f1620166b736970d77a459fbd Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 10 Dec 2018 22:57:48 +0000 Subject: covington (10dec18) git-svn-id: svn://tug.org/texlive/trunk@49376 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/covington/README | 8 + .../texmf-dist/doc/latex/covington/covington.pdf | Bin 529342 -> 543118 bytes .../texmf-dist/doc/latex/covington/covington.tex | 378 +++++++++++++++------ .../texmf-dist/tex/latex/covington/covington.sty | 165 ++++++++- 4 files changed, 452 insertions(+), 99 deletions(-) (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/covington/README b/Master/texmf-dist/doc/latex/covington/README index 06a4f4a1c31..b91c40dca89 100644 --- a/Master/texmf-dist/doc/latex/covington/README +++ b/Master/texmf-dist/doc/latex/covington/README @@ -31,6 +31,14 @@ The package consists of the following files: == CHANGES == +* Version 2.0 (2018-12-10): + - Add new gloss macros (\digloss and \trigloss) for a more convenient, + flexible and robust gloss insertion. + - Add \glot command for customizable gloss translation line, + together with customization possibilities. + - Add possibility to customize \sentence font setting. + - Add \lexp, \lcon and \lmean markup macros. + * Version 1.8 (2018-12-07): - Fix font markup of second gloss line (do not force rm). diff --git a/Master/texmf-dist/doc/latex/covington/covington.pdf b/Master/texmf-dist/doc/latex/covington/covington.pdf index 3480b145b29..7c899277e73 100644 Binary files a/Master/texmf-dist/doc/latex/covington/covington.pdf and b/Master/texmf-dist/doc/latex/covington/covington.pdf differ diff --git a/Master/texmf-dist/doc/latex/covington/covington.tex b/Master/texmf-dist/doc/latex/covington/covington.tex index c3e788a6fe2..f741391120d 100644 --- a/Master/texmf-dist/doc/latex/covington/covington.tex +++ b/Master/texmf-dist/doc/latex/covington/covington.tex @@ -35,6 +35,7 @@ \documentclass[english]{article} +\usepackage{metre} \usepackage[libertine]{newtxmath} \usepackage[osf]{libertine} \usepackage[scaled=0.75]{beramono} @@ -84,6 +85,7 @@ \newcommand*\jfmacro[1]{\texttt{#1}} \newcommand*\jfenv[1]{\texttt{#1}} \newcommand*\jfcsmacro[1]{\jfmacro{\textbackslash{#1}}} +\newcommand*\jparam[1]{\angus #1\angud} % Strings \newcommand*{\cvt}{\textsf{covington}} @@ -92,8 +94,8 @@ % % Titling % -\def\pversion{Version 1.8} -\def\pdate{December 7, 2018} +\def\pversion{Version 2.0} +\def\pdate{December 10, 2018} \title{\textbf{The \cvt\ Package\\Macros for Linguistics}} \author{Michael A. Covington \and J\"urgen Spitzm\"uller\thanks{Current maintainer. @@ -109,7 +111,7 @@ \noindent This package, initially a collection of Michael A. Covington's private macros, provides numerous minor \LaTeX\ enhancements for linguistics, including multiple diacritics on the same letter, interlinear glosses (word-by-word translations), Discourse Representation Structures, -and example numbering. +example numbering, and semantic markup. \end{abstract} \tableofcontents @@ -349,13 +351,13 @@ existing \jenv{subexamples} environments. The package will issue a warning if \j You can change the display of the example number by redefining (via \jfcsmacro{renewcommand*}) the macro \jcsmacro{covexnumber} which has the following default definition: -\begin{lstlisting} +\begin{lstlisting}[moretexcs={covexnumber}] \newcommand*\covexnumber[1]{(#1)} \end{lstlisting} In the same vein, you can customize the display of the subexample letter by redefining (also via \jfcsmacro{renewcommand*}) the macro \jcsmacro{covsubexnumber} which has the following default definition: -\begin{lstlisting} +\begin{lstlisting}[moretexcs={covsubexnumber}] \newcommand*\covsubexnumber[1]{(#1)} \end{lstlisting} @@ -364,7 +366,7 @@ The distance between example number and subnumber (letter) can be changed via th \jcsmacro{subexamplenumbersep} (preset to \texttt{0pt} as well). In both cases, a positive value will increase, a negative value will decrease the respective distance. Doing -\begin{lstlisting}[moretexcs={setlength}] +\begin{lstlisting}[moretexcs={setlength,examplenumbersep,subexamplenumbersep}] \setlength{\examplenumbersep}{-0.5em} \setlength{\subexamplenumbersep}{0.5em} \end{lstlisting} @@ -389,8 +391,8 @@ The references do not have parentheses by default, i.\,e., a reference to the ex in section~\ref{sec:ex} would be printed as \ref{expl}, a reference to the sub-example in section~\ref{sec:subexs} as \ref{sbex}. For convenience, though, \cvt\ provides a command \jcsmacro{pxref} that also prints the parentheses, -as in \pxref{expl} and \pxref{sbex}. It is defined as followed: -\begin{lstlisting}[moretexcs={providecommand}] +as in \pxref{expl} and \pxref{sbex}. It is defined as follows and can be redefined if needed: +\begin{lstlisting}[moretexcs={providecommand,pxref}] \providecommand*\pxref[1]{(\ref{#1})} \end{lstlisting} @@ -400,36 +402,170 @@ as in \pxref{expl} and \pxref{sbex}. It is defined as followed: To gloss a sentence is to annotate it word-by-word. Most commonly, a sentence in a foreign language is followed by a word-for-word translation (with the words lined up vertically) and then a smooth -translation (not lined up), like this:% -\footnote{The macros for handling glosses are adapted with permission -from \texttt{gloss.tex}, by Marcel R. van der Goot.} -\gll Dit is een Nederlands voorbeeld. - This is a Dutch example. -\glt `This is an example in Dutch.' -\glend -That particular example would be typed as: +translation (not lined up), like this: +\digloss{Dit is een Nederlands voorbeeld} + {This is a Dutch example} + {This is an example in Dutch.} +\Cvt\ provides different ways to typeset such glosses. The most convenient +way is via gloss macros (see sec.~\ref{sec:gmacros}), an alternative (and the +traditional) way is via a set of commands (see sec.~\ref{sec:glosscmds}). +Both are described in turn. + +\subsection{Gloss macros}\label{sec:gmacros} + +\Cvt\ provides two gloss macros: +\begin{itemize} + \item \jcsmacro{digloss[\jparam{options}]\{\jparam{gloss line 1}\}\{\jparam{gloss line 2}\}\{\jparam{free translation}\}}\\ + typesets two-line glosses with a translation line (the macro name + puns on Greek \lexp{diglossía}, lit. \lmean{two tongues}, \lmean{bilingualism}) + \item \jcsmacro{trigloss[\jparam{options}]\{\jparam{gloss l.\,1}\}\{\jparam{gloss l.\,2}\}\{\jparam{gloss l.\,3}\}\{\jparam{free tr.}\}}\\ + typesets three-line\footnote{The additional line can be useful for instance + to gloss cited forms, morphology, or an additional translation. + See sec.~\ref{sec:glossex} for examples.} + glosses with a translation line (cf. Greek \lexp{triglossía}, + lit. \lmean{three tongues}, \lmean{trilingualism}) +\end{itemize} +% +The example given above would thus be typed as: +\begin{lstlisting}[moretexcs={digloss}] +\digloss{Dit is een Nederlands voorbeeld} + {This is a Dutch example} + {This is an example in Dutch.} +\end{lstlisting} +% +Note that: +\begin{itemize} + \item The \jparam{free translation} argument can be left empty. In this case, no translation line is added + (and no extra space taken). + \item The macros automatically markup the lines. By default, the first gloss + line is in italics, subsequent lines are set upright, and the free translation in single + quotation marks (using the language-sensitive \textsf{csquotes} \cite{csquotes} macros if + this package is loaded). This can be customized, though, via the macro options or globally + (for the latter, see sec.~\ref{sec:glossfc}). +\end{itemize} + +\medskip +\noindent The following \joption{\jparam{options}} (key-value pairs) are provided for either macro: + +\begin{description} + \item[\joption{ex=\jparam{true|false}}] Default: \emph{false}. Wraps the gloss in an example environment + (i.\,e., it is numberered). + \item[\joption{tlr=\jparam{true|false}}] Default: \emph{false}. If set to true, the translation line (content + of the \jparam{free translation} argument) is set right to the gloss lines, rather than into a new line below. + Since the gloss itself is set in a box, this means the \jparam{free translation} will appear lined up with the + first line of the gloss. This can be useful when no translation, but an aligned number or something similar, + is to be inserted right to the gloss (please refer to sec.~\ref{sec:glossex} for an example). + \item[\joption{fsi=\{\jparam{font settings}\}}] Adjusts the font settings of the first gloss line. + Valid values are \LaTeX\ font switches such as \jfcsmacro{textit}, \jfcsmacro{bfseries} etc. + \item[\joption{fsii=\{\jparam{font settings}\}}] Adjusts the font settings of the second gloss line. + Valid values are \LaTeX\ font switches such as \jfcsmacro{textit}, \jfcsmacro{bfseries} etc. + \item[\joption{fsiii=\{\jparam{font settings}\}}] Adjusts the font settings of the third gloss line. + Valid values are \LaTeX\ font switches such as \jfcsmacro{textit}, \jfcsmacro{bfseries} etc. +\end{description} +% +If given as the argument to a \jcsmacro{digloss} or \jcsmacro{trigloss} macro, the options will only apply to +this very gloss. If you want to make a permanent change, you can use the macro +\begin{itemize} + \item \jcsmacro{setglossoptions\{\jparam{options}\}} +\end{itemize} +and pass either of the above options to it. This will apply to all subsequent glosses (until further global +change and unless the setting is altered locally via macro option). + +Notice, finally, that the words do not have to be typed lining up; instead, \TeX\ +counts them. If the words in the two languages do not correspond +one-to-one, you can use curly brackets to group words. +For example, to print +\digloss{Dit is een voorbeeldje in het Nederlands} + {This is a {little example} in {} Dutch} + {This is a little example in Dutch.} +you would type: +\begin{lstlisting}[moretexcs={digloss}] +\digloss{Dit is een voorbeeldje in het Nederlands} + {This is a {little example} in {} Dutch} + {This is a little example in Dutch.} +\end{lstlisting} +% +Please consult sec.~\ref{sec:glossex} below for more examples. + +\subsection{Glossing with low-level commands}\label{sec:glosscmds} + +The gloss macros described above build on low-level commands\footnote{The commands are adapted +with permission from \texttt{gloss.tex}, by Marcel R. van der Goot.} which can also +be used directly (this was actually the only way up to \cvt\ 2.0 which introduced the macros). +Low-level commands can be useful if you want to do fancy things in a gloss. +Note, though, that using them also has limitations: +Some commands cannot be used inside macros (such as footnotes), and the markup is not done automatically +in all cases (as documented in what follows); furthermore, you cannot make use of the options the macros have. +Thus, we strongly suggest to use the macros, +unless you have very good reasons not to do that. + +The following is a complete list of all low-level glossing commands: +\begin{description}\setlength\itemsep{0pt} + \item[\jcsmacro{gll}] introduces two lines of words vertically aligned, and + activates an environment very similar to \jfenv{flushleft}. + The two lines are separated by a normal line break (carriage return). + This is possible since the command makes the line-ending character active. + As a consequence, however, this command does not work inside macros + (such as \jfcsmacro{footnote}). + \item[\jcsmacro{glll}] is like \jcsmacro{gll} except that it introduces + \emph{three} lines of lined-up words. + \item[\jcsmacro{xgll}] is similar to \jcsmacro{gll} except that it does not make + the line ending active. It thus works inside macros such as footnotes but + requires explicit gloss line termination via \jcsmacro{xgle}. + \item[\jcsmacro{xglll}] is similar to \jcsmacro{glll} except that it does not make + the line ending active. It thus works inside macros such as footnotes but + requires explicit gloss line termination via \jcsmacro{xgle}. + \item[\jcsmacro{xgle}] is a gloss line ending marker to be used with \jcsmacro{xgll} + and \jcsmacro{xglll}. + \item[\jcsmacro{glt}] ends the set of lined-up lines and introduces a line + (or more) of translation. Note that this command does not markup the translation + line (no automatic enquoting). Also, it outputs an empty line if no text follows. + \item[\jcsmacro{gln}] is like \jcsmacro{glt} but does not start a new line + (useful when no translation follows but you want to put a number on the + right). + \item[\jcsmacro{glot\{\jparam{free translation}\}}] is an alternative to \jcsmacro{glt} + and a smarter way to insert a translation line. Other than \jcsmacro{glt}, it marks up + (by default: enquotes) the translation line. Also, it does not add an empty line if the + translation is empty. This command has been introduced in \cvt\ 2.0. + \item[\jcsmacro{glend}] ends the special \jfenv{flushleft}-like environment. +\end{description} +% +Using the low-level commands, the examples given above would be +coded as follows: \begin{lstlisting}[moretexcs={gll,glt,glend}] \gll Dit is een Nederlands voorbeeld. This is a Dutch example. \glt `This is an example in Dutch.' \glend \end{lstlisting} -Notice that the words do not have to be typed lining up; instead, \TeX\ -counts them. If the words in the two languages do not correspond -one-to-one, you can use curly brackets to group words. -For example, to print -\gll Dit is een voorbeeldje in het Nederlands. - This is a {little example} in {} Dutch. -\glt `This is a little example in Dutch.' -\glend -you would type: \begin{lstlisting}[moretexcs={gll,glt,glend}] -\gll Dit is een voorbeeldje in het Nederlands. - This is a {little example} in {} Dutch. +\gll Dit is een voorbeeldje in het Nederlands + This is a {little example} in {} Dutch \glt `This is a little example in Dutch.' \glend \end{lstlisting} -Note that \cvt\ locally activates the end of line in glosses in order to identify the different lines of the gloss (via category code change). This does not work inside macros (e.\,g., if the gloss is in a footnote). To work around this, a special version of the \jcsmacro{gll} macro is provided that does without the character activation: \jcsmacro{xgll}. This can also be used in macro arguments; however, the end of each gloss line needs to be explicitly specified by the \jcsmacro{xgle} macro in this case. If you want to put the above gloss in a footnote, thus, you would type: +% +Observe that you need to markup (i.\,e., enquote) the translation line yourself if you use \jcsmacro{glt}. +This is not so if you use \jcsmacro{glot}: +\begin{lstlisting}[moretexcs={gll,glot,glend}] +\gll Dit is een Nederlands voorbeeld + This is a Dutch example +\glot{This is an example in Dutch.} +\glend +\end{lstlisting} +% +The advantage of \jcsmacro{glot} is that you can easily customize the translation markup globally. +Also, \jcsmacro{glot} uses the language-sensitive \textsf{csquotes} \cite{csquotes} macros if +this package is loaded (see sec.~\ref{sec:glossfc}). + +Since \jcsmacro{gll} and \jcsmacro{glll} locally activate the end of line in glosses in order to +identify the different lines of the gloss (via category code change), they do not work inside macros +(e.\,g., if the gloss is in a footnote). To work around this, special versions of the \jcsmacro{gll} +and \jcsmacro{glll} commands are provided that do without the character activation: \jcsmacro{xgll} +and \jcsmacro{xglll}, respectively. +These can also be used in macro arguments; however, the end of each gloss line needs to be explicitly +specified by the \jcsmacro{xgle} command in this case. +If you want to put the above gloss in a footnote, thus, you would type: \begin{lstlisting}[moretexcs={xgll,xgle,glt,glend}] \xgll Dit is een voorbeeldje in het Nederlands.\xgle This is a {little example} in {} Dutch.\xgle @@ -437,88 +573,96 @@ Note that \cvt\ locally activates the end of line in glosses in order to identif \glend \end{lstlisting} % -Sometimes, an additional fourth line is needed (for instance to gloss cited forms, morphology, or an additional translation). To support this as well, -\cvt\ provides \jcsmacro{glll} and \jcsmacro{xglll}, each allowing for, and actually requiring, an additional line (see below for an example). +Note, again, that the macros described in sec.~\ref{sec:gmacros} do not have this problem. -All together, \cvt\ provides eight macros for dealing with glosses: -\begin{itemize} -\item \jcsmacro{gll} introduces two lines of words vertically aligned, and -activates an environment very similar to \jfenv{flushleft}. The two lines are separated by a normal line break (carriage return). -\item \jcsmacro{glll} is like \jcsmacro{gll} except that it introduces -\emph{three} lines of lined-up words. -\item \jcsmacro{xgll} is similar to \jcsmacro{gll} except that it does not make the line ending active. It thus works inside macros such as footnotes but requires explicit gloss line termination via \jcsmacro{xgle}. -\item \jcsmacro{xglll} is similar to \jcsmacro{glll} except that it does not make the line ending active. It thus works inside macros such as footnotes but requires explicit gloss line termination via \jcsmacro{xgle}. -\item \jcsmacro{xgle} is a gloss line ending marker to be used with \jcsmacro{xgll} and \jcsmacro{xglll}. -\item \jcsmacro{glt} ends the set of lined-up lines and introduces a line -(or more) of translation. -\item \jcsmacro{gln} is like \jcsmacro{glt} but does not start a new line -(useful when no translation follows but you want to put a number on the -right). -\item \jcsmacro{glend} ends the special \jfenv{flushleft}-like environment. -\end{itemize} -Here are several examples. First, a sentence with three lines aligned, +To sum up: With low-level commands, every glossed sentence begins with either \jcsmacro{gll}, +\jcsmacro{xgll}, \jcsmacro{glll} or \jcsmacro{xglll}, then contains either \jcsmacro{glt} or +\jcsmacro{gln}, and ends with \jcsmacro{glend}. +Layout is critical in the part preceding \jcsmacro{glt} or \jcsmacro{gln}, and fairly free afterward. + + +\subsection{Customization}\label{sec:glossfc} + +The font settings of each gloss line can be customized globally by way of +the global options macro \jcsmacro{setglossoptions} and the \joption{fsi}, +\joption{fsii} or \joption{fsiii} key, respectively (see sec.~\ref{sec:gmacros}). +Alternatively, you can also redefine these macros: +\begin{lstlisting}[moretexcs={glosslineone,glosslinetwo,glosslinethree}] +\newcommand*\glosslineone{\normalfont\itshape}% font settings 1st gloss line +\newcommand*\glosslinetwo{\normalfont\upshape}% font settings 2nd gloss line +\newcommand*\glosslinethree{\normalfont\upshape}% font settings 3rd gloss line +\end{lstlisting} +% +The markup of the translation line (if the \jcsmacro{digloss} or \jcsmacro{trigloss} +macro or the \jcsmacro{glot} low-level command is used) can be customized by redefining +the following macro. +\begin{lstlisting}[moretexcs={glosslinetrans,covenquote}] +\newcommand*\glosslinetrans[1]{\covenquote{#1}} +\end{lstlisting} +Note that for \jcsmacro{covenquote}, as used in the default definition, \cvt\ checks at +document begin whether the \textsf{csquotes} \cite{csquotes} package is loaded. If so, +it uses its language-sensitive \jcsmacro{enquote*} macro for enquoting the translation. +If not, a fallback quotation (using English single quotation marks) is used. The usage of +\textsf{csquotes} is highly recommended! + + +\subsection{Examples}\label{sec:glossex} + +This section gives some further examples. First, a sentence with three lines aligned, instead of just two: -\glll Hoc est aliud exemplum. - \textsc{n.sg.nom} \textsc{3sg} \textsc{n.sg.nom} \textsc{n.sg.nom} - This is another example. -\glt `This is another example.' -\glend -This is typed as: -\begin{lstlisting}[moretexcs={glll,glt,glend}] -\glll Hoc est aliud exemplum. - \textsc{n.sg.nom} \textsc{3sg} \textsc{n.sg.nom} \textsc{n.sg.nom} - This is another example. -\glt `This is another example.' -\glend +\trigloss[fsii={\normalfont\scshape}] + {Hoc est aliud exemplum} + {n.sg.nom 3sg n.sg.nom n.sg.nom} + {This is another example} + {This is another example.} +In order to produce this, we use the \jcsmacro{trigloss} macro for a three-line gloss +and pass the \joption{fsii} option with the respective font switches in order to +get small capitals in the second line: +\begin{lstlisting}[moretexcs={trigloss}] +\trigloss[fsii={\normalfont\scshape}] + {Hoc est aliud exemplum} + {n.sg.nom 3sg n.sg.nom n.sg.nom} + {This is another example} + {This is another example.} \end{lstlisting} +% Next, an example with a gloss but no translation, with an example number at the right: -\gll Hoc habet numerum. - This has number -\gln \hfill (\exampleno) -\glend -That one was typed as: -\begin{lstlisting}[moretexcs={gll,gln,glend,exampleno}] -\gll Hoc habet numerum. - This has number -\gln \hfill (\exampleno) -\glend +\digloss[tlr]{Hoc habet numerum} + {This has number} + {\hfill (\exampleno)} +% +That one was typed using the option \joption{tlr}: +\begin{lstlisting}[moretexcs={digloss,exampleno}] +\digloss[tlr]{Hoc habet numerum} + {This has number} + {\hfill (\exampleno)} \end{lstlisting} Finally we'll put a glossed sentence inside the \texttt{example} environment, which is a very common way of using it: -\begin{example} -\gll Hoc habet numerum praepositum. - This has number preposed -\glt `This one has a number in front of it.' -\glend -\end{example} +\digloss[ex]{Hoc habet numerum praepositum} + {This has number preposed} + {This one has a number in front of it.} This last example was, of course, typed as: -\begin{lstlisting}[moretexcs={gll,glt,glend}] +\begin{lstlisting}[moretexcs={digloss}] +\digloss[ex]{Hoc habet numerum praepositum} + {This has number preposed} + {This one has a number in front of it.} +\end{lstlisting} +although you could also construct it manually as: +\begin{lstlisting}[moretexcs={digloss}] \begin{example} -\gll Hoc habet numerum praepositum. - This has number preposed -\glt `This one has a number in front of it.' -\glend +\digloss{Hoc habet numerum praepositum} + {This has number preposed} + {This one has a number in front of it.} \end{example} \end{lstlisting} -Notice that every glossed sentence begins with either \jcsmacro{gll}, \jcsmacro{xgll}, -\jcsmacro{glll} or \jcsmacro{xglll}, then contains either \jcsmacro{glt} or \jcsmacro{gln}, and ends -with \jcsmacro{glend}. Layout is critical in the part preceding -\jcsmacro{glt} or \jcsmacro{gln}, and fairly free afterward. - -The font settings of each gloss line can be customized by redefining these macros: -\begin{lstlisting} -\newcommand*\glosslineone{\normalfont\itshape}% font settings 1st gloss line -\newcommand*\glosslinetwo{\normalfont\upshape}% font settings 2nd gloss line -\newcommand*\glosslinethree{\normalfont\upshape}% font settings 3rd gloss line -\end{lstlisting} -The markup of the translation line has to be done manually. \section{Phrase structure rules} To print phrase structure rules such as \psr{S}{NP~VP} you can use \texttt{covington's} macro -\lstinline[moretexcs={psr}]"\psr{}{}" (for the given example, +\jcsmacro{psr\{\jparam{constituent}\}\{\jparam{sub-constituents}\}} (for the given example, \lstinline[moretexcs={psr}]"\psr{S}{NP~VP}"). \section{Feature structures} @@ -719,7 +863,7 @@ you do not have to do anything special to avoid excessive space after people's initials. -\section{Displayed sentences} +\section{Semantic markup}\label{sec:markup} The macro \jcsmacro{sentence} displays an italicized sentence (it is a combination of \jfenv{flushleft} and \jfmacro{itshape}). If you type @@ -728,7 +872,35 @@ combination of \jfenv{flushleft} and \jfmacro{itshape}). If you type \end{lstlisting} you get: \sentence{This is a sentence.} +% +The font shape can be modified by redefining the following macro: +\begin{lstlisting}[moretexcs={sentencefs}] +\newcommand*\sentencefs{\itshape} +\end{lstlisting} +% +The following macros provide further markup options common in linguistics: +\begin{itemize} + \item \lstinline[moretexcs={lexp}]|\lexp{word}| is used to mark word forms + (italic by default, as in \lexp{word}) + \item \lstinline[moretexcs={lcon}]|\lcon{concept}| is used to mark concepts + (small caps by default, as in \lcon{concept}) + \item \lstinline[moretexcs={lmean}]|\lmean{meaning}| is used to mark meaning + (single quotes by default, as in \lmean{meaning}) +\end{itemize} +% +Note that for \jcsmacro{lmean}, \cvt\ checks at document begin whether the \textsf{csquotes} +\cite{csquotes} package is loaded. If so, it uses its language-sensitive \jcsmacro{enquote*} +macro for quoting. If not, a fallback quotation (using English single quotation marks) is used. +The usage of \textsf{csquotes} is highly recommended! + +Here are the definitions of the macros. They can be redefined via \jcsmacro{renewcommand}: +\begin{lstlisting}[moretexcs={providecommand,lexp,lcon,lmean,covenquote}] +\providecommand*\lexp[1]{\textit{#1}} +\providecommand*\lcon[1]{\textsc{#1}} +\providecommand*\lmean[1]{\covenquote{#1}} +\end{lstlisting} +% \section{Big curly brackets (disjunctions)} @@ -749,6 +921,17 @@ it. \section{Release history} +\subsection*{2.0 (2018 December 10)} + +\begin{itemize} + \item Add new gloss macros (\jcsmacro{digloss} and \jcsmacro{trigloss}) + for a more convenient, flexible and robust gloss insertion. See sec.~\ref{sec:gmacros}. + \item Add \jcsmacro{glot} command for customizable gloss translation line, together with customization possibilities. + See sec.~\ref{sec:glosscmds}. + \item Add possibility to customize \jcsmacro{sentence} font setting. See sec.~\ref{sec:markup}. + \item Add \jcsmacro{lexp}, \jcsmacro{lcon} and \jcsmacro{lmean} markup macros. See sec.~\ref{sec:markup}. +\end{itemize} + \subsection*{1.8 (2018 December 7)} \begin{itemize} @@ -861,8 +1044,11 @@ it. \end{itemize} \begin{thebibliography}{99} - \bibitem{pakin} Pakin, Scott. The Comprehensive \LaTeX\ Symbol List. - 30 November 2015. \url{http://www.ctan.org/pkg/comprehensive}. + \bibitem{csquotes} Lehman, Philipp and Joseph Wright: + \emph{csquotes -- Context sensitive quotation facilities}. April 4, 2018. + \url{http://www.ctan.org/pkg/csquotes}. + \bibitem{pakin} Pakin, Scott: The Comprehensive \LaTeX\ Symbol List. + November 30, 2015. \url{http://www.ctan.org/pkg/comprehensive}. \end{thebibliography} \end{document} diff --git a/Master/texmf-dist/tex/latex/covington/covington.sty b/Master/texmf-dist/tex/latex/covington/covington.sty index 4d40d34bd4a..437fb55395c 100644 --- a/Master/texmf-dist/tex/latex/covington/covington.sty +++ b/Master/texmf-dist/tex/latex/covington/covington.sty @@ -42,8 +42,8 @@ %%% Metadata %%% -\def\filedate{2018/12/07} -\def\fileversion{1.8} +\def\filedate{2018/12/10} +\def\fileversion{2.0} \def\filename{covington.sty} % Force redefinition of environments? @@ -61,6 +61,11 @@ \ProcessOptions } +% +% Required packages +% +\RequirePackage{xkeyval} + % Macro to issue warnings \newcommand\cov@warning[1]{% \@ifundefined{PackageWarning}{% @@ -578,6 +583,145 @@ \egroup % matches \bgroup in \gloss } +% V. 2.0: enquotable translation line +\newcommand*\glosslinetrans[1]{\covenquote{#1}} +\newcommand*\glot[1]{% + \def\tempx{#1}% + \ifx\tempx\empty\gln + \else\glt\glosslinetrans{#1}\fi% +} + +% V. 2.0: More convenient gloss macros +% +% Key-val options for the macros +% +% 1. ex= +\newif\ifgexample\gexamplefalse +\newif\ifggexample\ggexamplefalse +\define@boolkey+{covington}{ex}[true]{% + \ifKV@covington@ex + \gexampletrue + \else + \gexamplefalse + \fi +}{% + \cov@warning{unknown env value '#1' in gloss macro}% +} +\define@boolkey+{gcovington}{ex}[true]{% + \ifKV@gcovington@ex + \ggexampletrue + \else + \ggexamplefalse + \fi +}{% + \cov@warning{unknown env value '#1' in setglossoptions}% +} +\newif\ifgtright\gtrightfalse +\newif\ifggtright\ggtrightfalse +% +% 2. tlb= +\define@boolkey+{covington}{tlr}[true]{% + \ifKV@covington@tlr + \gtrighttrue + \else + \gtrightfalse + \fi +}{% + \cov@warning{unknown tlr value '#1' in gloss macro}% +} +\define@boolkey+{gcovington}{tlr}[true]{% + \ifKV@gcovington@tlr + \ggtrighttrue + \else + \ggtrightfalse + \fi +}{% + \cov@warning{unknown tlr value '#1' in setglossoptions}% +} +% +% 3. font settings for gloss line i, ii, iii +\define@key{covington}{fsi}{\def\lglosslineone{#1}} +\define@key{covington}{fsii}{\def\lglosslinetwo{#1}} +\define@key{covington}{fsiii}{\def\lglosslinethree{#1}} +\define@key{gcovington}{fsi}{\def\glosslineone{#1}} +\define@key{gcovington}{fsii}{\def\glosslinetwo{#1}} +\define@key{gcovington}{fsiii}{\def\glosslinethree{#1}} +% +% General setting option +\newcommand*\setglossoptions[1]{\setkeys{gcovington}{#1}} +% +% 1. \digloss[]{}{}{} +\newcommand*\digloss[4][\empty]{% + \ifggexample + \setkeys{covington}{ex=true} + \else + \setkeys{covington}{ex=false} + \fi% + \ifggtright + \setkeys{covington}{tlr=true} + \else + \setkeys{covington}{tlr=false} + \fi% + \ifx#1\empty\else\setkeys{covington}{#1}\fi% + \ifgexample + \begin{covexample} + \fi% + \@ifundefined{lglosslineone}{}{\def\glosslineone{\lglosslineone}}% + \@ifundefined{lglosslinetwo}{}{\def\glosslinetwo{\lglosslinetwo}}% + \@ifundefined{lglosslinethree}{}{\def\glosslinethree{\lglosslinethree}}% + \xgll #2\xgle + #3\xgle + \ifgtright + \gln #4 + \else + \glot{#4} + \fi + \glend + \ifgexample + \end{covexample} + \fi% + \let\lglosslineone\relax% + \let\lglosslinetwo\relax% + \let\lglosslinethree\relax% +} + +% 2. \trigloss[]{}{}{}{} +\newcommand\trigloss[5][\empty]{% + \ifggexample + \setkeys{covington}{ex=true} + \else + \setkeys{covington}{ex=false} + \fi% + \ifggtright + \setkeys{covington}{tlr=true} + \else + \setkeys{covington}{tlr=false} + \fi% + \ifx#1\empty\else\setkeys{covington}{#1}\fi% + \ifgexample + \begin{covexample} + \fi% + \@ifundefined{lglosslineone}{}{\def\glosslineone{\lglosslineone}}% + \@ifundefined{lglosslinetwo}{}{\def\glosslinetwo{\lglosslinetwo}}% + \@ifundefined{lglosslinethree}{}{\def\glosslinethree{\lglosslinethree}}% + \xglll #2\xgle + #3\xgle + #4\xgle + \ifgtright + \gln #5 + \else + \glot{#5} + \fi + \glend + \ifgexample + \end{covexample} + \fi% + \let\lglosslineone\relax% + \let\lglosslinetwo\relax% + \let\lglosslinethree\relax% +} + + %\def\gloss % raw TeX macro for 2 aligned lines % {\bgroup % \catcode`\^^M=12 @@ -800,8 +944,23 @@ % Modified 1992 Nov 8 to skip defining reflist if reflist is already % defined. Permits using uga.sty with covingtn.sty. +% V. 2.0: Add macro for font settings customization +\newcommand*\sentencefs{\cov@emphasized} + \newcommand{\sentence}[1] - {\begin{flushleft}{\cov@emphasized #1}\end{flushleft}} + {\begin{flushleft}{\sentencefs #1}\end{flushleft}} + +% V. 2.0: Further semantic markup +\providecommand*\lexp[1]{\textit{#1}} +\providecommand*\lcon[1]{\textsc{#1}} +\newcommand*\covenquote[1]{\textquoteleft #1\textquoteright} +\providecommand*\lmean[1]{\covenquote{#1}} + +\AtBeginDocument{% + \@ifundefined{enquote}{}{% + \renewcommand\covenquote[1]{\enquote*{#1}} + } +} \newcommand{\either}[2] { -- cgit v1.2.3