latex_document 0.0.1 → 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2848eabeb43d787e366107bc4b6fc5b22a250cdd
4
- data.tar.gz: 568679bdaf1ec16609f50f18f7a377a3fdd0eef9
3
+ metadata.gz: 17aab20bc284ccbeaf84f8d44b4c5b1b7745615a
4
+ data.tar.gz: 6afac59b9210f3d095b1578dc2023b95c951610e
5
5
  SHA512:
6
- metadata.gz: 32e5d6ed1192500eb3ab06e3840d308f53e29749eb3d0b9d609e4b3a90a4ee8af0b8600d03428977dbbf1cee7861c74f8127c9d965abe20d685988e6123e2628
7
- data.tar.gz: 71e3f00283f666e4b1b8ed22251846ab4317243a4c80c289f8de3b629d1d6145acd0bd7cc9290967f1890048e8c44c67891bc5e9b454dcfdcb445637b2417010
6
+ metadata.gz: 450b21470a0eb3388a57462a5f9c799fb2ab019a03d7f168b02dd2fa647665ca2442ce1a12f8cae7ea66467ded8698b0724a277e233c0c818ff9aafe33673b4e
7
+ data.tar.gz: 6aad7c83e4b40618d9cafdc15e063b27a1520caea7524d88b7af538462b2c26621712d3182a7887111bf388b46471f492fb6fcc809c5775c595b2155106171ea
@@ -4,10 +4,13 @@ require 'thor'
4
4
  require 'date'
5
5
 
6
6
  module LatexDocument
7
- class New < Thor::Group
7
+ class NewDocument < Thor::Group
8
8
  include Thor::Actions
9
9
 
10
- argument :name, :desc => 'Name of the new project.'
10
+ DEFAULT_AUTHOR = 'TODO: Author'
11
+
12
+ argument :name, :desc => 'Name of the new document.'
13
+ class_option :author, :desc => 'Author of the new document.', :default => DEFAULT_AUTHOR
11
14
 
12
15
  def self.source_root
13
16
  File.expand_path('../../', __FILE__)
@@ -18,22 +21,10 @@ module LatexDocument
18
21
  end
19
22
 
20
23
  def fill_root
21
- empty_directory file_path('src')
22
- empty_directory file_path('include')
23
- empty_directory file_path('diagrams')
24
24
  create_file_from_template "Makefile"
25
25
  end
26
26
 
27
- def src
28
- template("templates/document.tex.tt", file_path("src/#{name}.tex"))
29
- template("templates/references.bib.tt", file_path("src/references.bib"))
30
- end
31
-
32
- def include
33
- template("templates/mydefault.sty.tt", file_path("include/mydefault.sty"))
34
- end
35
-
36
- private
27
+ protected
37
28
 
38
29
  def title
39
30
  title_string = name.dup
@@ -42,15 +33,19 @@ module LatexDocument
42
33
  title_string.gsub(/[_\.\s](.)/) { " #{$1.upcase}" } # Snake case
43
34
  end
44
35
 
36
+ def author
37
+ options[:author]
38
+ end
39
+
45
40
  def date
46
- Date.today.to_s
41
+ Date.today.strftime('%B %-d, %Y')
47
42
  end
48
43
 
49
44
  def file_path(file_name)
50
45
  File.join name, file_name
51
46
  end
52
47
 
