condom 0.1.1 → 0.2.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.
@@ -1,3 +1,12 @@
1
+ == 0.2.0
2
+
3
+ * Changed files organisation: specific documents now extend a Base class.
4
+ * Added a Presentation class.
5
+ * Added a Letter class.
6
+ * Added a VERSION constant to the lib.
7
+ * Updated the executable.
8
+ * Cleaned the ouput LaTeX code.
9
+
1
10
  == 0.1.1
2
11
 
3
12
  Made the executable prettier (confirmation and help).
@@ -2,18 +2,37 @@
2
2
 
3
3
  A Ruby lib to create a skeleton for a LaTeX document.
4
4
 
5
+ This lib requires that you know the LaTeX language.
6
+
7
+ Its purpose is not to write a whole document for you,
8
+ but to facilitate the preparation of a LaTeX document,
9
+ that is to say to create a set of files to easily start it.
10
+ So you won't have to care about packages to import, configuration, etc.
11
+ The compilation, cleanup and interaction with the sources
12
+ are facilitated by the usage of a Makefile (see the Usage section below).
13
+
14
+ The document types supported for the moment are:
15
+ * Any classic type (article, report, book, ...)
16
+ * Presentation (i.e. a beamer document)
17
+ * Letter
18
+
5
19
  == Installation
6
20
 
