dokkit 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
}
|