condom 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/CHANGELOG +9 -0
- data/README +85 -0
- data/bin/condom +64 -0
- data/lib/condom.rb +131 -0
- data/lib/views/Makefile.erb +33 -0
- data/lib/views/colors.tex.erb +19 -0
- data/lib/views/commands.tex.erb +38 -0
- data/lib/views/fig.tex.erb +58 -0
- data/lib/views/flyleaf.tex.erb +57 -0
- data/lib/views/lst-conf.tex.erb +104 -0
- data/lib/views/main.tex.erb +102 -0
- data/lib/views/main_beamer.tex.erb +51 -0
- data/lib/views/packages.tex.erb +44 -0
- metadata +79 -0
data/CHANGELOG
ADDED
data/README
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
Condom
|
2
|
+
------
|
3
|
+
|
4
|
+
A Ruby lib to create a skeleton for a LaTeX document.
|
5
|
+
|
6
|
+
Installation
|
7
|
+
------------
|
8
|
+
|
9
|
+
$ gem install condom
|
10
|
+
|
11
|
+
Usage
|
12
|
+
-----
|
13
|
+
|
14
|
+
For the usage of the lib, see the documentation (gem server for example).
|
15
|
+
|
16
|
+
Condom gem provides a condom shell command.
|
17
|
+
|
18
|
+
$ condom --help
|
19
|
+
Usage: condom [options] [destination]
|
20
|
+
Available options:
|
21
|
+
-m, --math Math packages
|
22
|
+
-l, --listings Listings package
|
23
|
+
-f, --fancyhdr Fancyhdr package
|
24
|
+
-p, --pdf PDF config
|
25
|
+
-g, --graphics Images packages
|
26
|
+
-n, --filename=FILENAME Define a file name
|
27
|
+
-a, --author=AUTHOR Define the author
|
28
|
+
-t, --title=TITLE Define the title
|
29
|
+
-d, --date=DATE Define the date
|
30
|
+
-c, --class=CLASS Define the document class
|
31
|
+
-P, --package=PACKAGE Add another package
|
32
|
+
-v, --version Print version
|
33
|
+
destination:
|
34
|
+
/home/v0n (current directory)
|
35
|
+
|
36
|
+
In generated files, there is a Makefile.
|
37
|
+
Just use your document this way (from the source folder):
|
38
|
+
- compile with:
|
39
|
+
$ make
|
40
|
+
or
|
41
|
+
$ make view # this will open the generated document after
|
42
|
+
|
43
|
+
- clean sources with:
|
44
|
+
$ make clean
|
45
|
+
|
46
|
+
- archive the whole document with:
|
47
|
+
$ make archive
|
48
|
+
|
49
|
+
Technique
|
50
|
+
---------
|
51
|
+
|
52
|
+
The following command:
|
53
|
+
$ condom -mlfpg -t "Condom makes LaTeX easier" here
|
54
|
+
|
55
|
+
will generate:
|
56
|
+
here/
|
57
|
+
├── fig
|
58
|
+
├── fig.tex
|
59
|
+
├── inc
|
60
|
+
│ ├── colors.tex
|
61
|
+
│ ├── commands.tex
|
62
|
+
│ ├── lst-conf.tex
|
63
|
+
│ └── packages.tex
|
64
|
+
├── main.tex
|
65
|
+
├── Makefile
|
66
|
+
└── src
|
67
|
+
|
68
|
+
fig/
|
69
|
+
This is the folder where you should put your images.
|
70
|
+
|
71
|
+
inc/
|
72
|
+
This folder has all configuration tex files:
|
73
|
+
colors.tex - customized colors
|
74
|
+
commands.tex - customized commands
|
75
|
+
lst-conf.tex - configuration file for the listings package
|
76
|
+
packages - all needed packages
|
77
|
+
|
78
|
+
main.tex
|
79
|
+
The main tex file. If you specify a filename with -n option, then the generated pdf file will have this name, not the main tex file.
|
80
|
+
|
81
|
+
Makefile
|
82
|
+
Makefile to manage your document sources easily (see the usage above).
|
83
|
+
|
84
|
+
src/
|
85
|
+
This is the folder where to put listings (a result of -l option).
|
data/bin/condom
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Command line tool for Condom
|
3
|
+
|
4
|
+
# Add ../lib to the load path
|
5
|
+
#lib_dir = File.join(File.dirname(__FILE__), '..', 'lib')
|
6
|
+
#$LOAD_PATH.unshift lib_dir unless $LOAD_PATH.include? lib_dir
|
7
|
+
|
8
|
+
require 'condom'
|
9
|
+
require 'optparse'
|
10
|
+
require 'yaml'
|
11
|
+
|
12
|
+
ops = Condom::Document::DEFAULT_OPTIONS
|
13
|
+
|
14
|
+
ARGV.options do |o|
|
15
|
+
o.banner = "Usage: #{File.basename $0} [options] [destination]\n"
|
16
|
+
o.on_head("Available options:")
|
17
|
+
|
18
|
+
o.on("-m", "--math", "Math packages") { ops[:math] = true }
|
19
|
+
o.on("-l", "--listings", "Listings package") { ops[:listings] = true }
|
20
|
+
o.on("-f", "--fancyhdr", "Fancyhdr package") { ops[:fancyhdr] = true }
|
21
|
+
o.on("-p", "--pdf", "PDF config") { ops[:pdf] = true }
|
22
|
+
o.on("-g", "--graphics", "Images packages") { ops[:graphics] = true }
|
23
|
+
o.on("-n", "--filename=FILENAME", String, "Define a file name") { |v| ops[:filename] = v }
|
24
|
+
o.on("-a", "--author=AUTHOR", String, "Define the author") { |v| ops[:author] = v }
|
25
|
+
o.on("-t", "--title=TITLE", String, "Define the title") { |v| ops[:title] = v }
|
26
|
+
o.on("-d", "--date=DATE", String, "Define the date") { |v| ops[:date] = v }
|
27
|
+
o.on("-c", "--class=CLASS", String, "Define the document class") { |v| ops[:document_class] = v }
|
28
|
+
o.on("-L", "--language=LANGUAGE", String, "Define the language") { |v| ops[:language] = v }
|
29
|
+
o.on("-P", "--package=PACKAGE", String, "Add another package") { |v| ops[:packages].push v }
|
30
|
+
#o.on("-v", "--version", "Print version") { puts "Condom lib: version #{Condom::VERSION}" ; exit }
|
31
|
+
|
32
|
+
o.on_tail("destination:\n " << ops[:outputdir] + (ops[:outputdir] == Dir.getwd ? " (current directory)" : ""))
|
33
|
+
end
|
34
|
+
|
35
|
+
begin
|
36
|
+
ARGV.options.parse!
|
37
|
+
|
38
|
+
raise "Bad syntax." if ARGV.length > 1
|
39
|
+
if ARGV.length == 1
|
40
|
+
ops[:outputdir] = (ARGV.first == ".") ? Dir.getwd : ARGV.first
|
41
|
+
end
|
42
|
+
|
43
|
+
# Ask for confirmation
|
44
|
+
puts ops.to_yaml # Could it be prettier?
|
45
|
+
print "\nContinue [Y/n/h]? "
|
46
|
+
case STDIN.gets.strip
|
47
|
+
when 'Y', 'y', ''
|
48
|
+
when 'h'
|
49
|
+
puts ARGV.options
|
50
|
+
exit
|
51
|
+
else
|
52
|
+
puts "Cancel."
|
53
|
+
exit
|
54
|
+
end
|
55
|
+
|
56
|
+
doc = Condom::Document.new(ops)
|
57
|
+
doc.create
|
58
|
+
|
59
|
+
puts "OK"
|
60
|
+
rescue => e
|
61
|
+
STDERR.puts "error: #{e}"
|
62
|
+
end
|
63
|
+
|
64
|
+
exit
|
data/lib/condom.rb
ADDED
@@ -0,0 +1,131 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
|
3
|
+
#TODO Split author with space to get firstname and lastname?
|
4
|
+
|
5
|
+
require 'etc'
|
6
|
+
require 'erb'
|
7
|
+
require 'fileutils'
|
8
|
+
|
9
|
+
# The Condom module
|
10
|
+
module Condom
|
11
|
+
# Constant views directory
|
12
|
+
VIEWS_DIR = File.join(File.expand_path(File.dirname(__FILE__)), 'views')
|
13
|
+
|
14
|
+
# Function to get the name of the user.
|
15
|
+
# It will be the name in the /etc/passwd file (on Un*x system)
|
16
|
+
# or the system user.
|
17
|
+
def Condom.get_user_name
|
18
|
+
user = Etc.getpwnam(Etc.getlogin)['gecos'].split(',').first
|
19
|
+
user = Etc.getlogin if user.nil?
|
20
|
+
|
21
|
+
return user
|
22
|
+
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
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# Makefile
|
2
|
+
# generated on <%= Time.now %>
|
3
|
+
# by <%= @author %> with the Condom lib
|
4
|
+
|
5
|
+
FINAL_FILENAME=<%= @filename %>
|
6
|
+
FILENAME=main
|
7
|
+
VIEWER=xdg-open
|
8
|
+
RUBBER=$(shell which rubber)
|
9
|
+
|
10
|
+
all: $(FILENAME).tex
|
11
|
+
ifeq ($(RUBBER),)
|
12
|
+
@pdflatex $(FILENAME).tex
|
13
|
+
@pdflatex $(FILENAME).tex
|
14
|
+
@echo -e "\nYou should install the rubber package ;)"
|
15
|
+
else
|
16
|
+
@$(RUBBER) -d $(FILENAME).tex
|
17
|
+
endif
|
18
|
+
ifneq ($(FILENAME),$(FINAL_FILENAME))
|
19
|
+
@mv $(FILENAME).pdf $(FINAL_FILENAME).pdf
|
20
|
+
endif
|
21
|
+
|
22
|
+
view: all
|
23
|
+
@$(VIEWER) $(FINAL_FILENAME).pdf
|
24
|
+
|
25
|
+
clean:
|
26
|
+
@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" %>
|
28
|
+
@rm -f inc/*.aux<% end %>
|
29
|
+
@rm -f $(FINAL_FILENAME).tar
|
30
|
+
|
31
|
+
archive: all clean
|
32
|
+
@tar -cf $(FINAL_FILENAME).tar *
|
33
|
+
@echo "archived in $(FINAL_FILENAME).tar"
|
@@ -0,0 +1,19 @@
|
|
1
|
+
% Colors Bright Colors
|
2
|
+
% Black #0F2130 #B0B3B9
|
3
|
+
% Red #D22613 #F96795
|
4
|
+
% Green #7CDE53 #A0F2A0
|
5
|
+
% Yellow #EBE645 #F4EF82
|
6
|
+
% Blue #2C9ADE #A3FEFE
|
7
|
+
% Orange #FFA705 #F1B356
|
8
|
+
% Cyan #8A95A7 #B0C3DA
|
9
|
+
% White #F8F8F8 #FFFFFF
|
10
|
+
|
11
|
+
\definecolor{myblack}{HTML}{0F2130}
|
12
|
+
\definecolor{myred}{HTML}{D22613}
|
13
|
+
\definecolor{mygreen}{HTML}{7CDE53}
|
14
|
+
\definecolor{myyellow}{HTML}{EBE645}
|
15
|
+
\definecolor{myblue}{HTML}{2C9ADE}
|
16
|
+
\definecolor{myorange}{HTML}{FFA705}
|
17
|
+
\definecolor{mycyan}{HTML}{8A95A7}
|
18
|
+
\definecolor{mywhite}{HTML}{F8F8F8}
|
19
|
+
\definecolor{mygrey}{HTML}{555753}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
% raccourcis
|
2
|
+
<% if @language == "francais" %>
|
3
|
+
\newcommand{\Cad}{C'est-à-dire~}
|
4
|
+
\newcommand{\cad}{c'est-à-dire~}
|
5
|
+
\newcommand{\pe}{peut-être~}
|
6
|
+
<% end %>
|
7
|
+
|
8
|
+
\newcommand{\todo}[1]{\bigskip \colorbox{myyellow}{\textcolor{mygrey}{\textsf{\textbf{TODO} #1 }}} \bigskip}
|
9
|
+
|
10
|
+
\newcommand{\name}[2]{#1 \textsc{#2}}
|
11
|
+
|
12
|
+
<% if @pdf %>
|
13
|
+
\newcommand{\email}[1]{\href{mailto:#1}{\textsf{<#1>}}}
|
14
|
+
<% end %>
|
15
|
+
|
16
|
+
<% if @graphics %>
|
17
|
+
% commande pour afficher un lien vers une image
|
18
|
+
\newcommand{\figref}[1]{\textsc{Fig.}~\ref{#1} (p.~\pageref{#1})}
|
19
|
+
<% end %>
|
20
|
+
|
21
|
+
<% if @listings %>
|
22
|
+
% commande pour afficher le lien vers un listing :
|
23
|
+
\newcommand{\lstref}[1]{{\footnotesize Listing~\ref{#1}, p.~\pageref{#1}}}
|
24
|
+
<% end %>
|
25
|
+
|
26
|
+
<% if @document_class == "report" %>
|
27
|
+
\newcommand{\unnumchap}[1]{%
|
28
|
+
\chapter*{#1}%
|
29
|
+
\addcontentsline{toc}{chapter}{#1}%
|
30
|
+
\chaptermark{#1}%
|
31
|
+
}
|
32
|
+
|
33
|
+
\newcommand{\unnumpart}[1]{%
|
34
|
+
\part*{#1}%
|
35
|
+
\addcontentsline{toc}{part}{#1}%
|
36
|
+
}
|
37
|
+
<% end %>
|
38
|
+
|
@@ -0,0 +1,58 @@
|
|
1
|
+
% tips to insert images in LaTeX
|
2
|
+
% generated on <%= Time.now %>
|
3
|
+
% by <%= @author %> with the Condom lib
|
4
|
+
|
5
|
+
% [!h] est facultatif, ca permet d'indiquer la position de la figure (si possible !)
|
6
|
+
% ! = forcer la position
|
7
|
+
% h = here
|
8
|
+
% t = top
|
9
|
+
% b = bottom
|
10
|
+
% p = page separee
|
11
|
+
% si il y a un probleme avec le positionnement, il peut etre force avec la position [H] (necessite le paquet float)
|
12
|
+
|
13
|
+
\begin{figure}[!h]
|
14
|
+
\begin{center}
|
15
|
+
%\includegraphics[width=5cm]{images/freebsd.png}
|
16
|
+
%\includegraphics[height=4cm]{images/freebsd.png}
|
17
|
+
\includegraphics{images/freebsd.png}
|
18
|
+
\caption{\label{freebsd}Logo de FreeBSD}
|
19
|
+
\end{center}
|
20
|
+
\end{figure}
|
21
|
+
|
22
|
+
% images cotes a cotes avec une seule legende
|
23
|
+
% note de bas de page dans un caption (\footnote ne peut pas etre utilise)
|
24
|
+
\begin{figure}[!h]
|
25
|
+
\begin{center}
|
26
|
+
\includegraphics[height=2cm]{images/freebsd.png}
|
27
|
+
\hspace{1cm} % espace horizontal (facultatif)
|
28
|
+
\includegraphics[height=2cm]{images/openbsd.png}
|
29
|
+
\hspace{1cm}
|
30
|
+
\includegraphics[height=2cm]{images/netbsd.png}
|
31
|
+
\end{center}
|
32
|
+
\caption{FreeBSD, OpenBSD et NetBSD\protect\footnotemark}
|
33
|
+
\end{figure}
|
34
|
+
\footnotetext{Tous des systemes d'exploitation libres.}
|
35
|
+
|
36
|
+
% images cotes a cotes avec une legende pour chaque
|
37
|
+
% si 2 images, mettre comme largeur 0.5\textwidth
|
38
|
+
\begin{figure}[!h]
|
39
|
+
\begin{minipage}{0.33\textwidth}
|
40
|
+
\begin{center}
|
41
|
+
\includegraphics[height=2cm]{images/freebsd.png}
|
42
|
+
\caption{FreeBSD}
|
43
|
+
\end{center}
|
44
|
+
\end{minipage}
|
45
|
+
\begin{minipage}{0.33\textwidth}
|
46
|
+
\begin{center}
|
47
|
+
\includegraphics[height=2cm]{images/openbsd.png}
|
48
|
+
\caption{OpenBSD}
|
49
|
+
\end{center}
|
50
|
+
\end{minipage}
|
51
|
+
\begin{minipage}{0.33\textwidth}
|
52
|
+
\begin{center}
|
53
|
+
\includegraphics[height=2cm]{images/netbsd.png}
|
54
|
+
\caption{NetBSD}
|
55
|
+
\end{center}
|
56
|
+
\end{minipage}
|
57
|
+
\end{figure}
|
58
|
+
|
@@ -0,0 +1,57 @@
|
|
1
|
+
% custom flyleaf
|
2
|
+
% generated on <%= Time.now %>
|
3
|
+
% by <%= @author %> with the Condom lib
|
4
|
+
|
5
|
+
% voir http://zoonek.free.fr/LaTeX/LaTeX_samples_title/0.html pour d'autres modeles
|
6
|
+
|
7
|
+
\makeatletter
|
8
|
+
% commandes supplementaires
|
9
|
+
\def\location#1{\def\@location{#1}}
|
10
|
+
\def\blurb#1{\def\@blurb{#1}}
|
11
|
+
|
12
|
+
\def\clap#1{\hbox to 0pt{\hss #1\hss}}%
|
13
|
+
\def\ligne#1{%
|
14
|
+
\hbox to \hsize{%
|
15
|
+
\vbox{\centering #1}}%
|
16
|
+
}%
|
17
|
+
\def\haut#1#2#3{%
|
18
|
+
\hbox to \hsize{%
|
19
|
+
\rlap{\vtop{\raggedright #1}}%
|
20
|
+
\hss
|
21
|
+
\clap{\vtop{\centering #2}}%
|
22
|
+
\hss
|
23
|
+
\llap{\vtop{\raggedleft #3}}}%
|
24
|
+
}%
|
25
|
+
\def\bas#1#2#3{%
|
26
|
+
\hbox to \hsize{%
|
27
|
+
\rlap{\vbox{\raggedright #1}}%
|
28
|
+
\hss
|
29
|
+
\clap{\vbox{\centering #2}}%
|
30
|
+
\hss
|
31
|
+
\llap{\vbox{\raggedleft #3}}}%
|
32
|
+
}%
|
33
|
+
\def\maketitle{%
|
34
|
+
\thispagestyle{empty}\vbox to \vsize{%
|
35
|
+
\haut{}{\@blurb}{}
|
36
|
+
\vfill
|
37
|
+
\vspace{1cm}
|
38
|
+
\begin{flushleft}
|
39
|
+
\usefont{OT1}{ptm}{m}{n}
|
40
|
+
\huge \@title
|
41
|
+
\end{flushleft}
|
42
|
+
\par
|
43
|
+
\hrule height 4pt
|
44
|
+
\par
|
45
|
+
\begin{flushright}
|
46
|
+
\Large \@author
|
47
|
+
\par
|
48
|
+
\end{flushright}
|
49
|
+
\vspace{1cm}
|
50
|
+
\vfill
|
51
|
+
\vfill
|
52
|
+
\bas{}{\@location, \@date}{}
|
53
|
+
}%
|
54
|
+
\cleardoublepage
|
55
|
+
}
|
56
|
+
\makeatother
|
57
|
+
|
@@ -0,0 +1,104 @@
|
|
1
|
+
% listings package config file
|
2
|
+
% generated on <%= Time.now %>
|
3
|
+
% by <%= @author %> with the Condom lib
|
4
|
+
|
5
|
+
% /!\ ne pas utiliser de caracteres accentues dans les sources (ne gere pas l'utf-8)
|
6
|
+
% pour remplacer les lettres accentues : sed -i -e "y/ÉÈÊÇÀÔéèçàôîêûùï/EEECAOeecaoieuui/" fichier
|
7
|
+
|
8
|
+
% configuration des listings par defaut :
|
9
|
+
\lstset{
|
10
|
+
basicstyle=\footnotesize\ttfamily,
|
11
|
+
%numbers=left,
|
12
|
+
numberstyle=\tiny,
|
13
|
+
%stepnumber=2,
|
14
|
+
numbersep=5pt,
|
15
|
+
tabsize=2,
|
16
|
+
extendedchars=true,
|
17
|
+
breaklines=true,
|
18
|
+
frame=b,
|
19
|
+
keywordstyle=\color{red},
|
20
|
+
%keywordstyle=[1]\textbf,
|
21
|
+
%keywordstyle=[2]\textbf,
|
22
|
+
%keywordstyle=[3]\textbf,
|
23
|
+
%keywordstyle=[4]\textbf,
|
24
|
+
stringstyle=\color{white}\ttfamily,
|
25
|
+
showspaces=false,
|
26
|
+
showtabs=false,
|
27
|
+
xleftmargin=17pt,
|
28
|
+
framexleftmargin=17pt,
|
29
|
+
framexrightmargin=5pt,
|
30
|
+
framexbottommargin=4pt,
|
31
|
+
%backgroundcolor=\color{lightgray},
|
32
|
+
showstringspaces=false
|
33
|
+
}
|
34
|
+
|
35
|
+
\lstloadlanguages{
|
36
|
+
%[Visual]Basic
|
37
|
+
%Pascal
|
38
|
+
%C
|
39
|
+
%C++
|
40
|
+
%XML
|
41
|
+
%HTML
|
42
|
+
%Java
|
43
|
+
}
|
44
|
+
%\DeclareCaptionFont{blue}{\color{blue}}
|
45
|
+
|
46
|
+
%\captionsetup[lstlisting]{singlelinecheck=false, labelfont={blue}, textfont={blue}}
|
47
|
+
\DeclareCaptionFont{white}{\color{white}}
|
48
|
+
\DeclareCaptionFormat{listing}{\colorbox[cmyk]{0.43, 0.35, 0.35,0.01}{\parbox{\textwidth}{\hspace{15pt}#1#2#3}}}
|
49
|
+
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, singlelinecheck=false, margin=0pt, font={bf,footnotesize}}
|
50
|
+
|
51
|
+
% configuration des listings C :
|
52
|
+
\lstnewenvironment{C}
|
53
|
+
{\lstset{%
|
54
|
+
language=C,
|
55
|
+
tabsize=3,
|
56
|
+
xleftmargin=0.75cm,
|
57
|
+
numbers=left,
|
58
|
+
numberstyle=\tiny,
|
59
|
+
extendedchars=true,
|
60
|
+
%frame=single,
|
61
|
+
%frameround=tttt,
|
62
|
+
framexleftmargin=8mm,
|
63
|
+
float,
|
64
|
+
showstringspaces=true,
|
65
|
+
showspaces=false,
|
66
|
+
showtabs=false,
|
67
|
+
breaklines=true,
|
68
|
+
backgroundcolor=\color{mywhite},
|
69
|
+
basicstyle=\color{myblack} \small,
|
70
|
+
keywordstyle=\color{myred} \bfseries,
|
71
|
+
ndkeywordstyle=\color{myred} \bfseries,
|
72
|
+
commentstyle=\color{myblue} \itshape,
|
73
|
+
identifierstyle=\color{myyellow},
|
74
|
+
stringstyle=\color{mygreen}
|
75
|
+
}}
|
76
|
+
{}
|
77
|
+
|
78
|
+
% configuration des listings console :
|
79
|
+
\lstnewenvironment{console}
|
80
|
+
{\lstset{%
|
81
|
+
language={},
|
82
|
+
numbers=none,
|
83
|
+
extendedchars=true,
|
84
|
+
framexleftmargin=5mm,
|
85
|
+
%float,
|
86
|
+
showstringspaces=false,
|
87
|
+
showspaces=false,
|
88
|
+
showtabs=false,
|
89
|
+
breaklines=false,
|
90
|
+
backgroundcolor=\color{darkgray},
|
91
|
+
basicstyle=\color{white} \scriptsize \ttfamily,
|
92
|
+
keywordstyle=\color{white},
|
93
|
+
ndkeywordstyle=\color{white},
|
94
|
+
commentstyle=\color{white},
|
95
|
+
identifierstyle=\color{white},
|
96
|
+
stringstyle=\color{white}
|
97
|
+
}}
|
98
|
+
{}
|
99
|
+
|
100
|
+
\renewcommand{\lstlistlistingname}{Table des codes sources} % renommer la liste des listings
|
101
|
+
|
102
|
+
% un listing depuis un fichier s'importe comme ceci :
|
103
|
+
%\lstinputlisting[caption={Legende}, label=lst:label]{emplacement}
|
104
|
+
|
@@ -0,0 +1,102 @@
|
|
1
|
+
% LaTeX skeleton
|
2
|
+
% generated on <%= Time.now %>
|
3
|
+
% by <%= @author %> with the Condom lib
|
4
|
+
|
5
|
+
%%%%%%%%%%%%%
|
6
|
+
% PREAMBULE %
|
7
|
+
%%%%%%%%%%%%%
|
8
|
+
|
9
|
+
\documentclass[a4paper, 11pt]{<%= @document_class %>} % format general
|
10
|
+
|
11
|
+
\input{inc/packages}
|
12
|
+
\input{inc/colors}
|
13
|
+
\input{inc/commands}
|
14
|
+
<% if @listings %>
|
15
|
+
\input{inc/lst-conf} % fichier de config du paquet listings
|
16
|
+
<% end %>
|
17
|
+
|
18
|
+
\geometry{top=2.5cm, bottom=2.5cm, left=2cm, right=2cm}
|
19
|
+
<% if @graphics %>
|
20
|
+
\graphicspath{{fig/}} % chemins vers les images
|
21
|
+
<% end %>
|
22
|
+
|
23
|
+
% informations du document
|
24
|
+
\author{<%= @author %>}
|
25
|
+
\date{Le <%= @date %>}
|
26
|
+
\title{<%= @title %>}
|
27
|
+
|
28
|
+
<% if @document_class == "report" %>
|
29
|
+
%\input{inc/flyleaf.tex} % page de garde personnalisee
|
30
|
+
%\location{}
|
31
|
+
%\blurb{}
|
32
|
+
<% end %>
|
33
|
+
|
34
|
+
<% if @pdf %>
|
35
|
+
\hypersetup{%
|
36
|
+
pdftitle = {<%= @title %>},
|
37
|
+
pdfauthor = {<%= @author %>}
|
38
|
+
pdfcreator = {Texlive},
|
39
|
+
pdfproducer = {Texlive},
|
40
|
+
colorlinks = true,
|
41
|
+
linkcolor = black,
|
42
|
+
citecolor = black,
|
43
|
+
urlcolor = black
|
44
|
+
} % informations du pdf
|
45
|
+
<% end %>
|
46
|
+
|
47
|
+
<% if @fancyhdr %>
|
48
|
+
\pagestyle{fancy}
|
49
|
+
\lhead{<%= @title %>}
|
50
|
+
\chead{}
|
51
|
+
\rhead{\thepage/\pageref{LastPage}}
|
52
|
+
\lfoot{}
|
53
|
+
\cfoot{}
|
54
|
+
\rfoot{\footnotesize <%= @author %>}
|
55
|
+
%\renewcommand{\headrulewidth}{0pt}
|
56
|
+
%\renewcommand{\footrulewidth}{0.4pt}
|
57
|
+
\fancypagestyle{plain}{% % style des pages de titres
|
58
|
+
\fancyhf{}
|
59
|
+
\renewcommand{\headrulewidth}{0pt}
|
60
|
+
\renewcommand{\footrulewidth}{0pt}
|
61
|
+
}
|
62
|
+
<% end %>
|
63
|
+
|
64
|
+
<% if @document_class == "report" %>
|
65
|
+
\renewcommand{\thesection}{\Roman{part}.\arabic{section}} % redefinir la numerotation des sections (ex: I.2)
|
66
|
+
<% end %>
|
67
|
+
|
68
|
+
\makeatletter
|
69
|
+
\@addtoreset{section}{part} % reprendre a partir de 1 les sections des parties suivantes
|
70
|
+
\makeatother
|
71
|
+
|
72
|
+
%\AtBeginDocument{%
|
73
|
+
% \renewcommand{\abstractname}{} % renommer le resume
|
74
|
+
%}
|
75
|
+
|
76
|
+
%%%%%%%%%
|
77
|
+
% CORPS %
|
78
|
+
%%%%%%%%%
|
79
|
+
|
80
|
+
\begin{document} % debut du document
|
81
|
+
|
82
|
+
\maketitle % afficher le titre
|
83
|
+
|
84
|
+
% resume
|
85
|
+
\begin{abstract}
|
86
|
+
\end{abstract}
|
87
|
+
|
88
|
+
\tableofcontents % table des matieres
|
89
|
+
|
90
|
+
<% if @listings %>
|
91
|
+
\lstlistoflistings % tables des listings
|
92
|
+
<% end %>
|
93
|
+
|
94
|
+
<% if @document_class == "article" %>
|
95
|
+
\newpage
|
96
|
+
<% elsif @document_class == "report" %>
|
97
|
+
\unnumpart{Introduction}
|
98
|
+
<% end %>
|
99
|
+
|
100
|
+
\end{document} % fin du document
|
101
|
+
%EOF
|
102
|
+
|
@@ -0,0 +1,51 @@
|
|
1
|
+
% LaTeX skeleton
|
2
|
+
% generated on <%= Time.now %>
|
3
|
+
% by <%= @author %> with the Condom lib
|
4
|
+
|
5
|
+
%%%%%%%%%%%%%
|
6
|
+
% PREAMBULE %
|
7
|
+
%%%%%%%%%%%%%
|
8
|
+
|
9
|
+
% http://latex-beamer.sourceforge.net/
|
10
|
+
% http://www.tex.ac.uk/tex-archive/macros/latex/contrib/beamer/doc/beameruserguide.pdf
|
11
|
+
|
12
|
+
\documentclass{beamer}
|
13
|
+
\usetheme{Warsaw}
|
14
|
+
|
15
|
+
\input{inc/packages}
|
16
|
+
\input{inc/colors}
|
17
|
+
\input{inc/commands}
|
18
|
+
<% if @listings %>
|
19
|
+
\input{inc/lst-conf} % fichier de config du paquet listings
|
20
|
+
<% end %>
|
21
|
+
|
22
|
+
<% if @graphics %>
|
23
|
+
\graphicspath{{fig/}} % chemins vers les images
|
24
|
+
<% end %>
|
25
|
+
|
26
|
+
% informations du document
|
27
|
+
\author{<%= @author %>}
|
28
|
+
\date{Le <%= @date %>}
|
29
|
+
\title{<%= @title %>}
|
30
|
+
\institute{}
|
31
|
+
|
32
|
+
\AtBeginSubsection[]
|
33
|
+
{
|
34
|
+
\begin{frame}<beamer>
|
35
|
+
\frametitle{Plan}
|
36
|
+
\tableofcontents[currentsection,currentsubsection]
|
37
|
+
\end{frame}
|
38
|
+
}
|
39
|
+
|
40
|
+
%%%%%%%%%
|
41
|
+
% CORPS %
|
42
|
+
%%%%%%%%%
|
43
|
+
|
44
|
+
\begin{document} % debut du document
|
45
|
+
|
46
|
+
\begin{frame}
|
47
|
+
\titlepage
|
48
|
+
\end{frame}
|
49
|
+
|
50
|
+
\end{document} % fin du document
|
51
|
+
%EOF
|
@@ -0,0 +1,44 @@
|
|
1
|
+
\usepackage[T1]{fontenc} % codage des caracteres
|
2
|
+
|
3
|
+
<% enc = (PLATFORM.include? "linux") ? "utf8" : "latin1" %>
|
4
|
+
\usepackage[<%= enc %>]{inputenc} % encodage du fichier (utf8 ou latin1)
|
5
|
+
\usepackage[<%= @language %>]{babel} % langue
|
6
|
+
\usepackage{mathpazo} % selection de la police
|
7
|
+
\usepackage{geometry} % mise en page
|
8
|
+
\usepackage{xcolor} % pour colorer des elements
|
9
|
+
|
10
|
+
<% if @graphics %>
|
11
|
+
\usepackage{graphicx} % pour inserer des images
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<% if @math %>
|
15
|
+
% math
|
16
|
+
\usepackage{amssymb} % symboles mathematiques
|
17
|
+
%\usepackage{amsmath} % commandes mathematiques
|
18
|
+
<% end %>
|
19
|
+
|
20
|
+
<% if @pdf %>
|
21
|
+
% pdf
|
22
|
+
\usepackage{url} % permet l'insertion d'url
|
23
|
+
\usepackage[pdftex]{hyperref} % permet l'hypertexte (rend les liens cliquables)
|
24
|
+
<% end %>
|
25
|
+
|
26
|
+
<% if @listings %>
|
27
|
+
% listings
|
28
|
+
\usepackage{listings} % permet d'inserer du code (multi-langage)
|
29
|
+
\usepackage{courier}
|
30
|
+
\usepackage{caption}
|
31
|
+
<% end %>
|
32
|
+
|
33
|
+
<% if @fancyhdr %>
|
34
|
+
% fancyhdr
|
35
|
+
\usepackage{lastpage} % derniere page
|
36
|
+
\usepackage{fancyhdr} % en-tete et pied de page
|
37
|
+
<% end %>
|
38
|
+
|
39
|
+
\usepackage{multicol}
|
40
|
+
|
41
|
+
<% for package in @packages do %>
|
42
|
+
\usepackage{#{package}}
|
43
|
+
<% end %>
|
44
|
+
|
metadata
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: condom
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Vivien Didelot
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-08-09 00:00:00 +10:00
|
19
|
+
default_executable:
|
20
|
+
dependencies: []
|
21
|
+
|
22
|
+
description:
|
23
|
+
email: vivien.didelot@gmail.com
|
24
|
+
executables:
|
25
|
+
- condom
|
26
|
+
extensions: []
|
27
|
+
|
28
|
+
extra_rdoc_files: []
|
29
|
+
|
30
|
+
files:
|
31
|
+
- lib/views/flyleaf.tex.erb
|
32
|
+
- lib/views/main.tex.erb
|
33
|
+
- lib/views/lst-conf.tex.erb
|
34
|
+
- lib/views/packages.tex.erb
|
35
|
+
- lib/views/fig.tex.erb
|
36
|
+
- lib/views/main_beamer.tex.erb
|
37
|
+
- lib/views/colors.tex.erb
|
38
|
+
- lib/views/Makefile.erb
|
39
|
+
- lib/views/commands.tex.erb
|
40
|
+
- lib/condom.rb
|
41
|
+
- README
|
42
|
+
- CHANGELOG
|
43
|
+
- bin/condom
|
44
|
+
has_rdoc: true
|
45
|
+
homepage:
|
46
|
+
licenses: []
|
47
|
+
|
48
|
+
post_install_message:
|
49
|
+
rdoc_options: []
|
50
|
+
|
51
|
+
require_paths:
|
52
|
+
- lib
|
53
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 3
|
59
|
+
segments:
|
60
|
+
- 0
|
61
|
+
version: "0"
|
62
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
hash: 3
|
68
|
+
segments:
|
69
|
+
- 0
|
70
|
+
version: "0"
|
71
|
+
requirements: []
|
72
|
+
|
73
|
+
rubyforge_project:
|
74
|
+
rubygems_version: 1.3.7
|
75
|
+
signing_key:
|
76
|
+
specification_version: 3
|
77
|
+
summary: A Ruby gem to create a skeleton for a LaTeX document.
|
78
|
+
test_files: []
|
79
|
+
|