21
+ Condom is available on Rubygems.org[http://rubygems.org/gems/condom] and can be installed with:
22
+
7
23
  $ gem install condom
8
24
 
25
+ This command needs Rubygems (rubygems package on Ubuntu).
26
+
9
27
  == Usage
10
28
 
11
- For the usage of the lib, see the documentation (gem server for example).
29
+ === Executable
12
30
 
13
31
  Condom gem provides a condom shell command.
14
32
 
15
33
  $ condom --help
16
34
  Usage: condom [options] [destination]
35
+
17
36
  Available options:
18
37
  -m, --math Math packages
19
38
  -l, --listings Listings package
@@ -25,11 +44,10 @@ Condom gem provides a condom shell command.
25
44
  -t, --title=TITLE Define the title
26
45
  -d, --date=DATE Define the date
27
46
  -c, --class=CLASS Define the document class
47
+ "beamer" for a presentation, "letter" for a letter
28
48
  -L, --language=LANGUAGE Define the language
29
49
  -P, --package=PACKAGE Add another package
30
- -v, --version Print version
31
- destination:
32
- /home/v0n (current directory)
50
+ -v, --version Print Condom version
33
51
 
34
52
  In generated files, there is a Makefile.
35
53
  Just use your document (from the source folder) like below.
@@ -43,6 +61,46 @@ clean sources (remove .out, .toc, etc. files) with:
43
61
  archive the whole document with:
44
62
  $ make archive
45
63
 
64
+ === Lib
65
+
66
+ You can use the lib to create your document (e.g. using IRB).
67
+ Here's a quick overview of its operation.
68
+
69
+ Create a document with:
70
+
71
+ doc = Condom::Document.new
72
+
73
+ or a presentation with:
74
+
75
+ doc = Condom::Presentation.new
76
+
77
+ or a letter with:
78
+
79
+ doc = Condom::Letter.new
80
+
81
+ All constructors of these classes will use default values, but also accept:
82
+ * no argument
83
+ * a String: will be the title of the document
84
+ * a Hash of options. Keys of the options hash should be symbols with the same name than the attributes of the class.
85
+ i.e.:
86
+
87
+ doc = Condom::Document.new(:document_class => "report", :math => true, :outputdir => "here")
88
+
89
+ You can get all options with:
90
+
91
+ doc.get_options
92
+
93
+ All attributes can be accessed by classic methods:
94
+
95
+ doc.title = "My Title"
96
+ doc.title # => "My Title"
97
+
98
+ Then, once your document is ready to be generated, create it with:
99
+
100
+ doc.create
101
+
102
+ This method will generate all files in the outputdir directory.
103
+
46
104
  == Technique
47
105
 
48
106
  The following command:
data/bin/condom CHANGED
@@ -1,5 +1,5 @@
1
- #!/usr/bin/ruby -w
2
1
  # Command line tool for Condom
2
+ # Author: Vivien 'v0n' Didelot.
3
3
 
4
4
  # Add ../lib to the load path
5
5
  #lib_dir = File.join(File.dirname(__FILE__), '..', 'lib')
@@ -7,9 +7,9 @@
7
7
 
8
8
  require 'condom'
9
9
  require 'optparse'
10
- #require 'yaml'
11
10
 
12
- ops = Condom::Document::DEFAULT_OPTIONS
11
+ doc = Condom::Base.new
12
+ ops = doc.get_options
13
13
 
14
14
  ARGV.options do |o|
15
15
  o.banner = "Usage: #{File.basename $0} [options] [destination]\n"
@@ -23,10 +23,11 @@ ARGV.options do |o|
23
23
  o.on("-a", "--author=AUTHOR", String, "Define the author") { |v| ops[:author] = v }
24
24
  o.on("-t", "--title=TITLE", String, "Define the title") { |v| ops[:title] = v }
25
25
  o.on("-d", "--date=DATE", String, "Define the date") { |v| ops[:date] = v }
26
- o.on("-c", "--class=CLASS", String, "Define the document class") { |v| ops[:document_class] = v }
26
+ o.on("-c", "--class=CLASS", String, "Define the document class",
27
+ "\"beamer\" for a presentation, \"letter\" for a letter") { |v| ops[:document_class] = v }
27
28
  o.on("-L", "--language=LANGUAGE", String, "Define the language") { |v| ops[:language] = v }
28
- o.on("-P", "--package=PACKAGE", String, "Add another package") { |v| ops[:packages].push v }
29
- #o.on("-v", "--version", "Print version") { puts "Condom lib: version #{Condom::VERSION}" ; exit }
29
+ o.on("-P", "--package=PACKAGE", String, "Add another package") { |v| ops[:other_packages].push v }
30
+ o.on("-v", "--version", "Print Condom version") { puts "Condom lib: version #{Condom::VERSION}" ; exit }
30
31
  end
31
32
 
32
33
  begin
@@ -58,10 +59,14 @@ begin
58
59
  exit
59
60
  end
60
61
 
61
- doc = Condom::Document.new(ops)
62
+ doc = case ops[:document_class]
63
+ when 'beamer': Condom::Presentation.new
64
+ when 'letter': Condom::Letter.new
65
+ else Condom::Document.new
66
+ end
67
+ doc.set_options(ops)
62
68
  doc.create
63
-
64
- puts "Document created in #{doc.outputdir}."
69
+ puts "Files created in #{doc.outputdir}."
65
70
  rescue => e
66
71
  STDERR.puts "error: #{e}"
67
72
  end
@@ -1,131 +1,26 @@
1
- #!/usr/bin/ruby -w
1
+ require "condom/base"
2
+ require "condom/letter"
3
+ require "condom/document"
4
+ require "condom/presentation"
2
5
 
3
- #TODO Split author with space to get firstname and lastname?
6
+ require "etc"
4
7
 
5
- require 'etc'
6
- require 'erb'
7
- require 'fileutils'
8
-
9
- # The Condom module
10
8
  module Condom
9
+ # Lib version
10
+ VERSION = '0.2.0'
11
+
11
12
  # Constant views directory
12
13
  VIEWS_DIR = File.join(File.expand_path(File.dirname(__FILE__)), 'views')
13
14
 
15
+ module_function
16
+
14
17
  # Function to get the name of the user.
15
- # It will be the name in the /etc/passwd file (on Un*x system)
18
+ # It will be the name in the /etc/passwd file (on Un*x system)
16
19
  # or the system user.
17
- def Condom.get_user_name
20
+ def get_user_name
18
21
  user = Etc.getpwnam(Etc.getlogin)['gecos'].split(',').first
19
22
  user = Etc.getlogin if user.nil?
20
23
 
21
24
  return user
22
25
  end
23
-
24
- # The Document class.
25
- # This is the main class of the condom lib.
26
- class Document
27
- attr_accessor :outputdir,
28
- :listings, :fancyhdr, :graphics, :math, :pdf,
29
- :filename, :author, :title, :date, :document_class, :language,
30
- :packages
31
-
32
- # The default options
33
- DEFAULT_OPTIONS = {
34
- :outputdir => Dir.getwd,
35
- :listings => false,
36
- :fancyhdr => false,
37
- :graphics => false,
38
- :math => false,
39
- :pdf => true,
40
- :filename => 'main',
41
- :author => Condom.get_user_name,
42
- :title => 'Document \LaTeX',
43
- :date => '\today',
44
- :document_class => 'article',
45
- :language => 'francais',
46
- :packages => Array.new
47
- }
48
-
49
- # The constructor.
50
- # Argument could be nothing,
51
- # the title of the document,
52
- # a hash of options.
53
- def initialize(*args)
54
- # Need to initialize each variables else they won't exist in instance_variables.
55
- @outputdir = @listings = @fancyhdr = @graphics = @math = @pdf = @filename = @author = @title = @date = @document_class = @language = @packages = nil
56
-
57
- set_options DEFAULT_OPTIONS
58
-
59
- arg = args.first
60
- if arg.is_a? String
61
- @title = arg
62
- elsif arg.is_a? Hash
63
- set_options arg
64
- end
65
- end
66
-
67
- # This method returns a hash of the options of the document.
68
- def get_options
69
- hash = Hash.new
70
- instance_variables.each do |var|
71
- hash[var[1..-1].to_sym] = instance_variable_get(var)
72
- end
73
-
74
- return hash
75
- end
76
-
77
- # This method sets options of the document given in a hash
78
- def set_options(hash)
79
- hash.keys.each do |key|
80
- var = '@' << key.to_s
81
- raise("Key #{key} not supported.") unless instance_variables.include? var
82
- instance_variable_set(var, hash[key])
83
- end
84
- end
85
-
86
- # This method creates the output directory (if needed)
87
- # and write in it all files needed.
88
- def create
89
- # Verify output
90
- FileUtils.makedirs @outputdir
91
- Dir.chdir @outputdir do
92
- raise("#{@outputdir}: it already exists a main.tex file") if File.exist? "main.tex"
93
- raise("#{@outputdir}: it already exists a Makefile") if File.exist? "Makefile"
94
-
95
- # Create files
96
- if @document_class == "beamer"
97
- build "main_beamer.tex"
98
- else
99
- build "main.tex"
100
- end
101
- build "Makefile"
102
- if @graphics
103
- build "fig.tex"
104
- Dir.mkdir "fig"
105
- end
106
- Dir.mkdir "src" if @listings
107
- Dir.mkdir "inc"
108
- Dir.chdir "inc" do
109
- build "packages.tex"
110
- build "commands.tex"
111
- build "colors.tex"
112
- build "lst-conf.tex" if @listings
113
- build "flyleaf.tex" if @document_class == "report"
114
- end
115
- end
116
- end
117
-
118
- private
119
-
120
- # This fonction writes a file from its template
121
- def build template
122
- file = (template == "main_beamer.tex") ? "main.tex" : template
123
-
124
- erb = File.read(File.join(VIEWS_DIR, template + ".erb"))
125
- content = ERB.new(erb).result(binding)
126
- File.open(file, 'w') do |f|
127
- f.write content
128
- end
129
- end
130
- end
131
26
  end
@@ -0,0 +1,97 @@
1
+ require "fileutils"
2
+ require "erb"
3
+
4
+ #TODO Split author with space to get firstname and lastname?
5
+
6
+ # The Condom module
7
+ module Condom
8
+ # The Base class.
9
+ # This is the main class of the condom lib.
10
+ # It will contain all common attributes and methods to every LaTeX document.
11
+ class Base
12
+ attr_accessor :outputdir, :filename,
13
+ :author, :title, :date, :document_class, :language,
14
+ :other_packages
15
+
16
+ # The constructor.
17
+ # args could be:
18
+ # * nothing,
19
+ # * the title of the document,
20
+ # * a hash of options.
21
+ def initialize(args = nil)
22
+ # Need to initialize each variables else they won't exist in instance_variables.
23
+ @outputdir = @filename = @author = @title = @date = @document_class = @language = @other_packages = nil
24
+
25
+ # The default options
26
+ set_options({
27
+ :outputdir => Dir.getwd,
28
+ :filename => 'main',
29
+ :author => Condom.get_user_name,
30
+ :title => 'Document \LaTeX',
31
+ :date => '\today',
32
+ :document_class => 'article',
33
+ :language => 'francais',
34
+ :other_packages => Array.new
35
+ })
36
+
37
+ if args.is_a? String
38
+ @title = args
39
+ elsif args.is_a? Hash
40
+ set_options args
41
+ end
42
+ end
43
+
44
+ # This method returns a hash of the options of the document.
45
+ def get_options
46
+ hash = Hash.new
47
+ instance_variables.each do |var|
48
+ hash[var[1..-1].to_sym] = instance_variable_get(var)
49
+ end
50
+
51
+ return hash
52
+ end
53
+
54
+ # This method sets options of the document given in a hash
55
+ def set_options(hash)
56
+ hash.keys.each do |key|
57
+ var = '@' << key.to_s
58
+ raise("Key #{key} not supported.") unless instance_variables.include? var
59
+ instance_variable_set(var, hash[key])
60
+ end
61
+ end
62
+
63
+ # This method will create in output directory all needed files.
64
+ def create
65
+ in_outputdir do
66
+ raise("Please use a specific Condom class, not Base.")
67
+ end
68
+ end
69
+
70
+ private
71
+
72
+ # This method creates the output directory (if needed)
73
+ # and execute the block given in parameter.
74
+ def in_outputdir
75
+ # Verify output
76
+ FileUtils.makedirs @outputdir
77
+ raise(ArgumentError, "A block should be given") unless block_given?
78
+
79
+ Dir.chdir @outputdir do
80
+ raise("#{@outputdir}: it already exists a main.tex file") if File.exist? "main.tex"
81
+ raise("#{@outputdir}: it already exists a Makefile") if File.exist? "Makefile"
82
+
83
+ # Call the given instructions block
84
+ yield
85
+ end
86
+ end
87
+
88
+ # This fonction writes a file from its template
89
+ def build template
90
+ erb = File.read(File.join(VIEWS_DIR, template + ".erb"))
91
+ content = ERB.new(erb).result(binding)
92
+ File.open(template, 'w') do |f|
93
+ f.write content.gsub(/\n\n\n+/, "\n\n")
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,58 @@
1
+ # The Condom module
2
+ module Condom
3
+ # The Document class.
4
+ # This class is used to produce classic document such as article, report, etc.
5
+ class Document < Condom::Base
6
+ attr_accessor :listings, :fancyhdr, :graphics, :math, :pdf
7
+
8
+ # The constructor.
9
+ # Argument could be:
10
+ # * nothing,
11
+ # * the title of the document,
12
+ # * a hash of options.
13
+ def initialize(args = nil)
14
+ # Need to initialize each variables else they won't exist in instance_variables.
15
+ @listings = @fancyhdr = @graphics = @math = @pdf = nil
16
+
17
+ # The default options
18
+ options = {
19
+ :filename => 'document',
20
+ :listings => false,
21
+ :fancyhdr => false,
22
+ :graphics => false,
23
+ :math => false,
24
+ :pdf => true
25
+ }
26
+
27
+ if args.is_a? String
28
+ options[:title] = args
29
+ elsif args.is_a? Hash
30
+ options.merge! args
31
+ end
32
+
33
+ super(options)
34
+ end
35
+
36
+ # This method will write in the output directory all needed files.
37
+ def create
38
+ in_outputdir do
39
+ # Create files
40
+ build "main.tex"
41
+ build "Makefile"
42
+ if @graphics
43
+ build "fig.tex"
44
+ Dir.mkdir "fig"
45
+ end
46
+ Dir.mkdir "src" if @listings
47
+ Dir.mkdir "inc"
48
+ Dir.chdir "inc" do
49
+ build "packages.tex"
50
+ build "commands.tex"
51
+ build "colors.tex"
52
+ build "lst-conf.tex" if @listings
53
+ build "flyleaf.tex" if @document_class == "report"
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,46 @@
1
+ # The Condom module
2
+ module Condom
3
+ # The Letter class.
4
+ # This class is used to produce a letter.
5
+ class Letter < Condom::Base
6
+ attr_accessor :address, :recipient, :recipient_address
7
+
8
+ # The constructor.
9
+ # Argument could be:
10
+ # * nothing,
11
+ # * the title of the document,
12
+ # * a hash of options.
13
+ def initialize(args = nil)
14
+ # Need to initialize each variables else they won't exist in instance_variables.
15
+ @address = @recipient = @recipient_address = nil
16
+
17
+ # The default options
18
+ options = {
19
+ :document_class => 'letter',
20
+ :title => 'Lettre \LaTeX',
21
+ :filename => 'letter',
22
+ :address => '',
23
+ :recipient => 'Mr John Smith',
24
+ :recipient_address => ''
25
+ }
26
+
27
+ if args.is_a? String
28
+ options[:title] = args
29
+ elsif args.is_a? Hash
30
+ options.merge! args
31
+ end
32
+
33
+ super(options)
34
+ end
35
+
36
+ # This method will write in the output directory all needed files.
37
+ def create
38
+ in_outputdir do
39
+ # Create files
40
+ build "letter.tex"
41
+ File.rename("letter.tex", "main.tex")
42
+ build "Makefile"
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,59 @@
1
+ # The Condom module
2
+ module Condom
3
+ # The Presentation class.
4
+ # This class is used to produce Beamer presentation.
5
+ class Presentation < Condom::Base
6
+ attr_accessor :listings, :graphics, :math
7
+
8
+ # The constructor.
9
+ # Argument could be:
10
+ # * nothing,
11
+ # * the title of the document,
12
+ # * a hash of options.
13
+ def initialize(args = nil)
14
+ # Need to initialize each variables else they won't exist in instance_variables.
15
+ @listings = @graphics = @math = nil
16
+
17
+ # The default options
18
+ options = {
19
+ :document_class => 'beamer',
20
+ :title => 'Présentation \LaTeX',
21
+ :filename => 'presentation',
22
+ :listings => false,
23
+ :graphics => true,
24
+ :math => false
25
+ }
26
+
27
+ if args.is_a? String
28
+ options[:title] = args
29
+ elsif args.is_a? Hash
30
+ options.merge! args
31
+ end
32
+
33
+ super(options)
34
+ end
35
+
36
+ # This method will write in the output directory all needed files.
37
+ def create
38
+ in_outputdir do
39
+ # Create files
40
+ build "presentation.tex"
41
+ File.rename("presentation.tex", "main.tex")
42
+ build "Makefile"
43
+ if @graphics
44
+ build "fig.tex"
45
+ Dir.mkdir "fig"
46
+ end
47
+ Dir.mkdir "src" if @listings
48
+ Dir.mkdir "inc"
49
+ Dir.chdir "inc" do
50
+ build "packages.tex"
51
+ build "commands.tex"
52
+ build "colors.tex"
53
+ build "lst-conf.tex" if @listings
54
+ build "flyleaf.tex" if @document_class == "report"
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -1,6 +1,8 @@
1
1
  # Makefile
2
2
  # generated on <%= Time.now %>
3
- # by <%= @author %> with the Condom lib
3
+ # by <%= @author %>
4
+ # With the Condom lib (version <%= Condom::VERSION %>)
5
+ # See http://github.com/v0n/condom
4
6
 
5
7
  FINAL_FILENAME=<%= @filename %>
6
8
  FILENAME=main
@@ -24,7 +26,7 @@ view: all
24
26
 
25
27
  clean:
26
28
  @echo "cleaning..."
27
- @rm -f *.aux *.log *.out *.toc *.lol<% if @listings %> *.lof<% end %><% if @document_class == "beamer" %> *.nav *.snm<% end %><% unless @document_class == "beamer" %>
29
+ @rm -f *.aux *.log *.out *.toc *.lol<% if @listings %> *.lof<% end %><% if @document_class == "beamer" %> *.nav *.snm<% end %><% unless @document_class == "letter" %>
28
30
  @rm -f inc/*.aux<% end %>
29
31
  @rm -f $(FINAL_FILENAME).tar
30
32
 
@@ -1,3 +1,9 @@
1
+ % Customized colors
2
+ % generated on <%= Time.now %>
3
+ % by <%= @author %>
4
+ % With the Condom lib (version <%= Condom::VERSION %>)
5
+ % See http://github.com/v0n/condom
6
+
1
7
  % Colors Bright Colors
2
8
  % Black #0F2130 #B0B3B9
3
9
  % Red #D22613 #F96795
@@ -1,5 +1,11 @@
1
- % raccourcis
1
+ % Personal commands
2
+ % generated on <%= Time.now %>
3
+ % by <%= @author %>
4
+ % With the Condom lib (version <%= Condom::VERSION %>)
5
+ % See http://github.com/v0n/condom
6
+
2
7
  <% if @language == "francais" %>
8
+ % raccourcis
3
9
  \newcommand{\Cad}{C'est-à-dire~}
4
10
  \newcommand{\cad}{c'est-à-dire~}
5
11
  \newcommand{\pe}{peut-être~}
@@ -1,6 +1,8 @@
1
- % tips to insert images in LaTeX
1
+ % Tips to insert images in LaTeX
2
2
  % generated on <%= Time.now %>
3
- % by <%= @author %> with the Condom lib
3
+ % by <%= @author %>
4
+ % With the Condom lib (version <%= Condom::VERSION %>)
5
+ % See http://github.com/v0n/condom
4
6
 
5
7
  % [!h] est facultatif, ca permet d'indiquer la position de la figure (si possible !)
6
8
  % ! = forcer la position
@@ -1,6 +1,8 @@
1
- % custom flyleaf
1
+ % Custom flyleaf for reports
2
2
  % generated on <%= Time.now %>
3
- % by <%= @author %> with the Condom lib
3
+ % by <%= @author %>
4
+ % With the Condom lib (version <%= Condom::VERSION %>)
5
+ % See http://github.com/v0n/condom
4
6
 
5
7
  % voir http://zoonek.free.fr/LaTeX/LaTeX_samples_title/0.html pour d'autres modeles
6
8
 
@@ -0,0 +1,48 @@
1
+ % LaTeX letter skeleton
2
+ % generated on <%= Time.now %>
3
+ % by <%= @author %>
4
+ % With the Condom lib (version <%= Condom::VERSION %>)
5
+ % See http://github.com/v0n/condom
6
+
7
+ \documentclass[11pt]{letter}
8
+ \usepackage[<%= @language %>]{babel} % langue
9
+ \usepackage[<%= (PLATFORM.include? 'linux') ? 'utf8' : 'latin1' %>]{inputenc}
10
+ \usepackage{graphicx}
11
+ \usepackage{geometry}
12
+
13
+ \geometry{top=2.5cm, bottom=2.5cm, left=3cm, right=3cm}
14
+
15
+ \name{<%= @author %>}
16
+ \address{<%= @address.gsub("\n", "\\ ") %>}
17
+ \signature{%
18
+ <%= @author %>
19
+ % \includegraphics[height=2.5cm]{signature} % insert your handwritten signature here if you have one
20
+ }
21
+ \date{<%= @date %>}
22
+
23
+ \begin{document}
24
+ \begin{letter}{% recipient information goes here: name\\ address
25
+ <%= @recipient %>\\ <%= @recipient_address.gsub("\n", "\\ ") %>
26
+ }
27
+ \opening{\centering \textbf{<%= @title %>}}
28
+
29
+ \begin{flushleft}
30
+ <%= @recipient %>,
31
+ \end{flushleft}
32
+
33
+ \begin{minipage}{\textwidth} % justify text
34
+ % the body of the letter goes here
35
+ \end{minipage}
36
+
37
+ \closing{<%=
38
+ case @language
39
+ when 'francais' : "Veuillez agréer, l'expression de mes sincères salutations,"
40
+ else "Yours sincerely,"
41
+ end
42
+ %>}
43
+ %\ps{P.S. Here goes your ps}
44
+ %\cc{others recipients go here}
45
+ %\encl{Here goes what you have enclosed with the letter}
46
+ \end{letter}
47
+ \end{document}
48
+
@@ -1,6 +1,8 @@
1
1
  % listings package config file
2
2
  % generated on <%= Time.now %>
3
- % by <%= @author %> with the Condom lib
3
+ % by <%= @author %>
4
+ % With the Condom lib (version <%= Condom::VERSION %>)
5
+ % See http://github.com/v0n/condom
4
6
 
5
7
  % /!\ ne pas utiliser de caracteres accentues dans les sources (ne gere pas l'utf-8)
6
8
  % pour remplacer les lettres accentues : sed -i -e "y/ÉÈÊÇÀÔéèçàôîêûùï/EEECAOeecaoieuui/" fichier
@@ -1,6 +1,8 @@
1
- % LaTeX skeleton
1
+ % LaTeX document skeleton
2
2
  % generated on <%= Time.now %>
3
- % by <%= @author %> with the Condom lib
3
+ % by <%= @author %>
4
+ % With the Condom lib (version <%= Condom::VERSION %>)
5
+ % See http://github.com/v0n/condom
4
6
 
5
7
  %%%%%%%%%%%%%
6
8
  % PREAMBULE %
@@ -1,44 +1,49 @@
1
+ % LaTeX packages to import
2
+ % generated on <%= Time.now %>
3
+ % by <%= @author %>
4
+ % With the Condom lib (version <%= Condom::VERSION %>)
5
+ % See http://github.com/v0n/condom
6
+
1
7
  \usepackage[T1]{fontenc} % codage des caracteres
2
8
 
3
- <% enc = (PLATFORM.include? "linux") ? "utf8" : "latin1" %>
4
- \usepackage[<%= enc %>]{inputenc} % encodage du fichier (utf8 ou latin1)
9
+ \usepackage[<%= (PLATFORM.include? 'linux') ? 'utf8' : 'latin1' %>]{inputenc} % encodage du fichier (utf8 ou latin1)
5
10
  \usepackage[<%= @language %>]{babel} % langue
6
11
  \usepackage{mathpazo} % selection de la police
7
12
  \usepackage{geometry} % mise en page
8
13
  \usepackage{xcolor} % pour colorer des elements
9
14
 
10
15
  <% if @graphics %>
11
- \usepackage{graphicx} % pour inserer des images
16
+ \usepackage{graphicx} % pour inserer des images
12
17
  <% end %>
13
18
 
14
19
  <% if @math %>
15
- % math
16
- \usepackage{amssymb} % symboles mathematiques
17
- %\usepackage{amsmath} % commandes mathematiques
20
+ % math
21
+ \usepackage{amssymb} % symboles mathematiques
22
+ %\usepackage{amsmath} % commandes mathematiques
18
23
  <% end %>
19
24
 
20
25
  <% if @pdf %>
21
- % pdf
22
- \usepackage{url} % permet l'insertion d'url
23
- \usepackage[pdftex]{hyperref} % permet l'hypertexte (rend les liens cliquables)
26
+ % pdf
27
+ \usepackage{url} % permet l'insertion d'url
28
+ \usepackage[pdftex]{hyperref} % permet l'hypertexte (rend les liens cliquables)
24
29
  <% end %>
25
30
 
26
31
  <% if @listings %>
27
- % listings
28
- \usepackage{listings} % permet d'inserer du code (multi-langage)
29
- \usepackage{courier}
30
- \usepackage{caption}
32
+ % listings
33
+ \usepackage{listings} % permet d'inserer du code (multi-langage)
34
+ \usepackage{courier}
35
+ \usepackage{caption}
31
36
  <% end %>
32
37
 
33
38
  <% if @fancyhdr %>
34
- % fancyhdr
35
- \usepackage{lastpage} % derniere page
36
- \usepackage{fancyhdr} % en-tete et pied de page
39
+ % fancyhdr
40
+ \usepackage{lastpage} % derniere page
41
+ \usepackage{fancyhdr} % en-tete et pied de page
37
42
  <% end %>
38
43
 
39
44
  \usepackage{multicol}
40
45
 
41
- <% for package in @packages do %>
42
- \usepackage{#{package}}
46
+ <% for package in @other_packages do %>
47
+ \usepackage{<%= package %>}
43
48
  <% end %>
44
-
49
+
@@ -1,6 +1,8 @@
1
- % LaTeX skeleton
1
+ % LaTeX presentation skeleton
2
2
  % generated on <%= Time.now %>
3
- % by <%= @author %> with the Condom lib
3
+ % by <%= @author %>
4
+ % With the Condom lib (version <%= Condom::VERSION %>)
5
+ % See http://github.com/v0n/condom
4
6
 
5
7
  %%%%%%%%%%%%%
6
8
  % PREAMBULE %
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: condom
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 1
9
- - 1
10
- version: 0.1.1
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Vivien Didelot
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-12 00:00:00 +10:00
18
+ date: 2010-08-18 00:00:00 +10:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
@@ -31,12 +31,17 @@ files:
31
31
  - lib/views/flyleaf.tex.erb
32
32
  - lib/views/main.tex.erb
33
33
  - lib/views/lst-conf.tex.erb
34
+ - lib/views/presentation.tex.erb
34
35
  - lib/views/packages.tex.erb
35
36
  - lib/views/fig.tex.erb
36
- - lib/views/main_beamer.tex.erb
37
+ - lib/views/letter.tex.erb
37
38
  - lib/views/colors.tex.erb
38
39
  - lib/views/Makefile.erb
39
40
  - lib/views/commands.tex.erb
41
+ - lib/condom/base.rb
42
+ - lib/condom/document.rb
43
+ - lib/condom/letter.rb
44
+ - lib/condom/presentation.rb
40
45
  - lib/condom.rb
41
46
  - README.rdoc
42
47
  - CHANGELOG.rdoc