Are there templates for generating weekly time sheets in LaTeX? Ideally something that would minimize duplicate entries by computing totals and days-of-week.
[Tex/LaTex] Templates for generating timesheets
calculationscalendartemplates
Related Solutions
This is what I'm using for small cheat sheets. It is derived from some sheet I found out there, unfortunately, I cannot recall whom should I credit... Anyway, there you go:
\documentclass[10pt,landscape]{article}
\usepackage{multicol}
\usepackage{calc}
\usepackage{ifthen}
\usepackage[landscape]{geometry}
\usepackage{amsmath,amsthm,amsfonts,amssymb}
\usepackage{color,graphicx,overpic}
\usepackage{hyperref}
\pdfinfo{
/Title (example.pdf)
/Creator (TeX)
/Producer (pdfTeX 1.40.0)
/Author (Seamus)
/Subject (Example)
/Keywords (pdflatex, latex,pdftex,tex)}
% This sets page margins to .5 inch if using letter paper, and to 1cm
% if using A4 paper. (This probably isn't strictly necessary.)
% If using another size paper, use default 1cm margins.
\ifthenelse{\lengthtest { \paperwidth = 11in}}
{ \geometry{top=.5in,left=.5in,right=.5in,bottom=.5in} }
{\ifthenelse{ \lengthtest{ \paperwidth = 297mm}}
{\geometry{top=1cm,left=1cm,right=1cm,bottom=1cm} }
{\geometry{top=1cm,left=1cm,right=1cm,bottom=1cm} }
}
% Turn off header and footer
\pagestyle{empty}
% Redefine section commands to use less space
\makeatletter
\renewcommand{\section}{\@startsection{section}{1}{0mm}%
{-1ex plus -.5ex minus -.2ex}%
{0.5ex plus .2ex}%x
{\normalfont\large\bfseries}}
\renewcommand{\subsection}{\@startsection{subsection}{2}{0mm}%
{-1explus -.5ex minus -.2ex}%
{0.5ex plus .2ex}%
{\normalfont\normalsize\bfseries}}
\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{0mm}%
{-1ex plus -.5ex minus -.2ex}%
{1ex plus .2ex}%
{\normalfont\small\bfseries}}
\makeatother
% Define BibTeX command
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
% Don't print section numbers
\setcounter{secnumdepth}{0}
\setlength{\parindent}{0pt}
\setlength{\parskip}{0pt plus 0.5ex}
%My Environments
\newtheorem{example}[section]{Example}
% -----------------------------------------------------------------------
\begin{document}
\raggedright
\footnotesize
\begin{multicols}{3}
% multicol parameters
% These lengths are set only within the two main columns
%\setlength{\columnseprule}{0.25pt}
\setlength{\premulticols}{1pt}
\setlength{\postmulticols}{1pt}
\setlength{\multicolsep}{1pt}
\setlength{\columnsep}{2pt}
\begin{center}
\Large{\underline{Title}} \\
\end{center}
\section{Section 1}
Text
\subsection{xCode}
Subsetction text
\section{Section 2}
Text 2
\section{Section 3}
Etc.
% You can even have references
\rule{0.3\linewidth}{0.25pt}
\scriptsize
\bibliographystyle{abstract}
\bibliography{refFile}
\end{multicols}
\end{document}
I hope you'd find it useful.
I couldn't resist: Here is one way to draw this with TikZ. To make it nicer to use, there should be some additional wrapper around it, that automatically calculates the horizontal placement of the nodes. Besides that, the code is astonishingly non-verbose.
\documentclass{article}
\usepackage{tikz}
\begin{document}
% These set the width of a day and the height of an hour.
\newcommand*\daywidth{6cm}
\newcommand*\hourheight{1.2em}
% The entry style will have two options:
% * the first option sets how many hours the entry will be (i.e. its height);
% * the second option sets how many overlapping entries there are (thus
% determining the width).
\tikzset{entry/.style 2 args={
draw,
rectangle,
anchor=north west,
line width=0.4pt,
inner sep=0.3333em,
text width={\daywidth/#2-0.6666em-0.4pt},
minimum height=#1*\hourheight,
align=center
}}
% Start the picture and set the x coordinate to correspond to days and the y
% coordinate to correspond to hours (y should point downwards).
\begin{tikzpicture}[y=-\hourheight,x=\daywidth]
% First print a list of times.
\foreach \time/\ustime in {8/8am,9/9am,10/10am,11/11am,12/12pm,13/1pm,14/2pm,15/3pm,16/4pm,17/5pm,18/6pm}
\node[anchor=north east] at (1,\time) {\ustime};
% Draw some day dividers.
\draw (1,6.5) -- (1,19);
\draw (2,6.5) -- (2,19);
\draw (3,6.5) -- (3,19);
% Start Monday.
\node[anchor=north] at (1.5,6.5) {Monday};
% Write the entries. Note that the x coordinate is 1 (for Monday) plus an
% appropriate amount of shifting. The y coordinate is simply the starting
% time.
\node[entry={4}{2}] at (1,8) {Virtual Reality};
\node[entry={3}{2}] at (1.5,8) {Realtime Network};
\node[entry={3}{1}] at (1,13) {EOSA};
% The same for Tuesday.
\node[anchor=north] at (2.5,6.5) {Tuesday};
\node[entry={3.5}{3}] at (2,9) {Class A};
\node[entry={2.5}{3}] at (2.33333,9.5) {Class B};
\node[entry={2.5}{3}] at (2.66667,10) {Class C};
\end{tikzpicture}
\end{document}
Of course, you can apply all the power of TikZ to actually make it look better (or worse...). For example, by simply replacing the \tikzset
with
\tikzset{entry/.style 2 args={
xshift=(0.5334em+0.8pt)/2,
draw,
line width=0.8pt,
font=\sffamily,
rectangle,
rounded corners,
fill=blue!20,
anchor=north west,
inner sep=0.3333em,
text width={\daywidth/#2-1.2em-1.6pt},
minimum height=#1*\hourheight,
align=center
}}
one obtains
Best Answer
Check out this link. IMHO TeX is not the best solution for such a task. I personally would write some kind a script for generating data in one of my favorite scripting languages (shell+AWK or Python) and then just dump the data into his templates.