dokkit 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CONTRIBUTORS +0 -0
- data/DONE +0 -0
- data/LICENSE +20 -0
- data/README +0 -0
- data/Rakefile +62 -0
- data/TODO +0 -0
- data/bin/dokkit +53 -0
- data/lib/dokkit/app.rb +305 -0
- data/lib/dokkit/builtin.rake +55 -0
- data/lib/dokkit/deplate/fmt/html-notemplate.rb +21 -0
- data/lib/dokkit/deplate/fmt/latex-notemplate.rb +22 -0
- data/lib/dokkit/dokkittasks.rb +69 -0
- data/lib/dokkit/filters/deplate.rb +37 -0
- data/lib/dokkit/filters.rb +26 -0
- data/lib/dokkit/page.rb +54 -0
- data/lib/dokkit/projects/invoice/README +49 -0
- data/lib/dokkit/projects/invoice/Rakefile +100 -0
- data/lib/dokkit/projects/invoice/doc/config/company.yaml +12 -0
- data/lib/dokkit/projects/invoice/doc/config/customer.yaml +4 -0
- data/lib/dokkit/projects/invoice/doc/layouts/invoice.dpltex +90 -0
- data/lib/dokkit/projects/invoice/doc/pages/COMMON.rb +12 -0
- data/lib/dokkit/projects/invoice/doc/pages/invoice.rb +5 -0
- data/lib/dokkit/projects/invoice/doc/pages/invoice.yamltex +16 -0
- data/lib/dokkit/projects/invoice/doc/res/tex/deplate.sty +46 -0
- data/lib/dokkit/projects/invoice/doc/res/tex/images/logo.eps +209 -0
- data/lib/dokkit/projects/invoice/doc/res/tex/include/deplate.sty +46 -0
- data/lib/dokkit/projects/invoice/doc/res/tex/include/layout.inc +24 -0
- data/lib/dokkit/projects/invoice/doc/res/tex/include/macro.inc +67 -0
- data/lib/dokkit/projects/invoice/doc/res/tex/include/packages.inc +51 -0
- data/lib/dokkit/projects/invoice/lib/invoice.rb +104 -0
- data/lib/dokkit/projects/tech_report/README +49 -0
- data/lib/dokkit/projects/tech_report/Rakefile +102 -0
- data/lib/dokkit/projects/tech_report/doc/config/company.yaml +13 -0
- data/lib/dokkit/projects/tech_report/doc/config/tech_report.yaml +3 -0
- data/lib/dokkit/projects/tech_report/doc/layouts/report.dpltex +40 -0
- data/lib/dokkit/projects/tech_report/doc/pages/COMMON.rb +12 -0
- data/lib/dokkit/projects/tech_report/doc/pages/report.dpltex +37 -0
- data/lib/dokkit/projects/tech_report/doc/pages/report.inc +2 -0
- data/lib/dokkit/projects/tech_report/doc/pages/report.rb +3 -0
- data/lib/dokkit/projects/tech_report/doc/res/attachments/attachment_1 +0 -0
- data/lib/dokkit/projects/tech_report/doc/res/attachments/attachment_2 +0 -0
- data/lib/dokkit/projects/tech_report/doc/res/tex/images/logo.eps +311 -0
- data/lib/dokkit/projects/tech_report/doc/res/tex/include/deplate.sty +46 -0
- data/lib/dokkit/projects/tech_report/doc/res/tex/include/layout.inc +24 -0
- data/lib/dokkit/projects/tech_report/doc/res/tex/include/macro.inc +67 -0
- data/lib/dokkit/projects/tech_report/doc/res/tex/include/packages.inc +48 -0
- data/lib/dokkit/projects/tech_report/doc/res/tex/report.bib +4 -0
- data/lib/dokkit/projects/tech_report/lib/tech_report.rb +17 -0
- data/lib/dokkit/projects/website/README +49 -0
- data/lib/dokkit/projects/website/Rakefile +81 -0
- data/lib/dokkit/projects/website/doc/layouts/normal.thtml +38 -0
- data/lib/dokkit/projects/website/doc/pages/COMMON.rb +9 -0
- data/lib/dokkit/projects/website/doc/pages/deplate.dplhtml +9 -0
- data/lib/dokkit/projects/website/doc/pages/index.rb +10 -0
- data/lib/dokkit/projects/website/doc/pages/index.thtml +12 -0
- data/lib/dokkit/projects/website/doc/res/images/rote-tiny.png +0 -0
- data/lib/dokkit/projects/website/html/deplate.html +21 -0
- data/lib/dokkit/projects/website/html/images/rote-tiny.png +0 -0
- data/lib/dokkit/projects/website/html/index.html +37 -0
- data/lib/dokkit.rb +71 -0
- data/tests/gem_tests.rb +4 -0
- data/tests/test_filters.rb +46 -0
- metadata +177 -0
data/lib/dokkit/page.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
# Dokkit page class
|
2
|
+
# (c)2006 Andrea Fazzi (and contributors)
|
3
|
+
#
|
4
|
+
# See 'dokkit.rb' or LICENSE for licence information.
|
5
|
+
|
6
|
+
require 'yaml'
|
7
|
+
|
8
|
+
module DokkitPage
|
9
|
+
|
10
|
+
# The base path for config resolution
|
11
|
+
attr_reader :config_path
|
12
|
+
|
13
|
+
def config(fn)
|
14
|
+
@config_files << fn if fn
|
15
|
+
end
|
16
|
+
|
17
|
+
def load_configs
|
18
|
+
@config_files.each do |fn|
|
19
|
+
load_config(fn)
|
20
|
+
end
|
21
|
+
@config
|
22
|
+
end
|
23
|
+
|
24
|
+
def load_config(fn)
|
25
|
+
if fn = config_fn(fn)
|
26
|
+
raise "Config #{fn} not found" unless File.exists?(fn)
|
27
|
+
Rake.register_dependency(fn)
|
28
|
+
@config.update YAML::load( File.open(fn) )
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def config_fn(fn)
|
33
|
+
File.join(config_path,fn) if fn
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
module Rote
|
39
|
+
|
40
|
+
class Page
|
41
|
+
|
42
|
+
include DokkitPage
|
43
|
+
alias page_initialize initialize
|
44
|
+
|
45
|
+
def initialize(template_name, pages_dir = '.', layout_dir = pages_dir, config_dir = pages_dir, &block)
|
46
|
+
@config_files = []
|
47
|
+
@config = {}
|
48
|
+
@config_path = config_dir[STRIP_SLASHES,1]
|
49
|
+
page_initialize(template_name, pages_dir, layout_dir, &block)
|
50
|
+
@config = load_configs
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
This is the auto-generated Rote documentation source.
|
2
|
+
|
3
|
+
To render it using Rote's command-line wrapper (ignoring the included
|
4
|
+
Rakefile), type:
|
5
|
+
|
6
|
+
rote doc
|
7
|
+
|
8
|
+
from the top-level directory (this one).
|
9
|
+
|
10
|
+
To render using the included Rakefile (the result is the same in either
|
11
|
+
case) type instead:
|
12
|
+
|
13
|
+
rake doc
|
14
|
+
|
15
|
+
If you prefer, you can omit the 'doc' task, since it is configured
|
16
|
+
as the default.
|
17
|
+
|
18
|
+
In either case, you should see some output as the pages are rendered
|
19
|
+
and resources copied, and get output in a (created) 'html' directory.
|
20
|
+
Once you have rendered the site, running the command again will appear
|
21
|
+
to do nothing, because only changed resources are re-rendered. To
|
22
|
+
start over:
|
23
|
+
|
24
|
+
(rote|rake) clobber
|
25
|
+
|
26
|
+
Alternatively, modify the page or resource files, and rerun the first
|
27
|
+
command to transform only the modified resource.
|
28
|
+
|
29
|
+
WHAT NEXT?
|
30
|
+
|
31
|
+
+ See what else you can do by typing:
|
32
|
+
|
33
|
+
(rote|rake) --tasks
|
34
|
+
|
35
|
+
rote --usage ( with the command-line wrapper )
|
36
|
+
|
37
|
+
+ Modify the included page template and layout to suit your needs.
|
38
|
+
|
39
|
+
+ Edit the included Rakefile to add or change tasks, or delete it
|
40
|
+
if you're sticking with the command-line wrapper.
|
41
|
+
|
42
|
+
+ Add more pages and layouts.
|
43
|
+
|
44
|
+
+ Start Rote in monitor mode, and have your changes rendered as
|
45
|
+
you work:
|
46
|
+
|
47
|
+
(rote|rake) doc_monitor
|
48
|
+
|
49
|
+
|
@@ -0,0 +1,100 @@
|
|
1
|
+
# Standard Rakefile for dokkit documentation build
|
2
|
+
#
|
3
|
+
#
|
4
|
+
begin
|
5
|
+
require 'rubygems'
|
6
|
+
rescue LoadError
|
7
|
+
nil # optional
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'rake'
|
11
|
+
require 'rake/clean'
|
12
|
+
require 'rote/format'
|
13
|
+
require 'dokkit'
|
14
|
+
require 'dokkit/filters'
|
15
|
+
require 'lib/invoice'
|
16
|
+
|
17
|
+
include Rote
|
18
|
+
include Dokkit
|
19
|
+
|
20
|
+
CMD_LATEX = "latex -interaction=batchmode"
|
21
|
+
CMD_BIBTEX = "bibtex"
|
22
|
+
|
23
|
+
# Check if bibliography exists.
|
24
|
+
|
25
|
+
def bib_exists?
|
26
|
+
if Dir["*.bib"].empty?
|
27
|
+
false
|
28
|
+
else
|
29
|
+
true
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# Create a set of tasks with the prefix 'doc' to build the
|
34
|
+
# documentation set. The directory layout is as for the
|
35
|
+
# command-line wrapper (but can be changed of course).
|
36
|
+
#
|
37
|
+
# This creates the following tasks:
|
38
|
+
#
|
39
|
+
# * doc - transform/copy all modified pages / resources
|
40
|
+
# * doc_pages - transform all modified pages
|
41
|
+
# * doc_res - copy all modified resources
|
42
|
+
# * doc_monitor - Start monitor mode, transform changed files automatically
|
43
|
+
#
|
44
|
+
# * [html/**/*] - Transform single page / resource unconditionally
|
45
|
+
#
|
46
|
+
# * clobber_doc - Remove output (hooks into main 'clobber' task)
|
47
|
+
#
|
48
|
+
# In addition to these tasks, you may also wish to define a 'doc_refresh' task
|
49
|
+
# to be run whenever modified resources are processed in monitor mode.
|
50
|
+
|
51
|
+
doc = Rote::DocTask.new(:doc) do |invoice|
|
52
|
+
invoice.output_dir = 'tex'
|
53
|
+
invoice.layout_dir = 'doc/layouts'
|
54
|
+
invoice.config_dir = 'doc/config'
|
55
|
+
|
56
|
+
invoice.pages.dir = 'doc/pages'
|
57
|
+
invoice.pages.include('**/*.yaml*')
|
58
|
+
invoice.pages.exclude('**/*.yaml')
|
59
|
+
|
60
|
+
invoice.res.dir = 'doc/res/tex'
|
61
|
+
invoice.res.include('**/*')
|
62
|
+
|
63
|
+
invoice.ext_mapping(/yamltex/, 'tex') do |page|
|
64
|
+
page.page_filter Dokkit::Filters::Deplate.new('latex-notemplate')
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
doc_dvi = Rote::DocTask.new(:doc_dvi) do |site|
|
70
|
+
|
71
|
+
site.output_dir = 'tex'
|
72
|
+
site.pages.dir = 'doc/pages'
|
73
|
+
end
|
74
|
+
|
75
|
+
task :doc_dvi => [:doc] do
|
76
|
+
pwd = Dir.getwd
|
77
|
+
Dir.chdir(doc_dvi.output_dir)
|
78
|
+
Dir["*.tex"].each { |file| 2.times { sh "#{CMD_LATEX} #{file}" } }
|
79
|
+
|
80
|
+
if bib_exists? then
|
81
|
+
Dir["*.aux"].each do |file|
|
82
|
+
if File.exists?(File.basename(file).sub(/.aux$/,".bib"))
|
83
|
+
sh "#{CMD_BIBTEX} #{file}"
|
84
|
+
2.times { sh "#{CMD_LATEX} #{File.basename(file).sub(/.aux$/,".tex")}" }
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
Dir.chdir(pwd)
|
90
|
+
end
|
91
|
+
|
92
|
+
task :default => [:doc]
|
93
|
+
|
94
|
+
# import user-level tasks
|
95
|
+
#import "#{ENV['HOME']}/.rotetasks.rf" if File.exists?("#{ENV['HOME']}/.rotetasks.rf")
|
96
|
+
#import 'local.rf' if File.exists?('local.rf')
|
97
|
+
|
98
|
+
# TODO Define your custom tasks here
|
99
|
+
|
100
|
+
|
@@ -0,0 +1,90 @@
|
|
1
|
+
\documentclass[a4paper,10pt]{article}
|
2
|
+
|
3
|
+
\input{include/packages.inc}
|
4
|
+
|
5
|
+
\usepackage{include/deplate}
|
6
|
+
|
7
|
+
\newcommand{\layout}[1][]{
|
8
|
+
\geometry{
|
9
|
+
left=2cm,
|
10
|
+
right=2cm,
|
11
|
+
top=2cm,
|
12
|
+
bottom=1.7cm,
|
13
|
+
headheight=1cm,
|
14
|
+
headsep=1cm,
|
15
|
+
footskip=1cm,
|
16
|
+
includeheadfoot}
|
17
|
+
\pagestyle{fancy}
|
18
|
+
\fancyhead{}
|
19
|
+
\fancyfoot{}
|
20
|
+
\lhead{\includegraphics[height=1cm]{images/logo.eps}}
|
21
|
+
\rhead{\fontfamily{cmss}\large\textbf{#1}\vspace*{\stretch{1}}\normalsize}
|
22
|
+
\lfoot{
|
23
|
+
\fontfamily{cmss}\scriptsize\textbf{<%= @config['company']['name'] %>} $\star$ \textbf{Indirizzo} <%= @config['company']['address'] %> $\star$ \textbf{P.IVA} <%= @config['company']['vat_number'] %>\\ \textbf{E-mail} <%= @config['company']['email'] %> $\star$ \textbf{Web} <%= @config['company']['website'] %> \normalsize
|
24
|
+
}
|
25
|
+
\rfoot{
|
26
|
+
\fontfamily{cmss}\textit{pag. \thepage\ / \pageref{LastPage}}
|
27
|
+
}
|
28
|
+
\renewcommand{\footrulewidth}{0.4pt}
|
29
|
+
}
|
30
|
+
|
31
|
+
\newcommand{\destinatario}[1]{\noindent\begin{flushright}\begin{minipage}{7cm}\textbf{Destinatario}\\\rule{\textwidth}{0.1mm}\\{#1}\end{minipage}\end{flushright}}
|
32
|
+
|
33
|
+
\layout[Fattura n. <%= @id %> del <%= @date %>]
|
34
|
+
|
35
|
+
\sffamily
|
36
|
+
\parindent=0pt
|
37
|
+
|
38
|
+
\begin{document}
|
39
|
+
|
40
|
+
|
41
|
+
\destinatario{
|
42
|
+
\textbf{<%= @config['customer']['name'] %>} \\
|
43
|
+
<%= @config['customer']['address'] %> \\
|
44
|
+
P.Iva: \textbf{<%= @config['customer']['vat_number'] %>}
|
45
|
+
}
|
46
|
+
|
47
|
+
|
48
|
+
\vspace*{2cm}
|
49
|
+
|
50
|
+
\noindent
|
51
|
+
\begin{longtable}{@{\extracolsep{\fill}}m{5cm}crr}
|
52
|
+
\textbf{Descrizione} & \textbf{Qu.} & \textbf{Importo unit.(\euro)} & \textbf{Importo tot.(\euro)} \\
|
53
|
+
\hline
|
54
|
+
\endhead
|
55
|
+
% Inserire qui i dati del preventivo
|
56
|
+
<%= @content_for_layout %>
|
57
|
+
& & \small Imponibile & \small \euro<%= @basic_price %> \\
|
58
|
+
& & \small IVA <%= @vat %>\% & \small \euro<%= @vat_price %> \\
|
59
|
+
& & \small\textbf{Totale Fattura} & \small\textbf{\euro<%= @total_price %>} \\
|
60
|
+
\end{longtable}
|
61
|
+
\normalsize
|
62
|
+
|
63
|
+
\footnotesize
|
64
|
+
\noindent
|
65
|
+
\textbf{Note}\\
|
66
|
+
Si prega di effettuare il pagamento a mezzo bonifico bancario intestato ad \textit{<%= @config['company']['name'] %>} usando le coordinate bancarie indicate di seguito:\\
|
67
|
+
|
68
|
+
%\begin{center}
|
69
|
+
\noindent
|
70
|
+
%\begin{tabular*}{0.92\textwidth}{ccccc}
|
71
|
+
%\textbf{Banca} & \textbf{ABI} & \textbf{CAB} & \textbf{CIN} & \textbf{C/C} \\
|
72
|
+
%\hline
|
73
|
+
\textbf{Banca:} <%= @config['company']['bank_name'] %> \\
|
74
|
+
\textbf{ABI:} <%= @config['company']['bank_abi'] %> \\
|
75
|
+
\textbf{CAB:} <%= @config['company']['bank_cab'] %> \\
|
76
|
+
\textbf{CIN:} <%= @config['company']['bank_cin'] %> \\
|
77
|
+
\textbf{C/C:} <%= @config['company']['bank_current_account'] %> \\
|
78
|
+
%\hline
|
79
|
+
%\end{tabular*}
|
80
|
+
%\end{center}
|
81
|
+
|
82
|
+
\noindent
|
83
|
+
(Indicare nella causale la ragione sociale e il numero di fattura. Se possibile, inviare via-fax o via-email la ricevuta del bonifico).
|
84
|
+
\normalsize
|
85
|
+
|
86
|
+
\vspace*{2cm}
|
87
|
+
|
88
|
+
Cogliamo l'occasione per porgere cordiali saluti.
|
89
|
+
|
90
|
+
\end{document}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Shared code for all pages below this directory.
|
2
|
+
#
|
3
|
+
# This is executed for every file transformed, in the binding of
|
4
|
+
# the appropriate Rote::Page instance. Individual page sources
|
5
|
+
# ([pagename].rb) override anything defined here.
|
6
|
+
#
|
7
|
+
# Any COMMON.rb files found in directories above this will also
|
8
|
+
# be loaded.
|
9
|
+
|
10
|
+
|
11
|
+
# Apply the 'report' layout to all project's document
|
12
|
+
layout 'invoice.dpltex'
|
@@ -0,0 +1,46 @@
|
|
1
|
+
newcommand{customListPrefs}{setlength{parsep}{0cm}setlength{itemsep}{0cm}}
|
2
|
+
newenvironment{customList}{begin{list}{}{customListPrefs{}}}{end{list}}
|
3
|
+
newcommand{customItem}[2]{item[#1] #2}
|
4
|
+
|
5
|
+
newenvironment{tasklist}{begin{list}{}{customListPrefs{}}}{end{list}}
|
6
|
+
newcommand{task}[2]{item[textbf{#1}] #2}
|
7
|
+
|
8
|
+
definecolor{taskA}{rgb}{1,.5,.5}
|
9
|
+
definecolor{taskB}{rgb}{.5,1,.5}
|
10
|
+
definecolor{taskC}{rgb}{.5,.5,1}
|
11
|
+
definecolor{taskD}{rgb}{.5,1,1}
|
12
|
+
definecolor{taskE}{rgb}{1,.5,1}
|
13
|
+
definecolor{taskF}{rgb}{1,1,.5}
|
14
|
+
definecolor{taskdone}{rgb}{.5,.5,.5}
|
15
|
+
|
16
|
+
newcommand{taskdone}[1]{{footnotesizetextcolor{taskdone}{#1}}}
|
17
|
+
newcommand{taskA}[1]{colorbox{taskA}{#1}}
|
18
|
+
newcommand{taskB}[1]{colorbox{taskB}{#1}}
|
19
|
+
newcommand{taskC}[1]{colorbox{taskC}{#1}}
|
20
|
+
newcommand{taskD}[1]{colorbox{taskD}{#1}}
|
21
|
+
newcommand{taskE}[1]{colorbox{taskE}{#1}}
|
22
|
+
newcommand{taskF}[1]{colorbox{taskF}{#1}}
|
23
|
+
|
24
|
+
newcommand{emphStyle}{em}
|
25
|
+
newcommand{emphSpan}[1]{emph{#1}}
|
26
|
+
newcommand{boldSpan}[1]{textbf{#1}}
|
27
|
+
newcommand{remoteSpan}[1]{#1}
|
28
|
+
|
29
|
+
newenvironment{overlayBlock}{}{}
|
30
|
+
newenvironment{scriptsizeBlock}{scriptsize{}}{}
|
31
|
+
newenvironment{boxBlock}{}{}
|
32
|
+
newenvironment{footnotesizeBlock}{footnotesize{}}{}
|
33
|
+
newenvironment{smallBlock}{small{}}{}
|
34
|
+
newenvironment{landscapeBlock}{}{}
|
35
|
+
newenvironment{gridBlock}{}{}
|
36
|
+
newenvironment{formalBlock}{}{}
|
37
|
+
|
38
|
+
newenvironment{todoBlock}{}{}
|
39
|
+
|
40
|
+
newenvironment{bookBlock}{}{}
|
41
|
+
newenvironment{booksList}{begin{list}{}{customListPrefs{}}}{end{list}}
|
42
|
+
newcommand{booksItem}[2]{item[textbf{#1}] #2}
|
43
|
+
|
44
|
+
newenvironment{exampleBlock}{bfseries{}}{}
|
45
|
+
newenvironment{examplesList}{begin{list}{}{customListPrefs{}}}{end{list}}
|
46
|
+
newcommand{examplesItem}[2]{item[#1] #2}
|
@@ -0,0 +1,209 @@
|
|
1
|
+
%!PS-Adobe-3.0 EPSF-3.0
|
2
|
+
%%Creator: GIMP PostScript file plugin V 1,17 by Peter Kirchgessner
|
3
|
+
%%Title: logo_ufficiale.eps
|
4
|
+
%%CreationDate: Sat Jan 7 18:00:35 2006
|
5
|
+
%%DocumentData: Clean7Bit
|
6
|
+
%%LanguageLevel: 2
|
7
|
+
%%Pages: 1
|
8
|
+
%%BoundingBox: 14 14 94 43
|
9
|
+
%%EndComments
|
10
|
+
%%BeginProlog
|
11
|
+
% Use own dictionary to avoid conflicts
|
12
|
+
10 dict begin
|
13
|
+
%%EndProlog
|
14
|
+
%%Page: 1 1
|
15
|
+
% Translate for offset
|
16
|
+
14.173228346456694 14.173228346456694 translate
|
17
|
+
% Translate to begin of first scanline
|
18
|
+
0 28.346456692913389 translate
|
19
|
+
78.910406469461591 -28.346456692913389 scale
|
20
|
+
% Image geometry
|
21
|
+
103 37 8
|
22
|
+
% Transformation matrix
|
23
|
+
[ 103 0 0 37 0 0 ]
|
24
|
+
% Strings to hold RGB-samples per scanline
|
25
|
+
/rstr 103 string def
|
26
|
+
/gstr 103 string def
|
27
|
+
/bstr 103 string def
|
28
|
+
{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
|
29
|
+
{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
|
30
|
+
{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
|
31
|
+
true 3
|
32
|
+
%%BeginData: 7676 ASCII Bytes
|
33
|
+
colorimage
|
34
|
+
o)Ajlq""1WY5a"~>
|
35
|
+
o)Ajik0W,\Y5a"~>
|
36
|
+
o)AjghSRt:Y5a"~>
|
37
|
+
pAYR!jkSM=f\+s0f%/pYZN#F~>
|
38
|
+
pAYQpU4RN'FaeUUD/5d1ZN#F~>
|
39
|
+
pAYQlH;-=C-n[)%.PQ#,ZN#F~>
|
40
|
+
q#:otgt1HDj5T(Wi8<GKg=+UG[/YX~>
|
41
|
+
q#:oWJT-^CSXc.9Q'7;hIq<?M[/YX~>
|
42
|
+
q#:oH9e8S'8Oc'33]/TA+VcTT[/YX~>
|
43
|
+
qYpWqhqJ"h%--@,iS`VMh;$`5h#"P[J,~>
|
44
|
+
qYq9*Mh%OsUS=HSSXZ"3P)kQYK4f`)[f:j~>
|
45
|
+
qYq9'><>b_<)QLc845['1bU:&)\u'4[f:j~>
|
46
|
+
qu6`kf&?Pg%c,OYdG!R;hqm2EgY('K\,Us~>
|
47
|
+
qu7GfDj7,sVl$;F>utB^Q^!VmMhct4@,&0jJ,~>
|
48
|
+
qu7GW1.teT>?Y,t0/5":4ub;K-6F*;)U,\jJ,~>
|
49
|
+
r;RW(f&YuUjkeP(c1]]$^YIc)hVHuAg=asB\Gq'~>
|
50
|
+
r;RVZCo+,2Ukrn49AjFr)MaWBO,SmKJUCk>\Gq'~>
|
51
|
+
r;RVG/m2Lh?;<Ws7,MD[%6?R.0.8"`'FkeK\Gq'~>
|
52
|
+
rVlomf`("5d/L][^Y6X*]aE3Hi8<DIgXOd*j1,,>~>
|
53
|
+
rVm8bEi?";=VMM_)ga.8'+807P`^r^L2(RFRf9ktJ,~>
|
54
|
+
rVm&P2-aR"2#[g`&p>Q"$4A@J3&)m.*>g1^F8i`MJ,~>
|
55
|
+
rr30!fB)/Xc2PBV^AGSKd,Ep?hVHcR[Jta~>
|
56
|
+
rr3;qDPO569+qsR)#FsO=dbP<Nf%c'[Jta~>
|
57
|
+
rr3;k10@ss/IDgm%JpJ;.6opM/0u^Z[Jta~>
|
58
|
+
rr3tjj6#Ogh!!e`l/]mu]tD).iS`VMgsF[-f[\mY])R9~>
|
59
|
+
rr3s]T;ersKs-rP[%9/h'+bpgR[0+tLfJDEF`!$5])R9~>
|
60
|
+
rr3s(;dX*O;fQ>jF(-7!$4%"l69@"U,oA=.2CVc(])R9~>
|
61
|
+
s8O,,gZI\_l0@R"lg!`n`PB+!eDfHEhV?l?g=b*/ft.36~>
|
62
|
+
s8O+RKVtlRZF.3Q\@/`00HLc=BptBPO+i:@J:)W_H+O$+~>
|
63
|
+
s8O+84^;H1DfpASI!B[:)\<8^0ge&\/gVSW&dngD4M(QC~>
|
64
|
+
s8O"hjlYail0@U$m-Es!^qIFscf3p@hVHuAg=cJWqYpTm2uY?.L\^rM>lH8Sg[tLKm]VFT2>\p)
|
65
|
+
V#()kT`-JC0(8Z:J,~>
|
66
|
+
s8O*ZUo:B!Za[NY]=>8G*>9),;k',;O,SmJJ:)WdE;KS8qD\C)!/LCM!*oLS!8I/G"R`IL@5[p5
|
67
|
+
!2TJk!20<B!A<j;s*t~>
|
68
|
+
s8O)u<aB6OEd<.eJUDTQ&./aT-q$3V0.7q\&dngC/c,JJqD\C)!/LCM!*oLS!8I/G"R`IL@5[p5
|
69
|
+
!2TJk!20<B!A<j;s*t~>
|
70
|
+
+91``jlYail0I^'m-Erf]tM2<eDfHEhVHuAg=b*/g%t^KVYpJq'_hJ(!':)Z!7UZA!rdfWpAb2U
|
71
|
+
qu6]r/,]GJM>I7&~>
|
72
|
+
+90*-V5^Q#[(*c`]t(Of',)=IAso!LO,JgIJ:)T`H2@O@VYpJq'_hJ(!':)Z!7UZA!rdfWpAb2U
|
73
|
+
qu6]r/,]GJM>I7&~>
|
74
|
+
+9/#p='fHSFF/UrKRJ#3$47870ge)^/ghbZ&dngD4o50YVYpJq'_hJ(!':)Z!7UZA!rdfWpAb2U
|
75
|
+
qu6]r/,]GJM>I7&~>
|
76
|
+
+91-VjlYail0@U$lg*]L]tN%Yj5T"ShVHuAg=Y$+p\Omi4T#0ZTDJQf3rT*Ze+`kCr_N1e!0R0Y
|
77
|
+
!5A@2!?h=;s*t~>
|
78
|
+
+9-qaV5^Q#[(!WZ]==ja',,J^Sskt/O,JdHJ:)TNiVNQS4T#0ZTDJQf3rT*Ze+`kCr_N1e!0R0Y
|
79
|
+
!5A@2!?h=;s*t~>
|
80
|
+
+9,25='fHSF*`@hJ9u,H$48pn8jb]u/ghbZ&IJUOeGB1F4T#0ZTDJQf3rT*Ze+`kCr_N1e!0R0Y
|
81
|
+
!5A@2!?h=;s*t~>
|
82
|
+
#liW>jlYail0A96''dfV]trgkj5JqRhVHuAg"=m6qYpQBqZ$UQqYpOVrVurIp\t5Qr;Zm.:lY@<
|
83
|
+
!7LcE!)rap!3lA#J,~>
|
84
|
+
*rgJYUo:AuZF.3Q\@,EO'-a9HSXPk-Nf/[FIsZ6tqYpQBqZ$UQqYpOVrVurIp\t5Qr;Zm.:lY@<
|
85
|
+
!7LcE!)rap!3lA#J,~>
|
86
|
+
*reE"<aB6NE-?PTHZh7R$5-E:8O>Kq/LDPV&.&GMqYpQBqZ$UQqYpOVrVurIp\t5Qr;Zm.:lY@<
|
87
|
+
!7LcE!)rap!3lA#J,~>
|
88
|
+
#lWB8jQ5Oekir*3!94!k%`[Siio/hQhVHu@g"=mQqYp\0!!!d;rVur=qu6XWrVurIq#:Bg&cMb2
|
89
|
+
,M2Pe#ic$f!,Vc;!(?_aJ,~>
|
90
|
+
*r0iLUSk,oYd:aF[$_UA'/QDVS=#S(NJ`IBIsZ##qYp\0!!!d;rVur=qu6XWrVurIq#:Bg&cMb2
|
91
|
+
,M2Pe#ic$f!,Vc;!(?_aJ,~>
|
92
|
+
*qq<_<*NdDD/jZ@FC5I`$6)r=7mK'i.jQ,N%gXKHqYp\0!!!d;rVur=qu6XWrVurIq#:Bg&cMb2
|
93
|
+
,M2Pe#ic$f!,Vc;!(?_aJ,~>
|
94
|
+
%/&<6jQ5Oekih9qkf`t=%E@Jhio/hQh;$c=g",*Xrrqfu!!%#UrVuq&qu6XWrVurIq#:>lr;Zi8
|
95
|
+
o)B#E!!!2e70!;gfDPZ!~>
|
96
|
+
%,6'"U8=fhY->1:Yt4j-%5X`MS!TA$N/<7>IWL\Krrqfu!!%#UrVuq&qu6XWrVurIq#:>lr;Zi8
|
97
|
+
o)B#E!!!2e70!;gfDPZ!~>
|
98
|
+
%*L7r;HR78BP_R)DCb\n%3&/:6p3I_.3]]F%1$PArrqfu!!%#UrVuq&qu6XWrVurIq#:>lr;Zi8
|
99
|
+
o)B#E!!!2e70!;gfDPZ!~>
|
100
|
+
#41+(j5f=aroX=GiVgG!`8fk9i8<DIgtUQ9e,B.C!07$Y#1<Dt!!!8fr;QaXrVurIq#:>?rVusI
|
101
|
+
rq$-oq%s)3:B.<m!!$j5s*t~>
|
102
|
+
%(h._TVJB`X0&P-QkfT6%5+<DR?j"sMhct9I:`-KrrA)Y!!^jM-NF,OkktG\3rT*Ze+iqCHN!mF
|
103
|
+
./ri<#5K)9!)EQnrVuq7r;V9~>
|
104
|
+
%%K+F:/kD'@V0:e>7:E;%2_f05rphS-Qj9>$Q8R4rrA)Y!!^jM-NF,OkktG\3rT*Ze+iqCHN!mF
|
105
|
+
./ri<#5K)9!)EQnrVuq7r;V9~>
|
106
|
+
#3F_$j5f:_rT4+-rOiW^j5T%Uhqm2Eg=b-4qYpg!,ldp#s8RuU!!%ZLrr>+Z!!(LCrr?:&!!$^'
|
107
|
+
rrAqq!!f\,p_3].%eBSuJ,~>
|
108
|
+
$_rZMStVsWW2Zes?MtNG6(OI2P`Ul^L4au%Hi!aIr?VFD1B7B3rVuqNr;QaXrVurIq#:=urVuq3
|
109
|
+
o)A]erW!2+s7d9.!"SSus*t~>
|
110
|
+
$[t'(92JVk?!h#K2>mjj+A"p`2_cd-*>]7n6i-ffr?VFD1B7B3rVuqNr;QaXrVurIq#:=urVuq3
|
111
|
+
o)A]erW!2+s7d9.!"SSus*t~>
|
112
|
+
#3=Y"ioB+\rT+$urk/cUh;[DOhqm2EgY1?3l2(D[\,H@5P5kRG"TSNBqu-Np3rT*Ze+iqC48o3[
|
113
|
+
J+EUE3rf6qq>^J7rVuq_rVqB~>
|
114
|
+
$_<9FS=cLMV5C/g0E)Uo*/L)OQ'.2dLkL>-Dm9*<!4Vq-#a55fkQLqd*;f^7!':)Z!7U`C!'C/[
|
115
|
+
!.XS>#<Mnc(&@n0EW,q<Pl:W4~>
|
116
|
+
$[+Hp7nZZX='8^2)?'sP%R3?G3AW67+W;%(#a"o_!4Vq-#a55fkQLqd*;f^7!':)Z!7U`C!'C/[
|
117
|
+
!.XS>#<Mnc(&@n0EW,q<Pl:W4~>
|
118
|
+
#41+'iSrnXro=(;rk/fUh;[DOhqm2EgtUN7eb].B"AJjr#42?h!)idr!3?(u!':)Z!7U`C!$(t<
|
119
|
+
!1!0U!71WE!,ql:!7^uJ!@e$Is*t~>
|
120
|
+
$FtYQR[ftBTqeBJrY#bYM49ltPE:`[L4au'DX@6""AJjr#42?h!)idr!3?(u!':)Z!7U`C!$(t<
|
121
|
+
!1!0U!71WE!,ql:!7^uJ!@e$Is*t~>
|
122
|
+
$C`S06:ORB;,^FgrX',D5=@^s2(pC'*>]:p+m/Y$"AJjr#42?h!)idr!3?(u!':)Z!7U`C!$(t<
|
123
|
+
!1!0U!71WE!,ql:!7^uJ!@e$Is*t~>
|
124
|
+
#56[,iSieUro4"1rk/c[a2m2rhqm2EgY1?5fD>LMh?!ZW;uQ^r[Jg.+5Q1T^3rT*Ze+iqC(]FC7
|
125
|
+
Re-OZAGuQ/ci*kD3W9!Y]Dhh\~>
|
126
|
+
$Jf]eQ^O>6StDZtrY#_q2a*FiOH#-QKRnPtE;KS;h?!ZW;uQ^r[Jg.+5Q1T^3rT*Ze+iqC(]FC7
|
127
|
+
Re-OZAGuQ/ci*kD3W9!Y]Dhh\~>
|
128
|
+
$I'bS4[DM-8k_r=rX')N)&bOn0InFk)&!Ga0`(ePh?!ZW;uQ^r[Jg.+5Q1T^3rT*Ze+iqC(]FC7
|
129
|
+
Re-OZAGuQ/ci*kD3W9!Y]Dhh\~>
|
130
|
+
#6*-0i8ESQro*q)r4NKYhr!;HgtUQ9f[njRrr@6A!!")=2ZP]5!!(IHrr>:_!!(@?rr=PJ!!%WC
|
131
|
+
rrh`s!!!)u2ZO`p!!#gos*t~>
|
132
|
+
$N4Y$Pa7]*S"-!Qr"BGtP)tZ]LkUG1H['i4rr@6A!!")=2ZP]5!!(IHrr>:_!!(@?rr=PJ!!%WC
|
133
|
+
rrh`s!!!)u2ZO`p!!#gos*t~>
|
134
|
+
$Mto%3'9Dl6q0Wqr!EfK1b^F,+WD.,#m3Bfrr@6A!!")=2ZP]5!!(IHrr>:_!!(@?rr=PJ!!%WC
|
135
|
+
rrh`s!!!)u2ZO`p!!#gos*t~>
|
136
|
+
"97!0hu;R5i;h$u]aNKLhVHuAg=k64f&$<(!V[9"!!$X1rr?1#!!'h0rr>Rg!!$[(rrA&N!!<>]
|
137
|
+
s8RT~>
|
138
|
+
$NG(+Ocu&rQ^F.-r=]SRGE7`ALkUG1I!Kdkqu6]k'D)8)B)_f1=T/:#_"dp08,`JgBCu3(NV!2Q
|
139
|
+
"5s4ZJ,~>
|
140
|
+
$ND_21,_-T5!M:Qr!Ef]0.S@m*#9+o"Thd&rrMj-oDel'rr2t#rVur6q#:=arVuq2o`"oNoDesq
|
141
|
+
i;`h-~>
|
142
|
+
"9765hYuF3huL^o]aW*@h;-l@gY1?5f@AsZrrA\_!!E\us8R3?!!'"nrr@iR!!*r3pAY0l,kD!;
|
143
|
+
GQ7\n~>
|
144
|
+
$NGm;Nf]EfPa.Lbr=]T1Nf8jOKnFo(H?X;#qu6Ygo)Jn$n,NE0rVuqtq#:>LrVus9q"F^gr?Ut7
|
145
|
+
!dF\EJ,~>
|
146
|
+
$NF0T/MJt<2`Nf2r<`rO/L_th*#B4r#6=pMqu6Ygo)Jn$n,NE0rVuqtq#:>LrVus9q"F^gr?Ut7
|
147
|
+
!dF\EJ,~>
|
148
|
+
"98&Fh>Z:1hZ1Ik]`?%Nh$Mlkg=k64f@SO;qu6XQrVuq1qIopUrW!%\s8S5\!!,Cbq>UKL!WE'!
|
149
|
+
EVBD4\,H@-/c'/]>Q+U('_hWX~>
|
150
|
+
$NJh!MiEaYOHGYHrY#_pM2R4GKnFo(H['aLZhsb&2#[ITB)63A-2mlHNrT-ArVusbrqZQpg&_0Q
|
151
|
+
!-.`4!4Vq-!%n%]!*fF&!YkD/J,~>
|
152
|
+
$NJ9l-Rp]$0etKnrX')I.46>^)]'+r#Qb#0Oo,.Y2#[ITB)63A-2mlHNrT-ArVusbrqZQpg&_0Q
|
153
|
+
!-.`4!4Vq-!%n%]!*fF&!YkD/J,~>
|
154
|
+
s8N,Ph#?./h@.66]trIZgt^Z<g=b-Xf)aCgr;Qc<rVupUq>UGfrW!'HrVu$krW!$GXk*.Co`G-m
|
155
|
+
=oA=%7@)!kbQ@&/9`>"lZ24J$rZqIC!MBCB~>
|
156
|
+
s8NsXLPh"KNK&r@',)XDM26n>Jq/8rG^"@E^\n*3aSl/>2>R7PT`+oo,lRc+&,lP2,d#YirUg6k
|
157
|
+
s&o:#!_&Eqqof-+s%NCl!3uD#!WFAD!!/_lJ,~>
|
158
|
+
s8Nrr+XAEa.P!%[$477g,U"0H((gu]!s&E*TD\]haSl/>2>R7PT`+oo,lRc+&,lP2,d#YirUg6k
|
159
|
+
s&o:#!_&Eqqof-+s%NCl!3uD#!WFAD!!/_lJ,~>
|
160
|
+
s8N,ieGe8&h$_'4]uJj_gY:H8g"?8T!S$B3rr?@(!!&5YrrMa$rW!&/s8S/R!!D?_koo^"#*IaD
|
161
|
+
!!!c1q>UGKrVusTs*t~>
|
162
|
+
s8NeXC57V%M2I08',*9ZL4t82IslWfrc\BYZMa_&?2ag(PPP4ZoF:d""1J70O7iPUjo=Qgo`,2Y
|
163
|
+
h?!ZW(&Ib+!/:CP!Ajb+~>
|
164
|
+
s8NeB'cnJA,UF`H$47@f*?#_.&.AdGrW*$%OSo+Y?2ag(PPP4ZoF:d""1J70O7iPUjo=Qgo`,2Y
|
165
|
+
h?!ZW(&Ib+!/:CP!Ajb+~>
|
166
|
+
rr3)Tg"Y9\g^:p3]t`=Vg=k64f_j>%e`6W."mQ<m!!_carr?R.!!Q!ps8.9Kp](HYs8V"'p&G,U
|
167
|
+
FoD@@Dts>5irf8\!60N~>
|
168
|
+
rr3RXHA%!,L5.)h',uUWJUi2sHMhsfDk$_*"mQ<m!!_carr?R.!!Q!ps8.9Kp](HYs8V"'p&G,U
|
169
|
+
FoD@@Dts>5irf8\!60N~>
|
170
|
+
rr3U"()e/5*Zbat$4@^f'G1f^"p4`(!<[6<rrqZm!!!5hq#:>(rW!*os8VtG"S_s"jo>A=-2%<>
|
171
|
+
O`gX'!,qZ4!TO:]!!(#h~>
|
172
|
+
rr36%f@\g2gY9XF]`?L[g&K_%f)aIYrVlkQrVupqp\t64rVus#g]%3ThcMZMqZ$WXrVlu/9.'i<
|
173
|
+
!!/#lrVurCp\t4arVuq&J,~>
|
174
|
+
rr36!DL6teK7bWP'*VorIXHKfqf`'_LAh,PL].8R;>:(j`Voi<!o*_S"5d3:(Ae(3jo,2][nA(N
|
175
|
+
q>^PT'E.t3c1h5<8H&Sh>CZ~>
|
176
|
+
rr35t0,#':(DmV\$3_"Q%LWOFqZ-^!:]::nL].8R;>:(j`Voi<!o*_S"5d3:(Ae(3jo,2][nA(N
|
177
|
+
q>^PT'E.t3c1h5<8H&Sh>CZ~>
|
178
|
+
rVm*"eC`I.g;O!(#f+m>f?qphd+&$G!8IJP!:KjK!;#parT4+RqYpQpr8n"Wq>UHXqrRnJrT<hR
|
179
|
+
!:p-O!9o"~>
|
180
|
+
rVlrmB6jK+!&"6a#TdJrG@=TN?#9La!HrqjrrDKdjoG#Hs8D'[pA4dhrqtmYr;$?mkPOBAnGVMC
|
181
|
+
rrDWhjoFXr~>
|
182
|
+
rVm)n,7b=t&IeRE!=/l."9AT+r;cmdrVllcroO4PpAb*R!;?9h!<2oY!;uZm!9a7A!:]sLpAY-`
|
183
|
+
roO4FJ,~>
|
184
|
+
r;QrseCW@*`q@"J`RNMfm'cqE~>
|
185
|
+
r;QrfA9`KL3;!pf0Pu#C]=.`i~>
|
186
|
+
r;QiZ+UR]H":"u/$CeL(J,~>
|
187
|
+
qu6ipeC3$e^@f/B^<-!Fo!eXL~>
|
188
|
+
qu6l^AS639()6HU";a;Oq9c\OJ,~>
|
189
|
+
qu6fP-3jVYo*PR3_thWfs*t~>
|
190
|
+
q>UTR_7d_$oXtIJ^uk@jr:@Q#J,~>
|
191
|
+
q>USR+;6(DoFhE_*2_Zop=6eTJ,~>
|
192
|
+
q>US6%13@IoEkdN'VjRcp!gVRJ,~>
|
193
|
+
rVm$!r;"j[pq6dD`65pn]`l=Jp&Fs[]DmB~>
|
194
|
+
rVm#ro]fs8p_*`H01QoX'*ToHg]-ok]DmB~>
|
195
|
+
rVm#qoBBU)pBgs,"UY)6"XE$\s7=IHs*t~>
|
196
|
+
rVlujl,gsD]b8*%a2ZBPf%AX,d`&r7c/\fhkILVC~>
|
197
|
+
rVluHYWk#D'+u3J2Dn3<Df^)A?nrH59:GdgWk&.[~>
|
198
|
+
rVluFXZ.s3$5*pu()@c2.l'(E:+H__7$dbYVn)hX~>
|
199
|
+
qu6lnlJ^FIkj.sB!S@;LrrMc_\c70~>
|
200
|
+
qu6lTZB]]QXg[s'!H@l6rrLd"\c70~>
|
201
|
+
qu6lSYE<p?WO)<u!G_E/rrL`t\c70~>
|
202
|
+
q#CBnV>l&~>
|
203
|
+
q#:Bmqka=C~>
|
204
|
+
q#:Bmqka=C~>
|
205
|
+
%%EndData
|
206
|
+
showpage
|
207
|
+
%%Trailer
|
208
|
+
end
|
209
|
+
%%EOF
|
@@ -0,0 +1,46 @@
|
|
1
|
+
\newcommand{\customListPrefs}{\setlength{\parsep}{0cm}\setlength{\itemsep}{0cm}}
|
2
|
+
\newenvironment{customList}{\begin{list}{}{\customListPrefs{}}}{\end{list}}
|
3
|
+
\newcommand{\customItem}[2]{\item[#1] #2}
|
4
|
+
|
5
|
+
\newenvironment{tasklist}{\begin{list}{}{\customListPrefs{}}}{\end{list}}
|
6
|
+
\newcommand{\task}[2]{\item[\textbf{#1}] #2}
|
7
|
+
|
8
|
+
\definecolor{taskA}{rgb}{1,.5,.5}
|
9
|
+
\definecolor{taskB}{rgb}{.5,1,.5}
|
10
|
+
\definecolor{taskC}{rgb}{.5,.5,1}
|
11
|
+
\definecolor{taskD}{rgb}{.5,1,1}
|
12
|
+
\definecolor{taskE}{rgb}{1,.5,1}
|
13
|
+
\definecolor{taskF}{rgb}{1,1,.5}
|
14
|
+
\definecolor{taskdone}{rgb}{.5,.5,.5}
|
15
|
+
|
16
|
+
\newcommand{\taskdone}[1]{{\footnotesize\textcolor{taskdone}{#1}}}
|
17
|
+
\newcommand{\taskA}[1]{\colorbox{taskA}{#1}}
|
18
|
+
\newcommand{\taskB}[1]{\colorbox{taskB}{#1}}
|
19
|
+
\newcommand{\taskC}[1]{\colorbox{taskC}{#1}}
|
20
|
+
\newcommand{\taskD}[1]{\colorbox{taskD}{#1}}
|
21
|
+
\newcommand{\taskE}[1]{\colorbox{taskE}{#1}}
|
22
|
+
\newcommand{\taskF}[1]{\colorbox{taskF}{#1}}
|
23
|
+
|
24
|
+
\newcommand{\emphStyle}{\em}
|
25
|
+
\newcommand{\emphSpan}[1]{\emph{#1}}
|
26
|
+
\newcommand{\boldSpan}[1]{\textbf{#1}}
|
27
|
+
\newcommand{\remoteSpan}[1]{#1}
|
28
|
+
|
29
|
+
\newenvironment{overlayBlock}{}{}
|
30
|
+
\newenvironment{scriptsizeBlock}{\scriptsize{}}{}
|
31
|
+
\newenvironment{boxBlock}{}{}
|
32
|
+
\newenvironment{footnotesizeBlock}{\footnotesize{}}{}
|
33
|
+
\newenvironment{smallBlock}{\small{}}{}
|
34
|
+
\newenvironment{landscapeBlock}{}{}
|
35
|
+
\newenvironment{gridBlock}{}{}
|
36
|
+
\newenvironment{formalBlock}{}{}
|
37
|
+
|
38
|
+
\newenvironment{todoBlock}{}{}
|
39
|
+
|
40
|
+
\newenvironment{bookBlock}{}{}
|
41
|
+
\newenvironment{booksList}{\begin{list}{}{\customListPrefs{}}}{\end{list}}
|
42
|
+
\newcommand{\booksItem}[2]{\item[\textbf{#1}] #2}
|
43
|
+
|
44
|
+
\newenvironment{exampleBlock}{\bfseries{}}{}
|
45
|
+
\newenvironment{examplesList}{\begin{list}{}{\customListPrefs{}}}{\end{list}}
|
46
|
+
\newcommand{\examplesItem}[2]{\item[#1] #2}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
% Layout
|
2
|
+
|
3
|
+
\newcommand{\layout}[1][]{
|
4
|
+
\geometry{
|
5
|
+
left=2cm,
|
6
|
+
right=2cm,
|
7
|
+
top=2cm,
|
8
|
+
bottom=1.7cm,
|
9
|
+
headheight=1cm,
|
10
|
+
headsep=1cm,
|
11
|
+
footskip=1cm,
|
12
|
+
includeheadfoot}
|
13
|
+
\pagestyle{fancy}
|
14
|
+
\fancyhead{}
|
15
|
+
\fancyfoot{}
|
16
|
+
\lhead{\includegraphics[height=1cm]{images/logo.eps}}
|
17
|
+
%\chead{}
|
18
|
+
%\rhead{\fontfamily{cmss}\large\textbf{#1}\vspace*{\stretch{1}}\normalsize~\textit{(pag. \thepage\ di \pageref{LastPage})}\vspace*{\stretch{1}}}
|
19
|
+
\rhead{\fontfamily{cmss}\large\textbf{#1}\vspace*{\stretch{1}}\normalsize}
|
20
|
+
%\cfoot{\fontfamily{cmss}\footnotesize\textbf{Company} $\star$ \textbf{Location} $\star$ \textbf{Tel.} \\\textbf{Fax} $\star$ \textbf{e-mail} $\star$ \textbf{web} $\star$ \normalsize}
|
21
|
+
\lfoot{\fontfamily{cmss}\scriptsize\textbf{<%= @company %>} $\star$ \textbf{Location} $\star$ \textbf{Tel.} \\\textbf{Fax} $\star$ \textbf{e-mail} $\star$ \textbf{web} $\star$ \normalsize}
|
22
|
+
\rfoot{\fontfamily{cmss}\textit{pag. \thepage\ / \pageref{LastPage}}}
|
23
|
+
\renewcommand{\footrulewidth}{0.4pt}
|
24
|
+
}
|