/usr/share/texlive/texmf-dist/tex/generic/lecturer/lecturer.tex is in texlive-generic-extra 2013.20140215-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | % This is the Lecturer package.
% Relevant information can be found in lecturer-doc.pdf
%
% Author: Paul Isambert.
% E-mail: zappathustra AT free DOT fr
% Comments and suggestions are welcome.
% Date: July 2010.
%
\ifx\lectureralreadyloaded\undefined
\let\lectureralreadyloaded\relax
\else
\expandafter\endinput
\fi
\input yax % which input's texapi
\ifdefined\yaxversion
\ifdim\yaxversion pt<1.02pt
\senderror{Lecturer}{I need YaX with version at least 1.02. I quit}
\expandafter\expandafter\expandafter\endinput
\fi
\else
\senderror{Lecturer}{I need YaX with version at least 1.02. I quit}
\expandafter\endinput
\fi
\setcatcodes{\_\@=11}
\def\ltr@error{\senderror{Lecturer}}
\pdfminorversion5
%
% YAX SETTINGS.
%
\newsyntax#1:#2;{ltr@}
%
% A faster way to restrict those attributes
% that take boolean values.
%
\def\ltr@boolean_attr#1{%
\ltr@restrictattribute #1; true false\par
}
%
% Delete a list of attributes.
%
\newfor\ltr@attribute_deletion{1}#2 {%
\ltr@deleteattribute #1:#2;%
}
%
% Delete an attribute if empty, so being empty
% is equivalent to being undefined.
%
\def\ltr@delete_empty#1{%
\ltr@passvalueand{\iffemptystring}#1;{{\ltr@deleteattribute#1;}}{}%
}
%
% Turn the <value> of those attributes that are supposed to
% be dimensions into \dimexpr(<value>), so that one can
% declare e.g. "5cm-12pt" as a value.
%
\newfor\ltr@todim_loop{1}#2 {%
\nometa\ltr@ifattribute#1:#2;
{\ltr@passvalue{\ltr@todim_trim{#1:#2}}#1:#2;}{}%
}
\def\ltr@todim_trim#1#2{%
\passtrim{#2}{\ltr@todim_do{#1}}%
}
\def\ltr@todim_do#1#2{%
\ltr@setattribute#1; = {\dimexpr(#2)}
}
\def\ltr@gobbletopar#1\par{}%
% GENERAL COMMANDS
%
% Option processing when between brackets [...].
% Each command where such options occur (\slide, \step...)
% defines a "useatom" and "usepair".
%
\newstring{=}
\def\ltr@option_launchloop#1#2{\ltr@option_loop{#1}{#2,}}
\newfornoempty\ltr@option_loop{1}#2,{%
\ifcontains={#2}{\ltr@option_getpair{#1}#2\ltr@end}
{\passtrim{#2}{\usecs{ltr@#1_useatom}}}%
}
\def\ltr@option_getpair#1#2=#3\ltr@end{%
\passtrim{#3}{\ltr@option_checkquotes{\passtrim{#2}{\usecs{ltr@#1_usepair}}}}%
}
\newstring{"}
\def\ltr@option_checkquotes#1#2{%
\iffprefix"{#2}
{\iffsuffix"{#2}\ltr@option_removequotes}%
#1{#2}%
}
\def\ltr@option_removequotes#1#2#3#4{%
\removeprefixand"{#4}{\ltr@removesuffixand"{#1{#2}{#3}}}%
}
\def\ltr@removesuffixand#1#2#3{\removesuffixand#1{#3}{#2}}
%
% A generic loop on space-separated lists.
\newfornoempty\ltr@space_loop{1}#2 {#1{#2}}
%
% Turns a dimension into a number.
%
\def\ltr@nopt#1{\expandafter\lTr@noPT\the\dimexpr(#1)\relax}
\def\ltr@integer#1{\expandafter\lTr@inTeger\the\dimexpr(#1)\relax}
% Turns TeX english points (72.27 per inch), in which dimensions
% are expressed, into Postscript ones (72 per inch), which PDF understands.
%
\def\ltr@point_convert#1{%
\expandafter\lTr@noPT\the\dimexpr(.996264\dimexpr(#1))\relax\spacecs
}
\let\numexPr\numexpr
{\setcatcodes{pt=12} \gdef\lTr@noPT#1pt{#1}
\gdef\lTr@inTeger#1.#2#3pt{\numexPr(#1#2/10)}}
%
% Here we go.
%
\def\ltr@input#1 {\priminput ltr-#1.tex }
\ltr@input job
\ltr@input slides
\ltr@input steps
\ltr@input areas
\ltr@input graphics
\ltr@input navigation
\restorecatcodes
\endinput
% Goodbye.
|