diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/calendar/contrib |
Initial commit
Diffstat (limited to 'macros/latex/contrib/calendar/contrib')
-rw-r--r-- | macros/latex/contrib/calendar/contrib/evautofl/README | 57 | ||||
-rw-r--r-- | macros/latex/contrib/calendar/contrib/evautofl/evautofl.dtx | 803 | ||||
-rw-r--r-- | macros/latex/contrib/calendar/contrib/evautofl/evautofl.ins | 77 | ||||
-rw-r--r-- | macros/latex/contrib/calendar/contrib/evautofl/evautofl.pdf | bin | 0 -> 181028 bytes | |||
-rw-r--r-- | macros/latex/contrib/calendar/contrib/evautofl/evautoflexample.pdf | bin | 0 -> 18923 bytes | |||
-rw-r--r-- | macros/latex/contrib/calendar/contrib/evweek/README | 62 | ||||
-rw-r--r-- | macros/latex/contrib/calendar/contrib/evweek/evweek.dtx | 796 | ||||
-rw-r--r-- | macros/latex/contrib/calendar/contrib/evweek/evweek.ins | 77 | ||||
-rw-r--r-- | macros/latex/contrib/calendar/contrib/evweek/evweek.pdf | bin | 0 -> 178070 bytes | |||
-rw-r--r-- | macros/latex/contrib/calendar/contrib/evweek/evweekexample.pdf | bin | 0 -> 20625 bytes |
10 files changed, 1872 insertions, 0 deletions
diff --git a/macros/latex/contrib/calendar/contrib/evautofl/README b/macros/latex/contrib/calendar/contrib/evautofl/README new file mode 100644 index 0000000000..aab935202f --- /dev/null +++ b/macros/latex/contrib/calendar/contrib/evautofl/README @@ -0,0 +1,57 @@ +evautofl.sty +============ + +This package provides an environment within which pages are framed with cut +lines and printed with punch-marks, so that printed text can easily be +inserted into a filofax or binder. + + +Changes in v0.3 (2005/01/20) +o Corrected (really!) the unequal spacing of punchgroups. +o Corrected the odd framed pages' outer margin. + +Changes in v0.2 (2005/01/14) +o Added a little stupid example of use. +o Corrected the effects of punchmargin on odd pages. +o Corrected the unequal spacing of punchgroups. + +Changes in v0.1 (2003/03/21) +o First public release; there are certainly some bugs. + +------------------------------------------------------------------- + Author: Emanuele Vicentini + (emanuelevicentini at yahoo dot it) + + Copyright 2003, 2005 Emanuele Vicentini + + This work may be distributed and/or modified under the + conditions of the LaTeX Project Public License, either + version 1.3a of this license or (at your option) any + later version. + The latest version of the license is in + http://www.latex-project.org/lppl.txt + + This work has the LPPL maintenance status "author-maintained". + + This work consists of the files: README, evautofl.dtx, evautofl.ins + and the derived files evautofl.sty and evautoflexample.tex +------------------------------------------------------------------- + + + The distribution consists of the following files: +README (this file) +evautofl.{dtx,ins} Package source and installation files +evautofl.pdf Documentation in PDF +evautoflexample.pdf Example of this package output in PDF + + + To install the package: +o run: latex evautofl.ins (which will generate evautofl.sty and + evautoflexample.tex) +o move evautofl.sty where LaTeX will find it (in a local texmf tree could + be tex/latex/calendar/contrib/) and refresh the file database. + + +2005/01/20 +Emanuele Vicentini +(emanuelevicentini at yahoo dot it) diff --git a/macros/latex/contrib/calendar/contrib/evautofl/evautofl.dtx b/macros/latex/contrib/calendar/contrib/evautofl/evautofl.dtx new file mode 100644 index 0000000000..92fc79f314 --- /dev/null +++ b/macros/latex/contrib/calendar/contrib/evautofl/evautofl.dtx @@ -0,0 +1,803 @@ +% \iffalse +% +% evautofl.dtx +% Copyright 2003, 2005 Emanuele Vicentini +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3a of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% +% Author: Emanuele Vicentini +% (emanuelevicentini at yahoo dot it) +% +% This work has the LPPL maintenance status "author-maintained". +% +% This work consists of the files: README, evautofl.dtx, evautofl.ins and +% the derived files evautofl.sty and evautoflexample.tex +% +% This product is based off autofilo.dtx distributed in the LaTeX Calendar +% Bundle, v. 3.1, copyright (C) 1996-1997 by Frank Bennet +% +%<*driver> +\documentclass[10pt]{ltxdoc} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} + \DocInput{evautofl.dtx} +\end{document} +%</driver> +% +%<*example> +\documentclass[12pt, a4paper]{article} +\usepackage{evautofl} +%% Not strictly necessary, but useful :-) +\usepackage{marvosym} +\newcommand*{\newentry}[1]{\hbox to 0.4\textwidth{#1~\dotfill\par}} + + + +\begin{document} + +\begin{autofilo}{} +As you can see, you can put almost anything here, also \MartinVogel~himself +{\Large\Smiley}. + +\bigskip\bigskip + +With a bit of care you could write custom refill pages for your filofax: + +\medskip + +\newentry{\Telefon}\newentry{\Mobilefone}\newentry{\Email} + +\bigskip\bigskip + +Happy \TeX ing! +\end{autofilo} + +\end{document} +%</example> +% \fi +% +% +% +% \CheckSum{695} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% +% +% \changes{v0.1}{2003/03/21}{First public release; there are certainly some +% bugs} +% \changes{v0.2}{2005/01/14}{Added a little, stupid example of use} +% +% +% +% \def\fileversion{0.3} +% \def\filedate{2005/01/20} +% +% +% +% \newcommand*{\nomefile}[1]{\texttt{#1}} +% \newcommand*{\opzione}[1]{\texttt{#1}} +% \newcommand*{\pacchetto}[1]{\textsf{#1}} +% +% +% +% \title{User's Guide to the \pacchetto{evautofl} package\thanks{This file +% is version number \fileversion; it was last revised on \filedate. Many +% thanks to Geert Kloosterman for the priceless bug reports.}} +% \author{Emanuele Vicentini\\(\texttt{emanuelevicentini at yahoo dot it})} +% \date{\filedate} +% +% +% +% \maketitle +% \begin{abstract} +% This package provides an environment within which pages are framed +% with cut lines and printed with punch-marks, so that printed text can +% easily be inserted into a filofax or binder. +% \end{abstract} +% \tableofcontents +% +% +% +% \section{Brief Introduction} +% For the original documentation see the files \nomefile{calguide.tex} and +% \nomefile{autofilo.dtx} distributed in the \LaTeX\ Calendar Bundle. +% +% The original code has been brutally hacked to ``cut'' the coupled pages so +% now it is possible to mangle the output with \nomefile{pstops} or +% \nomefile{psnup} to have, say, two or more pages on a single sheet and with +% a duplex printer (or a simplex one and a lot of patience) save a lot of +% paper. For a brief introduction to \nomefile{pstops} see \S\ref{sec:pstops}. +% +% This manual is typeset according to the conventions of the +% \LaTeX~\textsc{docstrip} utility which enables the automatic extraction of +% the \LaTeX~macro source files~\cite{GOOSSENS94}. +% +% +% +% \section{About the Style} +% This style provides a rough solution to the design problem it addresses, +% but it does work. Pages are always printed in landscape, rotated using the +% \pacchetto{lscape} package from the \pacchetto{graphics} bundle, and +% centered on the physical paper\footnote{As a technical note, the frame +% itself is not rotated, because it is inserted independently of the output +% boxes controlled by the \LaTeX~output routine. The output modes +% (two-column, and a hacked-together four-column mode) have been modified to +% understand blocks of text as \cs{hbox}es to be laid atop one another, +% rather than as \cs{vbox}es to be set alongside one another.}. It accepts +% two options, \opzione{twocolumn} (the default) and \opzione{fourcolumn}. +% +% The style provides an environment called \texttt{autofilo}. Most often, +% users of this package will be style authors who want to incorporate it +% into other environments that do more specific things. Because +% \texttt{autofilo} accepts several \pacchetto{keyval}-style parameters, +% style authors may have a use for documentation for those optional +% parameters. So here is some sample documentation: +% +% \begin{description} +% \item[\opzione{punchcluster}] Most filofaxes have two or or more clusters +% or groups of punches to hold the pages in place. This option sets +% the number of punches in each cluster. The default is three. +% \item[\opzione{intraspace}] This governs the space between punchouts within +% a group. The default is 19.25mm. +% \item[\opzione{punchgroups}] This option sets the number of groups of +% punches. The default is two groups. +% \item[\opzione{interspace}] This option sets the distance between the +% groups of punches. The default is 51.25mm. +% \item[\opzione{pageheight}] This fixes the height of a filofax page (not +% the physical paper on which it is printed). The default is 172mm. +% \item[\opzione{pagewidth}] This fixes the width of an individual page. The +% physical printed area will be twice this figure. The default is +% 95mm, for a 190mm printed area. +% \item[\opzione{grip}] This adjusts the distance from the edge of the page +% to the outer edge of the punchouts. Defaults to 5mm. +% \item[\opzione{punchmargin}] This adjusts the distance from the edge of the +% text to the inner edge of the punchouts. Defaults to 2mm. +% \item[\opzione{punchpoints}] Size, in points, of punchouts\footnote{Please, +% note that the original documentation reads \opzione{punchsize} but +% the option name is really \opzione{punchpoints}. Also, take care to +% write no dimension specification after the number.}. Defaults to 15. +% \item[\opzione{topspace}] Gap between top of filofax page and top of text +% page. +% \item[\opzione{bottomspace}] Gap between bottom of filofax page and bottom +% of text page. +% \item[\opzione{jawspread}] If set to a positive length, this places a set +% of rules the width of the punchmarks on either side of each +% punchhole, centered on its center and spread the distance specified. +% This can be useful as a guide with some one-hole punches that are +% designed to be used ``blind''. +% \item[\opzione{jawline}] Sets the width of the lines used to make jawmarks. +% The default value is \texttt{0.4pt}. +% \end{description} +% +% +% +% \section{Wrapping \nomefile{pstops} for an easy use}\label{sec:pstops} +% Courtesy of Geert Kloosterman, here follows a script that wrap +% \nomefile{pstops} and some of its many options in an easier command line +% program: all you need is the \emph{psutils} bundle and a sh-compatible +% shell (ash, bash, ksh, etc.). Please, note that this script is suitable +% only for A4 paper size, but can be easily customized. +% +% \begin{verbatim} +%#!/bin/sh +% +%# duplex-calendar -- print the evautlfl output 3 sheets per side (A4) +%# Geert Kloosterman 2005-01-11 +% +%if [ -z "$1" ]; then +% echo "Usage: $(basename "$0") <calendar-file.ps>" 1>&2 +% echo 1>&2 +% echo "Redirect the output to a file or your printer." 1>&2 +% echo "Make sure your printer is in tumble mode when printing." 1>&2 +% exit 1 +%fi +% +%shift=9.6cm +%pstops -pa4 \ +% "6:0(0,$shift)+2(0,0cm)+4(0,-$shift),1(0,-$shift)+3(0,0cm)+5(0,$shift)" \ +% "$1" +% \end{verbatim} +% +% +% +% \StopEventually{% +% \bibliographystyle{alpha} +% \begin{thebibliography}{GMS94} +% \addcontentsline{toc}{section}{\refname} +% \bibitem[GMS94]{GOOSSENS94} Michel Goossens, Frank Mittelbach and +% Alexander Samarin. \emph{The \LaTeX\ Companion}. Addison-Wesley +% Company, 1994. +% \end{thebibliography}} +% +% +% +% \section{The Style File} +% +% +% +% \subsection{Preliminaries} +% Use \LaTeXe, and tell the user who we are. +% \begin{macrocode} +%<*style> +\NeedsTeXFormat{LaTeX2e}[1995/06/01] +\ProvidesPackage{evautofl}[2005/01/20 v0.3 Filofax page outlines] +% \end{macrocode} +% +% +% +% \subsection{Options and required packages} +% We need a boolean to process our sole option. +% \begin{macrocode} +\newif\if@usequadruplecolumn +% \end{macrocode} +% We provide four columns as an option. Two columns (one for each side of +% what will be the filofax page) will be the default. +% \begin{macrocode} +\DeclareOption{fourcolumn}{\@usequadruplecolumntrue} +% \end{macrocode} +% Process the option if present, and load supporting packages. +% \begin{macrocode} +\ProcessOptions +\RequirePackage{lscape} +\RequirePackage{keyval} +% \end{macrocode} +% +% +% +% \subsection{Calendar Setup} +% Declare some variables. +% \begin{macrocode} +\newif\if@quadruplecolumn +\newbox\@leftleftcolumn +\newbox\@leftrightcolumn +\newbox\@rightleftcolumn +\newbox\@rightrightcolumn +\newcount\af@punchcluster +\newcount\af@punchgroups +\newlength\af@interspace +\newlength\af@intraspace +\newlength\af@grip +\newlength\af@punchmargin +\newcount\af@punchsize +\newlength\af@punchwidth +\newlength\af@halfpunchwidth +\newcount\af@subtempcount +\newcount\af@tempcount +\newlength\af@textwidth +\newlength\af@marginrel +\newlength\af@halftextwidth +\newlength\af@textheight +\newlength\af@topmargin +\newlength\af@bottommargin +\newcount\col@no +\newlength\af@jawspread +\newlength\af@halfjawspread +\newlength\af@jawline +% \end{macrocode} +% +% \begin{macro}{\quadruplecolumn} +% We'll need a macro to turn on the four-column mode. This is just a +% modified version of \cs{twocolumn} in the \LaTeX{} distribution. +% \begin{macrocode} +\def\quadruplecolumn{% + \clearpage + \global\columnwidth\textwidth + \global\advance\columnwidth-3\columnsep + \global\divide\columnwidth by4\relax + \global\hsize\columnwidth + \global\linewidth\columnwidth + \global\@twocolumntrue + \global\@quadruplecolumntrue + \global\@firstcolumntrue + \col@number=4\relax} +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{Output routines} +% \begin{macro}{\@opcol} +% Catch the output routine when the new mode is in effect. +% \begin{macrocode} +\def\@opcol{% + \if@twocolumn + \if@quadruplecolumn + \@outputqdrplcol + \else + \@outputdblcol + \fi + \else + \@outputpage + \fi + \global \@mparbottom \z@ \global \@textfloatsheight \z@ + \@floatplacement} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@outputqdrplcol} +% \changes{v0.2}{2005/01/14}{Corrected the ``horizontal'' shift of odd pages} +% \changes{v0.3}{2005/01/20}{Corrected (really!) the ``horizontal'' shift of +% odd pages} +% \begin{macro}{\@outputdblcol} +% \changes{v0.2}{2005/01/14}{Corrected the ``horizontal'' shift of odd pages} +% \changes{v0.3}{2005/01/20}{Corrected (really!) the ``horizontal'' shift of +% odd pages} +% Add a new output routine for the new mode, and a modified version of the +% two-column output routine. Note that these work \emph{only} inside the +% \texttt{landscape} environment. +% \begin{macrocode} +\def\@outputqdrplcol{% + \ifcase\col@no + \global\@firstcolumnfalse + \global\setbox\@leftleftcolumn \box\@outputbox + \or + \global\setbox\@leftrightcolumn \box\@outputbox + \setbox\@outputbox \vbox to \textwidth{% + \vss + \hb@xt@ \textheight{% + \vrule height \columnwidth + depth 0pt + width 0pt + \box\@leftrightcolumn + \hss}% + \vskip\columnsep + \hb@xt@ \textheight{% + \vrule height \columnwidth + depth 0pt + width 0pt + \box\@leftleftcolumn + \hss}% + \vskip\af@halftextwidth}% + \@combinedblfloats + \@outputpage + \begingroup + \@dblfloatplacement + \@startdblcolumn + \@whilesw\if@fcolmade \fi + {\@outputpage\@startdblcolumn}% + \endgroup + \or + \global\setbox\@rightleftcolumn \box\@outputbox + \or + \global\@firstcolumntrue + \global\setbox\@rightrightcolumn \box\@outputbox + \setbox\@outputbox \vbox to \textwidth{% + \hb@xt@ \textheight{% + \vrule height \columnwidth + depth 0pt + width 0pt + \box\@rightrightcolumn + \hss}% + \vskip\columnsep + \hb@xt@ \textheight{% + \vrule height \columnwidth + depth 0pt + width 0pt + \box\@rightleftcolumn + \hss}% + \vfil}% + \@combinedblfloats + \@outputpage + \begingroup + \@dblfloatplacement + \@startdblcolumn + \@whilesw\if@fcolmade \fi + {\@outputpage\@startdblcolumn}% + \endgroup + \fi + \global\advance\col@no by 1 + \ifnum\col@no=4 + \global\col@no=0 + \fi} +\def\@outputdblcol{% + \if@firstcolumn + \global\@firstcolumnfalse + \setbox\@outputbox \vbox to \textwidth{% + \vss + \hbox to \textheight{% + \box\@outputbox}% + \vskip\af@halftextwidth}% + \else + \global\@firstcolumntrue + \setbox\@outputbox \vbox to \textwidth{% + \hbox to \textheight{% + \box\@outputbox}% + \vfil}% + \fi + \@combinedblfloats + \@outputpage + \begingroup + \@dblfloatplacement + \@startdblcolumn + \@whilesw\if@fcolmade \fi + {\@outputpage\@startdblcolumn}% + \endgroup} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% +% \subsection{Punchmarks} +% \begin{macro}{\af@circle} +% \changes{v0.2}{2005/01/14}{Wrapped \cs{circle} into a 0pt box to avoid +% weird spacing effects} +% \changes{v0.3}{2005/01/20}{Added a missing \cs{hidewidth} before +% \cs{circle}} +% We use circles to make punchmarks. When making circles, \TeX~will put the +% center of the circle at point, but consume horizontal space equal to the +% full diameter of the circle. To compensate, we need to skip forward by +% radius, and back again after laying each circle. +% \begin{macrocode} +\def\af@circle{% + \hbox{% + \hskip\af@halfpunchwidth + \ifnum\af@jawspread>0 + \hskip-\af@halfjawspread + \hskip-\af@jawline + \vrule depth \af@halfpunchwidth + height \af@halfpunchwidth + width \af@jawline + \hskip\af@halfjawspread + \else + \vrule depth \af@halfpunchwidth + height \af@halfpunchwidth + width 0pt + \fi + \hbox to 0pt{\hidewidth\circle{\af@punchsize}\hidewidth}% + \ifnum\af@jawspread>0 + \hskip\af@halfjawspread + \vrule depth \af@halfpunchwidth + height \af@halfpunchwidth + width \af@jawline + \hskip-\af@halfjawspread + \hskip-\af@jawline + \fi + \hskip-\af@halfpunchwidth}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\af@group} +% \changes{v0.2}{2005/01/14}{Added a final skip to reflect changes in +% \cs{af@circle}} +% \changes{v0.3}{2005/01/20}{Removed the final skip (to reflect changes in +% \cs{af@circle}) which interfered with punchgroups interspace} +% We define a looping command that lays down a cluster of circles. Grouping +% allows this loop to be nested in another. +% \begin{macrocode} +\def\af@group{% + \begingroup + \af@tempcount=0 + \af@circle + \loop + \advance\af@tempcount by 1 + \ifnum\af@tempcount<\af@punchcluster + \hskip\af@intraspace + \af@circle + \repeat + \endgroup} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\af@circles} +% We define a command that lays down a set of clusters (groups). +% \begin{macrocode} +\def\af@circles{% + \af@tempcount=0 + \af@group + \loop + \advance\af@tempcount by 1 + \ifnum\af@tempcount<\af@punchgroups + \hskip\af@interspace + \af@group + \repeat + \af@tempcount=0} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\af@punches} +% \changes{v0.2}{2005/01/14}{Added a control to skip everything if +% \opzione{punchgroups} is 0; removed a skip to reflect changes in +% \cs{af@circle} and \cs{af@circles}} +% The following command creates a set of punchmarks. +% \begin{macrocode} +\def\af@punches{% + \ifnum\af@punchgroups>0 + \hbox to \af@textheight{% + \hfil\af@circles + \relax\hfil}% + \fi} +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{The frame} +% The following creates a frame. The model was lifted from the +% \pacchetto{geometry} package. The \cs{@@@innerframe} macro of the original +% \pacchetto{autofilo} package has been splited into two new macros which +% draw different frames on the left and right pages of the filofax. +% +% \begin{macro}{\@@@innerframeleft} +% The following macro is used to draw the frame on the left pages, so the +% punchmarks are on the right side. +% \begin{macrocode} +\def\@@@innerframeleft{% + \moveright-\af@topmargin% + \vbox to 0pt{% + \vskip\topmargin% + \vbox to 0pt{\hrule width\af@textheight\vss}% + \hbox to \af@textheight{\llap{\vrule height0.5\af@textwidth}% + \hfil\vrule height0.5\af@textwidth}% + \vbox to 0pt{\hrule width\af@textheight\vss}% + \vskip-\af@halftextwidth% + \vskip\af@grip% + \nointerlineskip\af@punches\nointerlineskip% + \vss}}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@@@innerframeright} +% The following macro is used to draw the frame on the right pages, so the +% punchmarks are on the left side. +% \begin{macrocode} +\def\@@@innerframeright{% + \moveright-\af@topmargin% + \vbox to 0pt{% + \vskip\topmargin% + \vbox to 0pt{\hrule width\af@textheight\vss}% + \hbox to \af@textheight{\llap{\vrule height0.5\af@textwidth}% + \hfil\vrule height0.5\af@textwidth}% + \vbox to 0pt{\hrule width\af@textheight\vss}% + \vskip-\af@punchwidth% + \vskip-\af@grip% + \nointerlineskip\af@punches\nointerlineskip% + \vss}}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@outputpage} +% A further modification of the output routine, this time to put the frame +% in place. This, too, is lifted from \pacchetto{geometry}. It has been +% modified only slightly, but we drop \LaTeX~2.09 support altogether. +% \begin{macrocode} +\newif\if@latextwoe +\@ifundefined{if@compatibility}{\@latextwoefalse}{\@latextwoetrue}% +\if@latextwoe + \def\@outputpage{% + \begingroup % the \endgroup is put in by \aftergroup + \let\protect\noexpand + \@resetactivechars + \let\-\@dischyph + \let\'\@acci\let\`\@accii\let\=\@acciii + \let\\\@normalcr + \let\par\@@par + \shipout \vbox{% + \set@typeset@protect + \aftergroup \endgroup + \aftergroup \set@typeset@protect + \if@specialpage + \global\@specialpagefalse + \@nameuse{ps@\@specialstyle}% + \fi + \if@twoside + \ifodd\count\z@ + \let\@thehead\@oddhead + \let\@thefoot\@oddfoot + \let\@themargin\oddsidemargin + \else + \let\@thehead\@evenhead + \let\@thefoot\@evenfoot + \let\@themargin\evensidemargin + \fi + \fi + \reset@font + \normalsize + \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@ + \@begindvi + \moveright\@themargin + \vtop{% + \ifodd\count\z@ + \@@@innerframeright + \else + \@@@innerframeleft + \fi + \vskip\topmargin + \vskip\af@marginrel + \moveright\af@topmargin + \vbox{% + \setbox\@tempboxa \vbox to \headheight{% + \vfil + \color@hbox + \normalcolor + \hb@xt@\textwidth{% + \let\label\@gobble + \let\index\@gobble + \let\glossary\@gobble + \@thehead}% + \color@endbox}% + \dp\@tempboxa\z@ + \box\@tempboxa + \vskip\headsep + \box\@outputbox + \baselineskip \footskip + \color@hbox + \normalcolor + \hb@xt@\textwidth{% + \let\label\@gobble + \let\index\@gobble + \let\glossary\@gobble + \@thefoot}% + \color@endbox}}}% + \global\@colht\textheight + \stepcounter{page}% + \let\firstmark\botmark + }% +\else + \message{Sorry, evautofl.sty works only with LaTeX2e} +\fi +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{\texttt{Autofilo}'s options} +% Set some global parameters. +% \begin{macrocode} +\headheight=0pt +\headsep=0pt +\footskip=0pt +\marginparwidth=0pt +\marginparsep=0pt +\pagestyle{empty} +\parindent=0pt +\raggedbottom +\columnseprule=0pt +\raggedright +% \end{macrocode} +% Some option definitions. +% \begin{macrocode} +\define@key{opt}{pageheight}{% + \af@textheight=#1\relax} +\define@key{opt}{pagewidth}{% + \af@halftextwidth=#1\relax} +\define@key{opt}{columnsep}{% + \columnsep=#1\relax} +\define@key{opt}{punchcluster}{% + \af@punchcluster=#1} +\define@key{opt}{punchgroups}{% + \af@punchgroups=#1} +\define@key{opt}{interspace}{% + \af@interspace=#1} +\define@key{opt}{intraspace}{% + \af@intraspace=#1} +\define@key{opt}{grip}{% + \af@grip=#1} +\define@key{opt}{punchmargin}{% + \af@punchmargin=#1} +\define@key{opt}{punchpoints}{% + \af@punchsize=#1} +\define@key{opt}{topspace}{% + \af@topmargin=#1} +\define@key{opt}{bottomspace}{% + \af@bottommargin=#1} +\define@key{opt}{jawspread}{% + \af@jawspread=#1} +\define@key{opt}{jawline}{% + \af@jawline=#1} +% \end{macrocode} +% The default values for the options. +% \begin{macrocode} +\af@textheight=172mm +\af@halftextwidth=95mm +\columnsep=14pt +\af@punchcluster=3 +\af@punchgroups=2 +\af@interspace=51.25mm +\af@intraspace=19.25mm +\af@grip=5mm +\af@punchmargin=2mm +\af@punchsize=15 +\af@topmargin=2pt +\af@bottommargin=0pt +\af@jawline=0.4pt +% \end{macrocode} +% +% +% +% \subsection{\texttt{Autofilo} environment} +% \begin{macro}{\autofilo} +% The remaining dimensions must be calculated inside the landscape +% environment. We define that now. +% \begin{macrocode} +\def\autofilo#1{% + \setkeys{opt}{#1}% + \af@textwidth=\paperwidth + \advance\af@textwidth by -\af@textheight + \divide\af@textwidth by 2 + \oddsidemargin=-1in + \advance\oddsidemargin by \af@textwidth + \evensidemargin=-1in + \advance\evensidemargin by \af@textwidth + \af@textwidth=\paperheight + \advance\af@textwidth by -\af@halftextwidth + \divide\af@textwidth by 2 + \topmargin=-1in + \advance\topmargin by \af@textwidth + \relax + \landscape + \af@halfjawspread=\af@jawspread + \divide\af@halfjawspread by 2 + \af@punchwidth=\af@punchsize pt + \af@halfpunchwidth=\af@punchwidth + \divide\af@halfpunchwidth by 2 + \textheight=\af@textheight + \advance\textheight by -\af@topmargin + \advance\textheight by -\af@bottommargin + \af@textwidth=\af@halftextwidth + \multiply\af@textwidth by 2 + \textwidth=\af@textwidth + \advance\textwidth by -2\af@punchwidth + \advance\textwidth by -2\af@grip + \advance\textwidth by -2\af@punchmargin + \af@marginrel=\af@grip + \advance\af@marginrel by \af@punchmargin + \advance\af@marginrel by \af@punchwidth + \vsize=\textheight + \hsize=\textwidth + \@colroom=\vsize + \@colht=\vsize + \if@usequadruplecolumn + \quadruplecolumn + \else + \twocolumn + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\af@punches} +% The end of the environment is a simple thing. +% \begin{macrocode} +\def\endautofilo{% + \endlandscape} +%</style> +% \end{macrocode} +% \end{macro} +% +% +% +% \makeatletter +% \c@IndexColumns=2 +% \c@GlossaryColumns=2 +% \makeatother +% \Finale +% \clearpage +% \PrintIndex +% \clearpage +% \PrintChanges +% +% +% +\endinput diff --git a/macros/latex/contrib/calendar/contrib/evautofl/evautofl.ins b/macros/latex/contrib/calendar/contrib/evautofl/evautofl.ins new file mode 100644 index 0000000000..de87dce8fb --- /dev/null +++ b/macros/latex/contrib/calendar/contrib/evautofl/evautofl.ins @@ -0,0 +1,77 @@ +%% +%% evautofl.ins +%% Copyright 2003, 2005 Emanuele Vicentini +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3a of this license or (at your option) any +%% later version. +%% The latest version of the license is in +%% http://www.latex-project.org/lppl.txt +%% +%% Author: Emanuele Vicentini +%% (emanuelevicentini at yahoo dot it) +%% +%% This work has the LPPL maintenance status "author-maintained". +%% +%% This work consists of the files: README, evautofl.dtx, evautofl.ins and +%% the derived files evautofl.sty and evautoflexample.tex +%% +%% This file will generate fast loadable files and documentation +%% driver files from the doc files in this package when run through +%% LaTeX or TeX. +%% +%% --------------- start of docstrip commands ------------------ +%% +\input docstrip +\preamble + + Copyright 2003, 2005 Emanuele Vicentini + + This work may be distributed and/or modified under the + conditions of the LaTeX Project Public License, either + version 1.3a of this license or (at your option) any + later version. + The latest version of the license is in + http://www.latex-project.org/lppl.txt + + Author: Emanuele Vicentini + (emanuelevicentini at yahoo dot it) + + This work has the LPPL maintenance status "author-maintained". + + This work consists of the files: README, evautofl.dtx, evautofl.ins + and the derived files evautofl.sty and evautoflexample.tex + + Original author: Frank Bennett + at fb@soas.ac.uk + +\endpreamble + +\keepsilent +\askforoverwritefalse + +\Msg{*** Generating the package files ***} +\generate{\file{evautofl.sty}{\from{evautofl.dtx}{style}}% + \nopostamble + \file{evautoflexample.tex}{\from{evautofl.dtx}{example}}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* files into a directory searched by TeX:} +\Msg{*} +\Msg{* \space\space evautofl.sty} +\Msg{*} +\Msg{*} +\Msg{* To produce the documentation on evautofl's code run the} +\Msg{* file ending with `.dtx' through LaTeX.} +\Msg{* Process the file evautofl.idx by:} +\Msg{* \space\space\space\space makeindex -s gind.ist evautofl} +\Msg{* Process the file evautofl.glo by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o evautofl.gls evautofl.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endbatchfile diff --git a/macros/latex/contrib/calendar/contrib/evautofl/evautofl.pdf b/macros/latex/contrib/calendar/contrib/evautofl/evautofl.pdf Binary files differnew file mode 100644 index 0000000000..434a5221c7 --- /dev/null +++ b/macros/latex/contrib/calendar/contrib/evautofl/evautofl.pdf diff --git a/macros/latex/contrib/calendar/contrib/evautofl/evautoflexample.pdf b/macros/latex/contrib/calendar/contrib/evautofl/evautoflexample.pdf Binary files differnew file mode 100644 index 0000000000..e74c7e3c14 --- /dev/null +++ b/macros/latex/contrib/calendar/contrib/evautofl/evautoflexample.pdf diff --git a/macros/latex/contrib/calendar/contrib/evweek/README b/macros/latex/contrib/calendar/contrib/evweek/README new file mode 100644 index 0000000000..9ba574751f --- /dev/null +++ b/macros/latex/contrib/calendar/contrib/evweek/README @@ -0,0 +1,62 @@ +evweek.cls +========== + +This class, a simple spinn-off of the official weekly, incorporates small +bug-fixes and some extensions. To use it you have to install the LaTeX +Calendar Bundle and, optionally, the evautofl package. + + +Changes in v0.4 (2005/01/23) +o Added a little, stupid example of use. +o Added a control on evautofl availability. +o Added the compact option. +o Added the ferial option. + +Changes in v0.3 (2003/11/28) +o Added three new calendar options to enable printing of lines in every + day's box. + +Changes in v0.2 (2003/03/21) +o Switched to evautofl package by default; provided an option to keep using + autofilo. + +Changes in v0.1 (2003/02/09) +o First public release incorporating small bug-fixes and extensions. + +------------------------------------------------------------------- + Author: Emanuele Vicentini + (emanuelevicentini at yahoo dot it) + + Copyright 2003, 2005 Emanuele Vicentini + + This work may be distributed and/or modified under the + conditions of the LaTeX Project Public License, either + version 1.3a of this license or (at your option) any + later version. + The latest version of the license is in + http://www.latex-project.org/lppl.txt + + This work has the LPPL maintenance status "author-maintained". + + This work consists of the files: README, evweek.dtx, evweek.ins + and the derived files evweek.cls and evweekexample.tex +------------------------------------------------------------------- + + + The distribution consists of the following files: +README (this file) +evweek.{dtx,ins} Class source and installation files +evweek.pdf Documentation in PDF +evweekexample.pdf Example of this class output in PDF + + + To install the class: +o run: latex evweek.ins (which will generate evweek.cls and + evweekexample.tex) +o move evweek.cls where LaTeX will find it (in a local texmf tree could + be tex/latex/calendar/contrib/) and refresh the file database. + + +2005/01/23 +Emanuele Vicentini +(emanuelevicentini at yahoo dot it) diff --git a/macros/latex/contrib/calendar/contrib/evweek/evweek.dtx b/macros/latex/contrib/calendar/contrib/evweek/evweek.dtx new file mode 100644 index 0000000000..00f6a92269 --- /dev/null +++ b/macros/latex/contrib/calendar/contrib/evweek/evweek.dtx @@ -0,0 +1,796 @@ +% \iffalse +% +% evweek.dtx +% Copyright 2003, 2005 Emanuele Vicentini +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3a of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% +% Author: Emanuele Vicentini +% (emanuelevicentini at yahoo dot it) +% +% This work has the LPPL maintenance status "author-maintained". +% +% This work consists of the files: README, evweek.dtx, evweek.ins and +% the derived files evweek.cls and evweekexample.tex +% +% This product is based off weekly.dtx distributed in the LaTeX Calendar +% Bundle, v. 3.1, copyright (C) 1996-1997 by Frank Bennet +% +%<*driver> +\documentclass[10pt, draft]{ltxdoc} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} + \DocInput{evweek.dtx} +\end{document} +%</driver> +% +%<*example> +\documentclass{evweek} +\begin{document} +\begin{weekly} + {titletype=\mdseries, daynametype=\itshape, monthtype=\scshape} + {} + 23 jan 2005 +\end{weekly} +\end{document} +%</example> +% \fi +% +% +% +% \CheckSum{594} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \DoNotIndex{\addtolength, \advance, \AtBeginDocument} +% \DoNotIndex{\badness, \baselineskip, \begin, \bfseries} +% \DoNotIndex{\csname, \CurrentOption} +% \DoNotIndex{\DeclareOption, \def, \define@key, \divide} +% \DoNotIndex{\else, \end, \endcsname, \expandafter} +% \DoNotIndex{\fi} +% \DoNotIndex{\global} +% \DoNotIndex{\hbox, \hfil, \hfill, \hrule} +% \DoNotIndex{\ifcat, \IfFileExists, \ifnum, \input, \InputIfFileExists} +% \DoNotIndex{\kern} +% \DoNotIndex{\leaders, \leavevmode, \linewidth, \LoadClass, \loop} +% \DoNotIndex{\message, \multicolsep} +% \DoNotIndex{\NeedsTeXFormat, \newcount, \newif, \newlength, \newsavebox, +% \newskip, \normallineskip} +% \DoNotIndex{\p@, \pagestyle, \par, \parbox, \parindent, +% \PassOptionsToClass, \ProcessOptions, \protected@edef, \ProvidesClass} +% \DoNotIndex{\raggedright, \relax, \repeat, \RequirePackage} +% \DoNotIndex{\sbox, \setlength, \small, \space} +% \DoNotIndex{\textheight, \the} +% \DoNotIndex{\usebox} +% \DoNotIndex{\vbox, \vfill, \vskip} +% \DoNotIndex{\z@} +% +% \changes{v0.1}{2003/02/09}{First public release incorporating small +% bug-fixes and extensions} +% \changes{v0.4}{2005/01/15}{Added a little, stupid example of use} +% +% +% +% \def\fileversion{0.4} +% \def\filedate{2005/01/23} +% +% +% +% \newcommand*{\classe}[1]{\textsf{#1}} +% \newcommand*{\nomefile}[1]{\texttt{#1}} +% \newcommand*{\opzione}[1]{\texttt{#1}} +% \newcommand*{\pacchetto}[1]{\textsf{#1}} +% +% +% +% \title{User's Guide to the \classe{evweek} class\thanks{This file is +% version number \fileversion; it was last revised on \filedate.}} +% \author{Emanuele Vicentini\\(\texttt{emanuelevicentini at yahoo dot it})} +% \date{\filedate} +% +% +% +% \maketitle +% \begin{abstract} +% This class, a simple spinn-off of the official \classe{weekly}, +% incorporates small bug-fixes and some extensions. To use it you have +% to install the \LaTeX\ Calendar Bundle and, optionally, the +% \pacchetto{evautofl} package. +% \end{abstract} +% \tableofcontents +% +% +% +% \section{Brief Introduction} +% For the original documentation see the files \nomefile{calguide.tex} and +% \nomefile{weekly.dtx} distributed in the \LaTeX\ Calendar Bundle. +% +% This manual is typeset according to the conventions of the +% \LaTeX~\textsc{docstrip} utility which enables the automatic extraction of +% the \LaTeX~macro source files~\cite{GOOSSENS94}. +% +% +% +% \section{The weekly calendar} +% The \classe{evweek} class prints weekly calendars for use with a +% Filofax\texttrademark\ or other personal planner. Pages are framed with +% cut-lines, and punch-marks show where to cut holes at the edge of the +% page. For each date, the style initially attempts to set the event and +% date text as a single column. If the text overflows the box for that date, +% the style will attempt to recover by resetting the text as two columns. +% +% It has the following special features and limitations: +% +% \begin{itemize} +% \item The text of the calendar is always rotated, using the +% \pacchetto{lscape} package from the \pacchetto{graphics} bundle. As +% a result, calendars generated using this package can only be printed +% using \texttt{pdflatex}, \texttt{dvips} or other +% PostScript\texttrademark\ print drivers supported by the +% \pacchetto{graphics} bundle. +% \item If the \pacchetto{graphics} bundle has not been configured for your +% system, you can specify the driver and other options for its use by +% giving \LaTeX{} options to the class when it is loaded. +% \item While the paper size can be specified using options like +% \texttt{a4paper}, this will have no effect on the calendar size: it +% is governed by calendar options only. +% \item Documents created with this style should contain nothing other than +% a calendar environment. +% \end{itemize} +% +% +% +% \subsection{Original Calendar Options} +% The following formatting options are supported by the \texttt{weekly} +% environment\footnote{All but the first one are provided by the +% \pacchetto{autofilo} package (see the \LaTeX~Calendar Bundle) or the +% \pacchetto{evautofl} package.}: +% +% \begin{description} +% \item[\opzione{firstday}] This is the starting day of the calendar, +% expressed as an integer. Friday (the default) is 5. +% \item[\opzione{punchcluster}] Most filofaxes have two or or more clusters +% or groups of punches to hold the pages in place. This option sets +% the number of punches in each cluster. The default is three. +% \item[\opzione{intraspace}] This governs the space between punchouts within +% a group. The default is 19.25mm. +% \item[\opzione{punchgroups}] This option sets the number of groups of +% punches. The default is two groups. +% \item[\opzione{interspace}] This option sets the distance between the +% groups of punches. The default is 51.25mm. +% \item[\opzione{pageheight}] This fixes the height of a filofax page (not +% the physical paper on which it is printed). The default is 172mm. +% \item[\opzione{pagewidth}] This fixes the width of an individual page. The +% physical printed area will be twice this figure. The default is +% 95mm, for a 190mm printed area. +% \item[\opzione{grip}] This adjusts the distance from the edge of the page +% to the outer edge of the punchouts. Default is 5mm. +% \item[\opzione{punchmargin}] This adjusts the distance from the edge of the +% text to the inner edge of the punchouts. Default is 2mm. +% \item[\opzione{punchpoints}] Size, in points, of punchouts\footnote{Please, +% note that the original documentation reads \opzione{punchsize} but +% the option name is really \opzione{punchpoints}. Also, take care to +% write no dimension specification after the number.}. Defaults to 15. +% \item[\opzione{topspace}] Gap between top of filofax page and top of text +% page. +% \item[\opzione{bottomspace}] Gap between bottom of filofax page and bottom +% of text page. +% \item[\opzione{jawspread}] If set to a positive length, this places a set +% of rules the width of the punchmarks on either side of each +% punchhole, centered on its center and spread the distance specified. +% This can be useful as a guide with some one-hole punches that are +% designed to be used ``blind''. +% \item[\opzione{jawline}] Sets the width of the lines used to make jawmarks. +% Default value is \texttt{0.4~pt}. +% \end{description} +% +% +% +% \changes{v0.3}{2003/11/28}{Added three new calendar options to enable +% printing of lines in every day's box} +% \subsection{New Calendar Options} +% The following new formatting options are supported by the \classe{weekly} +% environment as provided by this class only: +% +% \begin{description} +% \item[\opzione{titletype}] This set the default typeface for the titlebox +% of each entry; default is \cs{bfseries}. +% \item[\opzione{daynumbertype}] This set the typeface for the day number, +% allowing a finer control over the typesetting of each box; default +% is empty. +% \item[\opzione{daynametype}] This set the typeface for the day name, +% allowing a finer control over the typesetting of each box; default +% is empty. +% \item[\opzione{monthtype}] This set the typeface for month name, allowing +% a finer control over the typesetting of each box; default is empty. +% \item[\opzione{yeartype}] This set the typeface for year number, allowing +% a finer control over the typesetting of each box; default is empty. +% \item[\opzione{intralineskip}] This set the distance between lines that +% appears in every day's box; set it to negative values to disable +% line printing; default is \texttt{-1~pt}. +% \item[\opzione{bottomlineskip}] This set a small gap between the last line +% that will eventually appear in every day's box and the bottom of +% that same box; default is \texttt{0~pt}. +% \item[\opzione{ruleheight}] This set the lines' height; default is +% \texttt{0.1~pt}. +% \end{description} +% +% Each of these parameters can be set indipendently, but the +% \opzione{titletype} option has an overall effect. For example: +% \begin{center}\ttfamily titletype=\cs{itshape}, +% monthtype=\cs{bfseries}\end{center} will typeset the whole titlebox with +% an italic shape font and \emph{only} the month name using a bold expanded, +% italic font (if available). +% +% +% +% \subsection{Fixes} +% I should not call them \emph{real} bug-fixes, but I have changed some bits +% of code that handle the layout of the titlebox of each day. +% +% The original implementation just put the titlebox's elements in a \TeX~box +% and then built a little sandwich with two \cs{hrule}; this has the +% unpleaseant effect that the titleboxes can be of different height, so I've +% put the titleboxes in a \cs{vbox} of \cs{baselineskip} height. +% +% +% +% \changes{v0.2}{2003/03/21}{Switched to \pacchetto{evautofl} package by +% default; provided an option to keep using \pacchetto{autofilo}} +% \changes{v0.4}{2005/01/15}{Added a control on \pacchetto{evautofl} +% availability} +% \changes{v0.4}{2005/01/15}{Added the \opzione{compact} option} +% \changes{v0.4}{2005/01/23}{Added the \opzione{ferial} option} +% \subsection{New Class Options} +% \begin{description} +% \item[\opzione{traditional}] The \classe{evweek} class needs +% \pacchetto{autofilo} or \pacchetto{evautofl} package to draw the +% page frame; the default behaviour is to use \pacchetto{evautofl} but +% if the \texttt{traditional} option is passed to \classe{evweek} or +% \pacchetto{evautofl} is not available, then it will revert to use +% the old \pacchetto{autofilo} package. +% \item[\opzione{compact}] With this option, \classe{evweek} puts a whole +% week on a single framed page, without any empty scratching box, +% starting from Monday (starting day can be customized using +% \opzione{firstday}); the original input for this option came from +% Luis Rivera. +% \item[\opzione{ferial}] With this option, \classe{evweek} puts Monday to +% Wednesday on the left hand pages and Thurday to Sunday on the right +% hand ones, with Saturday and Sunday taking half the space of the +% other days and no empty scratching box\footnote{Customization of +% starting day via \opzione{firstday} is not taken into account.}; the +% original request for this option came from Geert Kloosterman. +% \end{description} +% +% +% +% \StopEventually{% +% \bibliographystyle{alpha} +% \begin{thebibliography}{GMS94} +% \addcontentsline{toc}{section}{\refname} +% \bibitem[GMS94]{GOOSSENS94} Michel Goossens, Frank Mittelbach and +% Alexander Samarin. \emph{The \LaTeX\ Companion}. Addison-Wesley +% Company, 1994. +% \end{thebibliography}} +% +% +% +% \section{The Class File} +% +% +% +% \subsection{Preliminaries} +% Use \LaTeXe, and tell the user who we are. +% \begin{macrocode} +%<*class> +\NeedsTeXFormat{LaTeX2e}[1995/06/01] +\ProvidesClass{evweek}[2005/01/23 v0.4 evWeekly Calendar] +% \end{macrocode} +% Define some more variables and switches for use in the body of the style. +% \begin{macrocode} +\newif\ifwk@overthetop +\newcount\wk@firstday +\newcount\wk@tempcount +\newlength\wk@itemheight +\newif\ifwk@traditional +\newif\ifwk@compact +\newif\ifwk@ferial +\newskip\wk@intralineskip +\newskip\wk@bottomlineskip +\newlength\wk@ruleheight +% \end{macrocode} +% +% +% +% \subsection{Options} +% Things like page and type size go to the article class. +% \begin{macrocode} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\DeclareOption{traditional}{\wk@traditionaltrue} +\DeclareOption{compact}{\wk@compacttrue\wk@ferialfalse} +\DeclareOption{ferial}{\wk@ferialtrue\wk@compactfalse} +% \end{macrocode} +% We use the generic language options, the same as other parts of the +% system. +% \begin{macrocode} +\input{calopts.cfg} +\InputIfFileExists{dates.cfg}{}{} +\ProcessOptions +% \end{macrocode} +% +% +% +% \subsection{Option Postprocessing} +% Now that the options lists are available to us, we can start loading +% packages. The following packages are always loaded. +% \begin{macrocode} +\LoadClass{article} +\RequirePackage{calendar} +\RequirePackage{lscape} +\RequirePackage{multicol} +% \end{macrocode} +% If \pacchetto{evautofl} is not available, we simulate the effect of +% \opzione{traditional} to keep going. +% \begin{macrocode} +\IfFileExists{evautofl.sty}{\relax}{\wk@traditionaltrue} +\ifwk@traditional + \RequirePackage{autofilo} +\else + \RequirePackage{evautofl} +\fi +% \end{macrocode} +% It is now time to do the final page formatting. +% \begin{macrocode} +\AtBeginDocument{% +% \end{macrocode} +% Eliminate page numbers and indenting. +% \begin{macrocode} + \pagestyle{empty} + \parindent=0pt + \multicolsep=0pt} +% \end{macrocode} +% +% +% +% \subsection{Calendar Setup} +% Define some key and their default values for use by the calendar +% environment. +% \begin{macrocode} +\define@key{opt}{firstday}{% + \wk@firstday=#1} +\ifwk@compact + \wk@firstday=1 +\else\ifwk@ferial + \wk@firstday=4 +\else + \wk@firstday=5 +\fi\fi +\define@key{opt}{titletype}{% + \def\wk@titletype{#1}} +\def\wk@titletype{\bfseries} +\define@key{opt}{daynumbertype}{% + \def\wk@daynumbertype{#1}} +\def\wk@daynumbertype{} +\define@key{opt}{daynametype}{% + \def\wk@daynametype{#1}} +\def\wk@daynametype{} +\define@key{opt}{monthtype}{% + \def\wk@monthtype{#1}} +\def\wk@monthtype{} +\define@key{opt}{yeartype}{% + \def\wk@yeartype{#1}} +\def\wk@yeartype{} +\define@key{opt}{intralineskip}{% + \wk@intralineskip=#1} +\wk@intralineskip=-\p@ +\define@key{opt}{bottomlineskip}{% + \wk@bottomlineskip=#1} +\wk@bottomlineskip=\z@ +\define@key{opt}{ruleheight}{% + \wk@ruleheight=#1} +\wk@ruleheight=0.1pt +% \end{macrocode} +% Internal re-definition of \cs{hrulefill} with variable height. +% \begin{macrocode} +\def\wk@hrulefill{\leavevmode\leaders\hrule height\wk@ruleheight + \hfill\kern\z@} +% \end{macrocode} +% We declare eight boxes (or just seven if \opzione{compact} or +% \opzione{ferial} options are in place), one for each day of the week plus +% an extra. +% \begin{macrocode} +\wk@tempcount=0 +\expandafter\newsavebox\csname wk@box\the\wk@tempcount\endcsname +\ifwk@compact + \loop + \advance\wk@tempcount by 1 + \ifnum\wk@tempcount<7 + \expandafter\newsavebox\csname wk@box\the\wk@tempcount\endcsname + \repeat +\else\ifwk@ferial + \loop + \advance\wk@tempcount by 1 + \ifnum\wk@tempcount<7 + \expandafter\newsavebox\csname wk@box\the\wk@tempcount\endcsname + \repeat +\else + \loop + \advance\wk@tempcount by 1 + \ifnum\wk@tempcount<8 + \expandafter\newsavebox\csname wk@box\the\wk@tempcount\endcsname + \repeat +\fi\fi +% \end{macrocode} +% We need a macro to lay the boxes out on a page. We define this now, with +% parameterized measurements that will be determined by the settings given +% to the environment within which this expands. +% \begin{macrocode} +\def\wk@spitoutboxes{% + \wk@tempcount=-1 + \ifwk@compact + \loop + \advance\wk@tempcount by 1 + \ifnum\wk@tempcount<7 + \hbox to\linewidth{% + \expandafter\usebox\csname wk@box\the\wk@tempcount\endcsname}% + \repeat + \else\ifwk@ferial + \loop + \advance\wk@tempcount by 1 + \ifnum\wk@tempcount<7 + \hbox to\linewidth{% + \expandafter\usebox\csname wk@box\the\wk@tempcount\endcsname}% + \repeat + \else + \loop + \advance\wk@tempcount by 1 + \ifnum\wk@tempcount<3 + \hbox to\linewidth{% + \expandafter\usebox\csname wk@box\the\wk@tempcount\endcsname}% + \repeat + \hbox to\linewidth{% + \vbox to\wk@itemheight{% + \hrule width\linewidth height0.4pt depth0pt + \hbox to\linewidth{\hfil}% + \vfill}}% + \wk@tempcount=2 + \loop + \advance\wk@tempcount by 1 + \ifnum\wk@tempcount<7 + \hbox to\linewidth{% + \expandafter\usebox\csname wk@box\the\wk@tempcount\endcsname}% + \repeat + \fi\fi} +% \end{macrocode} +% We define a macro that calculates the height of the date boxes. The value +% of \cs{normallineskip} sneaks in between stacked \cs{hbox}es, so we need +% to account for that. +% \begin{macrocode} +\def\wk@getitemheight{% + \setlength{\wk@itemheight}{\textheight} + \addtolength{\wk@itemheight}{-4pt} + \addtolength{\wk@itemheight}{-5\normallineskip} + \ifwk@compact + \divide\wk@itemheight by 7 + \else\ifwk@ferial + \divide\wk@itemheight by 3 + \else + \divide\wk@itemheight by 4 + \fi\fi}% +% \end{macrocode} +% +% +% +% \subsection{Calendar Definition} +% The calendar definition itself consists of a single command and its +% associated arguments. +% \begin{macrocode} +\newcalendar% +% \end{macrocode} +% We give the environment a name. +% \begin{macrocode} + {weekly} +% \end{macrocode} +% We are producing DVI, so we use the standard macro for dropping text into +% the hopper. +% \begin{macrocode} + {\cal@insert} +% \end{macrocode} +% Starting day for the calendar is not fixed here, because we do not pad +% with blank entries. Season to taste. Use integers 0 through 6. A value +% over 7 means no padding. +% \begin{macrocode} + {8} +% \end{macrocode} +% The length of a group is one week. +% \begin{macrocode} + {7} +% \end{macrocode} +% The length of a subgroup is one week. +% \begin{macrocode} + {7} +% \end{macrocode} +% We do not need delimiters between output items, since we're just building +% boxes. +% \begin{macrocode} + {\relax} +% \end{macrocode} +% Increment the date counter with every item. +% \begin{macrocode} + {I} +% \end{macrocode} +% Define the header. +% \begin{macrocode} + {\expandafter\autofilo\expandafter{\cal@optionslist}\wk@getitemheight} +% \end{macrocode} +% We define the end of the calendar. This spits out all of the boxes one +% last time and closes the page formatting environment. +% \begin{macrocode} + {\wk@spitoutboxes\endautofilo} +% \end{macrocode} +% We define the way to open a new group. This spits out all of the boxes +% built for a page of text. +% \begin{macrocode} + {\wk@spitoutboxes} +% \end{macrocode} +% We define a way to end a subgroup. In this case, we just relax. +% \begin{macrocode} + {\relax} +% \end{macrocode} +% We set up to require a month and day in the environment typed into the +% user's document. +% \begin{macrocode} + {\dates@requiremonthtrue\dates@requiredaytrue} +% \end{macrocode} +% The next section runs after the calendar dates have been scanned from the +% environment, but before the table is opened. +% +% We step back, if necessary, from the designated first date to reach the +% starting day for pages. (Default is Friday.) +% \begin{macrocode} + {\global\dates@date=\cal@range@start + \prevday\wk@firstday + \cal@range@start=\dates@date + \caldate +% \end{macrocode} +% We tell the user where we are starting. +% \begin{macrocode} + \message{^^JStart: \theshortweekday\space + \theday\space\theshortmonth\space\theyear}% +% \end{macrocode} +% Then we jump forward, again if necessary, to the next day just before the +% starting day of the week. +% \begin{macrocode} + \global\dates@date=\cal@range@end + \caldate + \advance\wk@firstday by -1 + \ifnum\wk@firstday=7 + \wk@firstday=0 + \fi + \nextday\wk@firstday + \caldate + \cal@range@end=\dates@date +% \end{macrocode} +% We let the user know where we plan to stop. +% \begin{macrocode} + \message{^^JEnd: \theshortweekday\space + \theday\space\theshortmonth\space\theyear^^J}% +% \end{macrocode} +% We jump back to the starting date and reset the human-side values. +% \begin{macrocode} + \global\dates@date=\cal@range@start + \caldate} +% \end{macrocode} +% Events are delimited by \cs{par}. +% \begin{macrocode} + {\par} +% \end{macrocode} +% The next argument is dropped on DVI for each item. We use it here to fetch +% the text of appointments and events to the standard list macros, using the +% standard text-fetching commands. Each generates a stack delimited by the +% phrase that was set above. +% \begin{macrocode} + {\cal@get@appointments\cal@get@events} +% \end{macrocode} +% This sets \cs{cal@entry@text}. It is executed for every event or +% appointment in the database that applies to a given item. We differentiate +% between whole-day events, pinpointed events and ranged events. +% \begin{macrocode} + {\ifnum\dates@time@start>0 + \ifnum\dates@time@start=\dates@time@end + \protected@edef\cal@entry@text{% + \thetimestart\space + \cal@textcolor{\calcolor}{\theshorttext}} + \else + \protected@edef\cal@entry@text{% + \thetimestart--\thetimeend\space + \cal@textcolor{\calcolor}{\theshorttext}} + \fi + \else + \protected@edef\cal@entry@text{% + \cal@textcolor{\calcolor}{\theshorttext}} + \fi} +% \end{macrocode} +% Finally we tell the style how to create the text for each item. We stash +% the text in each of the numbered boxes, for extraction at the end of each +% group and at the end of the run. In the event of an overfull \cs{vbox}, we +% retry with two columns of text in a last-ditch attempt to squeze +% everything in. +% \begin{macrocode} + {\global\wk@overthetopfalse + \ifwk@ferial + \ifcase\cal@subgroup@count + \def\wk@itemheight@scalefactor{1}% + \or + \def\wk@itemheight@scalefactor{1}% + \or + \def\wk@itemheight@scalefactor{0.5}% + \or + \def\wk@itemheight@scalefactor{0.5}% + \else + \def\wk@itemheight@scalefactor{1}% + \fi + \else + \def\wk@itemheight@scalefactor{1}% + \fi + \expandafter\sbox\csname wk@box\the\cal@subgroup@count\endcsname{% + \vbox to\wk@itemheight@scalefactor\wk@itemheight{% + \hbox{% + \parbox{\linewidth}{% + \vbox to\baselineskip{% + \hrule width\linewidth + \vskip 1pt + \ifwk@compact + {\wk@titletype{\wk@daynametype\theweekday}\hfill + {\wk@daynumbertype\theday}\space + {\wk@monthtype\themonth}\space + {\wk@yeartype\theyear}% + }\par + \else\ifwk@ferial + \ifnum\cal@subgroup@count<4 + {\wk@titletype{\wk@daynametype\theweekday}\hfill + {\wk@daynumbertype\theday}\space + {\wk@monthtype\themonth}\space + {\wk@yeartype\theyear}% + }\par + \else + {\wk@titletype{\wk@daynumbertype\theday}\space + {\wk@monthtype\themonth}\space + {\wk@yeartype\theyear}\hfill + {\wk@daynametype\theweekday}% + }\par + \fi + \else + \ifnum\cal@subgroup@count<3 + {\wk@titletype{\wk@daynametype\theweekday}\hfill + {\wk@daynumbertype\theday}\space + {\wk@monthtype\themonth}\space + {\wk@yeartype\theyear}% + }\par + \else + {\wk@titletype{\wk@daynumbertype\theday}\space + {\wk@monthtype\themonth}\space + {\wk@yeartype\theyear}\hfill + {\wk@daynametype\theweekday}% + }\par + \fi + \fi\fi + \vfill + }% vbox + \hrule width\linewidth + \vskip 1pt + \raggedright + \small + \ifcat$\theevents$% + \else + \theevents\par + \fi + \ifcat$\theappointments$% + \else + \theappointments + \fi + }% parbox + }% hbox + \leaders\vbox{\vskip\wk@intralineskip\wk@hrulefill}\vfill + \vskip\wk@bottomlineskip + }% vbox + \ifnum\badness=1000000 + \global\wk@overthetoptrue + \fi + }% sbox + \ifwk@overthetop + \message{Resetting this date in two-columns.}% + \expandafter\sbox\csname wk@box\the\cal@subgroup@count\endcsname{% + \vbox to\wk@itemheight@scalefactor\wk@itemheight{% + \hbox{% + \parbox{\linewidth}{% + \vbox to\baselineskip{% + \hrule width\linewidth + \vskip 1pt + \ifwk@compact + {\wk@titletype{\wk@daynametype\theweekday}\hfill + {\wk@daynumbertype\theday}\space + {\wk@monthtype\themonth}\space + {\wk@yeartype\theyear}% + }\par + \else + \ifnum\cal@subgroup@count<3 + {\wk@titletype{\wk@daynametype\theweekday}\hfill + {\wk@daynumbertype\theday}\space + {\wk@monthtype\themonth}\space + {\wk@yeartype\theyear}% + }\par + \else + {\wk@titletype{\wk@daynumbertype\theday}\space + {\wk@monthtype\themonth}\space + {\wk@yeartype\theyear}\hfill + {\wk@daynametype\theweekday}% + }\par + \fi + \fi + \vfill + }% vbox + \hrule width\linewidth + \vskip 1pt + \raggedright + \small + \begin{multicols}{2} + \ifcat$\theevents$% + \else% + \theevents\par + \fi + \ifcat$\theappointments$% + \else + \theappointments + \fi + \end{multicols} + }% parbox + }% hbox + \leaders\vbox{\vskip\wk@intralineskip\wk@hrulefill}\vfill + \vskip\wk@bottomlineskip + }% vbox + }% sbox + \fi + \advance\wk@tempcount by 1 + \ifnum\wk@tempcount>6 + \wk@tempcount=0 + \fi} +%</class> +% \end{macrocode} +% +% +% +% \makeatletter +% \c@IndexColumns=2 +% \c@GlossaryColumns=2 +% \makeatother +% \Finale +% \clearpage +% \PrintIndex +% \clearpage +% \PrintChanges +% +% +% +\endinput diff --git a/macros/latex/contrib/calendar/contrib/evweek/evweek.ins b/macros/latex/contrib/calendar/contrib/evweek/evweek.ins new file mode 100644 index 0000000000..709f0a4864 --- /dev/null +++ b/macros/latex/contrib/calendar/contrib/evweek/evweek.ins @@ -0,0 +1,77 @@ +%% +%% evweek.ins +%% Copyright 2003, 2005 Emanuele Vicentini +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3a of this license or (at your option) any +%% later version. +%% The latest version of the license is in +%% http://www.latex-project.org/lppl.txt +%% +%% Author: Emanuele Vicentini +%% (emanuelevicentini at yahoo dot it) +%% +%% This work has the LPPL maintenance status "author-maintained". +%% +%% This work consists of the files: README, evweek.dtx, evweek.ins and +%% the derived files evweek.cls and evweekexample.tex +%% +%% This file will generate fast loadable files and documentation +%% driver files from the doc files in this package when run through +%% LaTeX or TeX. +%% +%% --------------- start of docstrip commands ------------------ +%% +\input docstrip +\preamble + + Copyright 2003, 2005 Emanuele Vicentini + + This work may be distributed and/or modified under the + conditions of the LaTeX Project Public License, either + version 1.3a of this license or (at your option) any + later version. + The latest version of the license is in + http://www.latex-project.org/lppl.txt + + Author: Emanuele Vicentini + (emanuelevicentini at yahoo dot it) + + This work has the LPPL maintenance status "author-maintained". + + This work consists of the files: README, evweek.dtx, evweek.ins + and the derived files evweek.cls and evweekexample.tex + + Original author: Frank Bennett + at fb@soas.ac.uk + +\endpreamble + +\keepsilent +\askforoverwritefalse + +\Msg{*** Generating the package files ***} +\generate{\file{evweek.cls}{\from{evweek.dtx}{class}}% + \nopostamble + \file{evweekexample.tex}{\from{evweek.dtx}{example}}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* files into a directory searched by TeX:} +\Msg{*} +\Msg{* \space\space evweek.cls} +\Msg{*} +\Msg{*} +\Msg{* To produce the documentation on evweek's code run the} +\Msg{* file ending with `.dtx' through LaTeX.} +\Msg{* Process the file evweek.idx by:} +\Msg{* \space\space\space\space makeindex -s gind.ist evweek} +\Msg{* Process the file certatex.glo by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o evweek.gls evweek.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endbatchfile diff --git a/macros/latex/contrib/calendar/contrib/evweek/evweek.pdf b/macros/latex/contrib/calendar/contrib/evweek/evweek.pdf Binary files differnew file mode 100644 index 0000000000..69a1562be3 --- /dev/null +++ b/macros/latex/contrib/calendar/contrib/evweek/evweek.pdf diff --git a/macros/latex/contrib/calendar/contrib/evweek/evweekexample.pdf b/macros/latex/contrib/calendar/contrib/evweek/evweekexample.pdf Binary files differnew file mode 100644 index 0000000000..9729a17959 --- /dev/null +++ b/macros/latex/contrib/calendar/contrib/evweek/evweekexample.pdf |