53
- def create_file_from_template(file_name)
48
+ def create_file_from_shared_template(file_name)
54
49
  template(
55
50
  "templates/#{file_name}.tt",
56
51
  file_path(file_name)
@@ -58,16 +53,71 @@ module LatexDocument
58
53
  end
59
54
  end
60
55
 
56
+ class Tex < NewDocument
57
+ def fill_root
58
+ super
59
+ empty_directory file_path('src')
60
+ empty_directory file_path('include')
61
+ end
62
+
63
+ def src
64
+ template("templates/tex/src/document.tex.tt", file_path("src/#{name}.tex"))
65
+ template("templates/references.bib.tt", file_path("src/references.bib"))
66
+ end
67
+
68
+ def include
69
+ create_file_from_template("include/mydefault.sty")
70
+ end
71
+
72
+ protected
73
+
74
+ def create_file_from_template(file_name)
75
+ template(
76
+ "templates/tex/#{file_name}.tt",
77
+ file_path(file_name)
78
+ )
79
+ end
80
+
81
+ end
82
+
83
+ class Md < NewDocument
84
+ def fill_root
85
+ super
86
+ template("templates/md/document.tex.md.tt", file_path("#{name}.tex.md"))
87
+ create_file_from_shared_template 'references.bib'
88
+ create_file_from_template 'template.pandoc'
89
+ end
90
+
91
+ protected
92
+
93
+ def create_file_from_template(file_name)
94
+ template(
95
+ "templates/md/#{file_name}.tt",
96
+ file_path(file_name)
97
+ )
98
+ end
99
+ end
100
+
61
101
  class LatexDocument < Thor
62
- map 'n' => :new
102
+ map 't' => :tex
103
+
104
+ register(
105
+ Tex,
106
+ 'tex',
107
+ "tex NAME [author=AUTHOR]",
108
+ "Creates a new latex document with name NAME and author AUTHOR, the latter of which defaults to \"#{Tex::DEFAULT_AUTHOR}\"."
109
+ )
110
+ tasks["tex"].options = Tex.class_options
111
+
112
+ map 'm' => :md
63
113
 
64
114
  register(
65
- New,
66
- 'new',
67
- 'new NAME',
68
- "Creates a new latex document NAME"
115
+ Md,
116
+ 'md',
117
+ "md NAME [author=AUTHOR]",
118
+ "Creates a new markdown/latex hybrid document with name NAME and author AUTHOR, the latter of which defaults to \"#{Md::DEFAULT_AUTHOR}]\"."
69
119
  )
70
- tasks["new"].options = New.class_options
120
+ tasks["md"].options = Md.class_options
71
121
  end
72
122
  end
73
123
 
@@ -1,3 +1,3 @@
1
1
  module LatexDocument
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -0,0 +1,43 @@
1
+ #THIS_DIR := $(CURDIR)/$(dir $(lastword $(MAKEFILE_LIST)))
2
+ THIS_DIR := ./
3
+
4
+ default: pdf
5
+
6
+ TARGET_BASE = <%= name %>
7
+ TARGET := $(TARGET_BASE).pdf
8
+ SRC_DIR = $(THIS_DIR)
9
+ TARGET_SRC := $(SRC_DIR)/$(TARGET_BASE).tex.md
10
+
11
+ BIB := $(SRC_DIR)/references.bib
12
+
13
+ TEMPLATE_DIR = $(THIS_DIR)
14
+ TEMPLATE = template.pandoc
15
+ TEMPLATE_SRC := $(TEMPLATE_DIR)/$(TEMPLATE)
16
+
17
+ # Default geometry
18
+ geometry = margin=1cm,landscape
19
+
20
+ $(TARGET): $(TEMPLATE_SRC) $(TARGET_SRC) | $(TEMPLATE_DIR)
21
+ pandoc $(TARGET_SRC) -o $(THIS_DIR)/$(TARGET) --template=$(TEMPLATE_SRC) --biblio $(BIB) --variable geometry:$(geometry)
22
+
23
+ pdf: $(TARGET)
24
+
25
+ # Constant definition
26
+ NIL = __NIL__
27
+
28
+ # Arguments to the `link` command
29
+ template := $(NIL)
30
+ biblio := $(NIL)
31
+
32
+ link:
33
+ if [ $(template) != $(NIL) ] && [ -e $(template) ]; then \
34
+ rm $(TEMPLATE_SRC) > /dev/null; \
35
+ ln -s $(template) $(TEMPLATE_SRC); \
36
+ fi; \
37
+ if [ $(biblio) != $(NIL) ] && [ -e $(biblio) ]; then \
38
+ rm $(BIB) > /dev/null; \
39
+ ln -s $(biblio) $(BIB); \
40
+ fi;
41
+
42
+ clean:
43
+ -rm $(TARGET)
@@ -0,0 +1,12 @@
1
+ % <%= title %>
2
+ % <%= author %>
3
+ % <%= date %>
4
+
5
+ Section 1
6
+ =========
7
+
8
+ Test reference: [@Lanctot09mccfr]
9
+
10
+
11
+ References
12
+ ==========
@@ -0,0 +1,206 @@
1
+ \documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$lang$,$endif$$if(papersize)$$papersize$,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{$documentclass$}
2
+ $if(fontfamily)$
3
+ \usepackage{$fontfamily$}
4
+ $else$
5
+ \usepackage{lmodern}
6
+ $endif$
7
+ $if(linestretch)$
8
+ \usepackage{setspace}
9
+ \setstretch{$linestretch$}
10
+ $endif$
11
+ \usepackage{amssymb,amsmath}
12
+ \usepackage{mathtools} % Better boxes around math
13
+ \usepackage{ifxetex,ifluatex}
14
+ \usepackage{fixltx2e} % provides \textsubscript
15
+ \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
16
+ \usepackage[T1]{fontenc}
17
+ \usepackage[utf8]{inputenc}
18
+ $if(euro)$
19
+ \usepackage{eurosym}
20
+ $endif$
21
+ \else % if luatex or xelatex
22
+ \ifxetex
23
+ \usepackage{mathspec}
24
+ \usepackage{xltxtra,xunicode}
25
+ \else
26
+ \usepackage{fontspec}
27
+ \fi
28
+ \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
29
+ \newcommand{\euro}{€}
30
+ $if(mainfont)$
31
+ \setmainfont{$mainfont$}
32
+ $endif$
33
+ $if(sansfont)$
34
+ \setsansfont{$sansfont$}
35
+ $endif$
36
+ $if(monofont)$
37
+ \setmonofont[Mapping=tex-ansi]{$monofont$}
38
+ $endif$
39
+ $if(mathfont)$
40
+ \setmathfont(Digits,Latin,Greek){$mathfont$}
41
+ $endif$
42
+ \fi
43
+ % use upquote if available, for straight quotes in verbatim environments
44
+ \IfFileExists{upquote.sty}{\usepackage{upquote}}{}
45
+ % use microtype if available
46
+ \IfFileExists{microtype.sty}{\usepackage{microtype}}{}
47
+ $if(geometry)$
48
+ \usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
49
+ $endif$
50
+ $if(natbib)$
51
+ \usepackage{natbib}
52
+ \bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$}
53
+ $endif$
54
+ $if(biblatex)$
55
+ \usepackage{biblatex}
56
+ $if(biblio-files)$
57
+ \bibliography{$biblio-files$}
58
+ $endif$
59
+ $endif$
60
+ $if(listings)$
61
+ \usepackage{listings}
62
+ $endif$
63
+ $if(lhs)$
64
+ \lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
65
+ $endif$
66
+ $if(highlighting-macros)$
67
+ $highlighting-macros$
68
+ $endif$
69
+ $if(verbatim-in-note)$
70
+ \usepackage{fancyvrb}
71
+ $endif$
72
+ $if(tables)$
73
+ \usepackage{longtable,booktabs}
74
+ $endif$
75
+ $if(graphics)$
76
+ \usepackage{graphicx}
77
+ \makeatletter
78
+ \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
79
+ \def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
80
+ \makeatother
81
+ % Scale images if necessary, so that they will not overflow the page
82
+ % margins by default, and it is still possible to overwrite the defaults
83
+ % using explicit options in \includegraphics[width, height, ...]{}
84
+ \setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}
85
+ $endif$
86
+ \ifxetex
87
+ \usepackage[setpagesize=false, % page size defined by xetex
88
+ unicode=false, % unicode breaks when used with xetex
89
+ xetex]{hyperref}
90
+ \else
91
+ \usepackage[unicode=true]{hyperref}
92
+ \fi
93
+ \hypersetup{breaklinks=true,
94
+ bookmarks=true,
95
+ pdfauthor={$author-meta$},
96
+ pdftitle={$title-meta$},
97
+ colorlinks=true,
98
+ citecolor=$if(citecolor)$$citecolor$$else$blue$endif$,
99
+ urlcolor=$if(urlcolor)$$urlcolor$$else$blue$endif$,
100
+ linkcolor=$if(linkcolor)$$linkcolor$$else$magenta$endif$,
101
+ pdfborder={0 0 0}}
102
+ \urlstyle{same} % don't use monospace font for urls
103
+ $if(links-as-notes)$
104
+ % Make links footnotes instead of hotlinks:
105
+ \renewcommand{\href}[2]{#2\footnote{\url{#1}}}
106
+ $endif$
107
+ $if(strikeout)$
108
+ \usepackage[normalem]{ulem}
109
+ % avoid problems with \sout in headers with hyperref:
110
+ \pdfstringdefDisableCommands{\renewcommand{\sout}{}}
111
+ $endif$
112
+ \setlength{\parindent}{0pt}
113
+ \setlength{\parskip}{6pt plus 2pt minus 1pt}
114
+ \setlength{\emergencystretch}{3em} % prevent overfull lines
115
+ $if(numbersections)$
116
+ \setcounter{secnumdepth}{5}
117
+ $else$
118
+ \setcounter{secnumdepth}{0}
119
+ $endif$
120
+ $if(verbatim-in-note)$
121
+ \VerbatimFootnotes % allows verbatim text in footnotes
122
+ $endif$
123
+ $if(lang)$
124
+ \ifxetex
125
+ \usepackage{polyglossia}
126
+ \setmainlanguage{$mainlang$}
127
+ \else
128
+ \usepackage[$lang$]{babel}
129
+ \fi
130
+ $endif$
131
+
132
+ %%% macros
133
+ \newcommand{\final}{\fbox}
134
+ \newcommand{\bs}{\boldsymbol}
135
+ \newcommand{\tr}{\operatorname{tr}}
136
+ \newcommand{\norm}[1]{\left\lVert#1\right\rVert}
137
+ \newcommand{\set}[1]{\left\{ {#1} \right\}}
138
+
139
+ \newcommand{\diag}[1]{\mathop{\bigtriangleup\subex{#1}}\nolimits}
140
+ \newcommand{\stack}[1]{\operatorname{stack}\subex{#1}}
141
+ \newcommand{\deriv}[2]{\frac{d #1}{ d #2 }}
142
+
143
+ \newcommand{\subex}[1]{\left(#1\right)}
144
+ %%%%
145
+
146
+ $if(title)$
147
+ \title{$title$}
148
+ $endif$
149
+ $if(subtitle)$
150
+ \subtitle{$subtitle$}
151
+ $endif$
152
+ $if(author)$
153
+ \author{$for(author)$$author$$sep$ \and $endfor$}
154
+ $endif$
155
+ $if(date)$
156
+ \date{$date$}
157
+ $endif$
158
+ $for(header-includes)$
159
+ $header-includes$
160
+ $endfor$
161
+
162
+ \begin{document}
163
+ $if(title)$
164
+ \maketitle
165
+ $endif$
166
+ $if(abstract)$
167
+ \begin{abstract}
168
+ $abstract$
169
+ \end{abstract}
170
+ $endif$
171
+
172
+ $for(include-before)$
173
+ $include-before$
174
+
175
+ $endfor$
176
+ $if(toc)$
177
+ {
178
+ \hypersetup{linkcolor=black}
179
+ \setcounter{tocdepth}{$toc-depth$}
180
+ \tableofcontents
181
+ }
182
+ $endif$
183
+ $body$
184
+
185
+ $if(natbib)$
186
+ $if(biblio-files)$
187
+ $if(biblio-title)$
188
+ $if(book-class)$
189
+ \renewcommand\bibname{$biblio-title$}
190
+ $else$
191
+ \renewcommand\refname{$biblio-title$}
192
+ $endif$
193
+ $endif$
194
+ \bibliography{$biblio-files$}
195
+
196
+ $endif$
197
+ $endif$
198
+ $if(biblatex)$
199
+ \printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$
200
+
201
+ $endif$
202
+ $for(include-after)$
203
+ $include-after$
204
+
205
+ $endfor$
206
+ \end{document}
@@ -0,0 +1,10 @@
1
+ @inproceedings{Lanctot09mccfr,
2
+ title = {Monte Carlo Sampling for Regret Minimization in Extensive Games},
3
+ author = {Marc Lanctot and Kevin Waugh and Martin Zinkevich and Michael Bowling},
4
+ booktitle = {Advances in Neural Information Processing Systems 22},
5
+ editor = {Y. Bengio and D. Schuurmans and J. Lafferty and C. K. I. Williams and A. Culotta},
6
+ pages = {1078--1086},
7
+ year = {2009},
8
+ AcceptRate = {24\%},
9
+ AcceptNumbers = {263 of 1105}
10
+ }
@@ -5,7 +5,7 @@
5
5
 
6
6
  % Document metadata
7
7
  \title{<%= title %>}
8
- \author{@todo Author}
8
+ \author{<%= author %>}
9
9
  \date{<%= date %>}
10
10
 
11
11
  \begin{document}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: latex_document
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dustin Morrill
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-28 00:00:00.000000000 Z
11
+ date: 2014-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -68,10 +68,13 @@ files:
68
68
  - latex_document.gemspec
69
69
  - lib/latex_document.rb
70
70
  - lib/latex_document/version.rb
71
- - templates/Makefile.tt
72
- - templates/document.tex.tt
73
- - templates/mydefault.sty.tt
71
+ - templates/md/Makefile.tt
72
+ - templates/md/document.tex.md.tt
73
+ - templates/md/template.pandoc.tt
74
74
  - templates/references.bib.tt
75
+ - templates/tex/Makefile.tt
76
+ - templates/tex/include/mydefault.sty.tt
77
+ - templates/tex/src/document.tex.tt
75
78
  homepage: https://github.com/dmorrill10/latex_document
76
79
  licenses:
77
80
  - MIT