docgenerator 2.1.0 → 2.1.1

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.
Files changed (73) hide show
  1. checksums.yaml +7 -0
  2. data/examples/creole_example.rb +0 -1
  3. data/examples/creole_example_new_plugin.rb +51 -0
  4. data/examples/creole_example_tabular.rb +3 -1
  5. data/examples/wiki2docgenerator_example.rb +2 -2
  6. data/lib/creole/creole2doc.rb +697 -680
  7. data/lib/creole/creole_characters.rb +90 -26
  8. data/lib/creole/creole_inclusion_and_plugins.rb +25 -43
  9. data/lib/creole/creole_inclusions.rb +87 -75
  10. data/lib/creole/creole_placeholder.rb +87 -89
  11. data/lib/creole/creole_plugins.rb +149 -117
  12. data/lib/creole/creole_tabular.rb +247 -141
  13. data/lib/creole/plugins/todonotes.rb +48 -48
  14. data/lib/docgenerator/characters.rb +106 -8
  15. data/lib/docgenerator/compatibility_v1.rb +7 -1
  16. data/lib/docgenerator/document.rb +34 -19
  17. data/lib/docgenerator/element.rb +1 -0
  18. data/lib/docgenerator/element_meta.rb +1 -1
  19. data/lib/docgenerator/elements.rb +594 -535
  20. data/lib/docgenerator/environments.rb +131 -99
  21. data/lib/docgenerator/index.rb +110 -0
  22. data/lib/docgenerator/lists.rb +2 -1
  23. data/lib/docgenerator/packages/caption.rb +32 -34
  24. data/lib/docgenerator/packages/hyperref.rb +1 -0
  25. data/lib/docgenerator/packages/multicol.rb +3 -2
  26. data/lib/docgenerator/packages/pdfpages.rb +71 -20
  27. data/lib/docgenerator/packages/scrpage2.rb +99 -142
  28. data/lib/docgenerator/packages/url.rb +75 -81
  29. data/lib/docgenerator/sections.rb +98 -98
  30. data/lib/docgenerator/standard.rb +8 -1
  31. data/lib/docgenerator/tabular.rb +44 -25
  32. data/lib/docgenerator/templates/docgenerator_template.yaml +28 -0
  33. data/lib/docgenerator/version.rb +146 -0
  34. data/lib/docgenerator.rb +20 -15
  35. data/meta_test_and_doc/build_doc.rb +39 -10
  36. data/meta_test_and_doc/build_test.rb +34 -12
  37. data/meta_test_and_doc/manpages/characters.rb +452 -20
  38. data/meta_test_and_doc/manpages/elementlist.rb +304 -0
  39. data/meta_test_and_doc/manpages/elements.rb +305 -42
  40. data/meta_test_and_doc/manpages/others.rb +403 -0
  41. data/meta_test_and_doc/manpages/pdfpages.rb +117 -18
  42. data/meta_test_and_doc/manpages/readme.rdoc +3 -1
  43. data/meta_test_and_doc/manpages/scrpage2.rb +0 -80
  44. data/meta_test_and_doc/manpages/tables.rb +6 -6
  45. data/readme.rdoc +11 -120
  46. data/unittest/expected/test_comment.html +1 -0
  47. data/unittest/expected/test_comment.latex +5 -0
  48. data/unittest/expected/test_comment_complex.html +3 -0
  49. data/unittest/expected/test_comment_complex.latex +15 -0
  50. data/unittest/expected_creole/test_creole_characters_all.html +6 -5
  51. data/unittest/expected_creole/test_creole_characters_all.latex +10 -8
  52. data/unittest/expected_creole/test_creole_creole1.0test.latex +5 -5
  53. data/unittest/expected_creole/test_creole_input.normsource +11 -9
  54. data/unittest/expected_creole/test_creole_list_ul.normsource +57 -51
  55. data/unittest/expected_creole/test_creole_list_ulul_without_ul.html +6 -0
  56. data/unittest/expected_creole/test_creole_list_ulul_without_ul.latex +12 -0
  57. data/unittest/expected_creole/test_creole_paragraphs.normsource +12 -10
  58. data/unittest/expected_creole/test_creole_pictures.latex +2 -2
  59. data/unittest/expected_creole/test_creole_pictures_css.latex +2 -2
  60. data/unittest/expected_creole/test_creole_pictures_imgclass.latex +2 -2
  61. data/unittest/expected_creole/test_creole_pictures_width.latex +1 -1
  62. data/unittest/expected_creole/test_creole_tabular.latex +3 -3
  63. data/unittest/expected_creole/test_creole_tabular_creole.latex +2 -2
  64. data/unittest/expected_creole/test_creole_tabular_css.latex +3 -3
  65. data/unittest/expected_creole/test_creole_tabular_row_parameters.latex +22 -0
  66. data/unittest/expected_templates/test_standalone.tex +34 -0
  67. data/unittest/expected_wikimedia/test_wiki_picture.latex +12 -12
  68. data/unittest/unittest_creole.rb +22 -3
  69. data/unittest/unittest_creole_tabular.rb +34 -1
  70. data/unittest/unittest_docgenerator.rb +46 -3
  71. data/unittest/unittest_docgenerator_characters.rb +527 -82
  72. data/unittest/unittest_templates.rb +1 -1
  73. metadata +149 -108
@@ -33,7 +33,7 @@ Define of
33
33
  * h1...h6
34
34
 
35
35
  =end
36
- module Sectioning
36
+ module Sectioning
37
37
 
38
38
  =begin rdoc
39
39
  Define Element :sectioning
@@ -47,68 +47,68 @@ Attributes may be:
47
47
  * HTML_ATTR_EVENTS
48
48
  * :lang, ATTR_LANG
49
49
  =end
50
- class DummySectioning < Element
51
- class << self
52
- def inherited(subclass)
53
- Element.inherited(subclass)
54
- subclass.class_eval(<<-attr
55
- add_attributes HTML_ATTR_CORE
56
- add_attributes HTML_ATTR_I18N
57
- add_attributes HTML_ATTR_EVENTS
58
- add_attribute :lang, ATTR_LANG
59
- add_attribute :short, Attribute.create( [ :latex ] )
60
- attr
61
- )
62
- end
50
+ class DummySectioning < Element
51
+ class << self
52
+ def inherited(subclass)
53
+ Element.inherited(subclass)
54
+ subclass.class_eval(<<-attr
55
+ add_attributes HTML_ATTR_CORE
56
+ add_attributes HTML_ATTR_I18N
57
+ add_attributes HTML_ATTR_EVENTS
58
+ add_attribute :lang, ATTR_LANG
59
+ add_attribute :short, Attribute.create( [ :latex ] )
60
+ attr
61
+ )
62
+ end
63
63
  =begin rdoc
64
64
  Define the number of '=' for this section-command in wiki syntax.
65
65
  =end
66
- def set_wikilevel( level )
67
- class_eval( "def wikilevel(); '#{'=' * level}'; end")
68
- end
69
- end #class << self
66
+ def set_wikilevel( level )
67
+ class_eval( "def wikilevel(); '#{'=' * level}'; end")
68
+ end
69
+ end #class << self
70
70
  =begin rdoc
71
71
  Default marup for title for wikis.
72
72
 
73
73
  Is redefined by set_wikilevel( level )
74
74
  =end
75
- def wikilevel(); ''; end
76
-
77
- #Small helper to make TeX-Hyperlinks like in HTML (attribute id)
78
- def hypertarget(id)
79
- return "\\hypertarget{#{id}}{}" if id.is_a?(String)
80
- #~ return '' if ! id.content or id.content.to_s =~/\A\s*\Z/
81
- return '' if ! id.content or id.content.join =~/\A\s*\Z/ #Ruby 1.9
82
- return "\\hypertarget{#{id}}{}"
83
- end
75
+ def wikilevel(); ''; end
76
+
77
+ #Small helper to make TeX-Hyperlinks like in HTML (attribute id)
78
+ def hypertarget(id)
79
+ return "\\hypertarget{#{id}}{}" if id.is_a?(String)
80
+ #~ return '' if ! id.content or id.content.to_s =~/\A\s*\Z/
81
+ return '' if ! id.content or id.content.join =~/\A\s*\Z/ #Ruby 1.9
82
+ return "\\hypertarget{#{id}}{}"
83
+ end
84
84
  =begin rdoc
85
85
  Determine the TeX-Makroname from class name
86
86
  =end
87
- def texmakro()
88
- self.class.name.split('::').last.downcase
89
- end
90
-
91
- add_latex_output '#{linebreak(@crbefore)}' + '\\#{texmakro}' +
92
- '#{texoptional(:short)}' +
93
- '{#{@content}}' +
94
- '#{hypertarget(@attr[:id])}' +
95
- '#{linebreak(@crafter)}'
96
-
97
- add_context_output '#{linebreak(@crbefore)}' + '\\#{texmakro}' +
98
- '#{texoptional(:short)}' +
99
- '{#{@content}}' +
100
- '#{hypertarget(@attr[:id])}' +
101
- '#{linebreak(@crafter)}'
102
-
103
- #'underlined' title
104
- add_text_output "\n" + '#{linebreak(@crbefore)}#{@content}' + "\n" +
105
- '#{wikilevel.gsub(/=/,\' \')}' +
106
- '-' * 30 + "\n" + '#{linebreak(@crafter)}'
107
-
108
- add_wiki_output '#{linebreak(@crbefore)}' + "\n" + '#{wikilevel}' + '#{@content}' + '#{wikilevel}' + "\n" + '#{linebreak(@crafter)}'
109
-
110
- add_creole_output '#{linebreak(@crbefore)}' + "\n" + '#{wikilevel}' + '#{@content}' + "\n" + '#{linebreak(@crafter)}'
111
- end #Sectioning
87
+ def texmakro()
88
+ self.class.name.split('::').last.downcase
89
+ end
90
+
91
+ add_latex_output '#{linebreak(@crbefore)}' + '\\#{texmakro}' +
92
+ '#{texoptional(:short)}' +
93
+ '{#{@content}}' +
94
+ '#{hypertarget(@attr[:id])}' +
95
+ '#{linebreak(@crafter)}'
96
+
97
+ add_context_output '#{linebreak(@crbefore)}' + '\\#{texmakro}' +
98
+ '#{texoptional(:short)}' +
99
+ '{#{@content}}' +
100
+ '#{hypertarget(@attr[:id])}' +
101
+ '#{linebreak(@crafter)}'
102
+
103
+ #'underlined' title
104
+ add_text_output "\n" + '#{linebreak(@crbefore)}#{@content}' + "\n" +
105
+ '#{wikilevel.gsub(/=/,\' \')}' +
106
+ '-' * 30 + "\n" + '#{linebreak(@crafter)}'
107
+
108
+ add_wiki_output '#{linebreak(@crbefore)}' + "\n" + '#{wikilevel}' + '#{@content}' + '#{wikilevel}' + "\n" + '#{linebreak(@crafter)}'
109
+
110
+ add_creole_output '#{linebreak(@crbefore)}' + "\n" + '#{wikilevel}' + '#{@content}' + "\n" + '#{linebreak(@crafter)}'
111
+ end #Sectioning
112
112
 
113
113
 
114
114
  =begin rdoc
@@ -121,9 +121,9 @@ or
121
121
 
122
122
  Attributes see class DummySectioning.
123
123
  =end
124
- class Part < DummySectioning
125
- #~ add_html_tag ''
126
- end #Part
124
+ class Part < DummySectioning
125
+ #~ add_html_tag ''
126
+ end #Part
127
127
 
128
128
  =begin rdoc
129
129
  Define Element :chapter
@@ -135,10 +135,10 @@ or
135
135
 
136
136
  Attributes see class DummySectioning.
137
137
  =end
138
- class Chapter < DummySectioning
139
- set_wikilevel 1
140
- #~ add_html_tag ''
141
- end #Chapter
138
+ class Chapter < DummySectioning
139
+ set_wikilevel 1
140
+ #~ add_html_tag ''
141
+ end #Chapter
142
142
 
143
143
  =begin rdoc
144
144
  Define Element :h1, :section
@@ -151,11 +151,11 @@ or
151
151
 
152
152
  Attributes see class DummySectioning.
153
153
  =end
154
- class Section < DummySectioning
155
- set_wikilevel 2
156
- add_id :h1
157
- add_html_tag 'h1'
158
- end #H1
154
+ class Section < DummySectioning
155
+ set_wikilevel 2
156
+ add_id :h1
157
+ add_html_tag 'h1'
158
+ end #H1
159
159
 
160
160
  =begin rdoc
161
161
  Define Element :h2, :subsection
@@ -168,11 +168,11 @@ or
168
168
 
169
169
  Attributes see class DummySectioning.
170
170
  =end
171
- class Subsection < DummySectioning
172
- set_wikilevel 3
173
- add_id :h2
174
- add_html_tag 'h2'
175
- end #H2
171
+ class Subsection < DummySectioning
172
+ set_wikilevel 3
173
+ add_id :h2
174
+ add_html_tag 'h2'
175
+ end #H2
176
176
 
177
177
  =begin rdoc
178
178
  Define Element :h3, :subsubsection
@@ -186,11 +186,11 @@ Attributes may be:
186
186
 
187
187
  Attributes see class DummySectioning.
188
188
  =end
189
- class Subsubsection < DummySectioning
190
- set_wikilevel 4
191
- add_id :h3
192
- add_html_tag 'h3'
193
- end #H3
189
+ class Subsubsection < DummySectioning
190
+ set_wikilevel 4
191
+ add_id :h3
192
+ add_html_tag 'h3'
193
+ end #H3
194
194
 
195
195
  =begin rdoc
196
196
  Define Element :h4, :paragraph
@@ -203,11 +203,11 @@ or
203
203
 
204
204
  Attributes see class DummySectioning.
205
205
  =end
206
- class Paragraph < DummySectioning
207
- set_wikilevel 5
208
- add_id :h4
209
- add_html_tag 'h4'
210
- end #H4
206
+ class Paragraph < DummySectioning
207
+ set_wikilevel 5
208
+ add_id :h4
209
+ add_html_tag 'h4'
210
+ end #H4
211
211
 
212
212
 
213
213
  =begin rdoc
@@ -221,11 +221,11 @@ or
221
221
 
222
222
  Attributes see class DummySectioning.
223
223
  =end
224
- class Subparagraph < DummySectioning
225
- set_wikilevel 6
226
- add_id :h5
227
- add_html_tag 'h5'
228
- end #H5
224
+ class Subparagraph < DummySectioning
225
+ set_wikilevel 6
226
+ add_id :h5
227
+ add_html_tag 'h5'
228
+ end #H5
229
229
 
230
230
  =begin rdoc
231
231
  Define Element :h6, :minisec
@@ -238,11 +238,11 @@ or
238
238
 
239
239
  Attributes see class DummySectioning.
240
240
  =end
241
- class Minisec < DummySectioning
242
- set_wikilevel 7
243
- add_id :h6
244
- add_html_tag 'h6'
245
- end #H6
241
+ class Minisec < DummySectioning
242
+ set_wikilevel 7
243
+ add_id :h6
244
+ add_html_tag 'h6'
245
+ end #H6
246
246
 
247
247
 
248
248
  =begin rdoc
@@ -258,13 +258,13 @@ or
258
258
  Attributes may be:
259
259
  * HTML_ATTR_ALL
260
260
  =end
261
- class Addsec < Element
262
- add_attributes HTML_ATTR_CORE
263
- add_attributes HTML_ATTR_I18N
264
- add_attributes HTML_ATTR_EVENTS
265
- add_attribute :lang, ATTR_LANG
266
- add_html_tag 'h2'
267
- add_latex_output '#{linebreak(@crbefore)}' + '\addsec{#{@content}}' + '#{linebreak(@crafter)}'
268
- end #Addsec
269
- end #module Sectioning
261
+ class Addsec < Element
262
+ add_attributes HTML_ATTR_CORE
263
+ add_attributes HTML_ATTR_I18N
264
+ add_attributes HTML_ATTR_EVENTS
265
+ add_attribute :lang, ATTR_LANG
266
+ add_html_tag 'h2'
267
+ add_latex_output '#{linebreak(@crbefore)}' + '\addsec{#{@content}}' + '#{linebreak(@crafter)}'
268
+ end #Addsec
269
+ end #module Sectioning
270
270
  end #module Docgenerator
@@ -51,11 +51,17 @@ will be redefined for Docgenerator::Element
51
51
  end
52
52
  self.respond_to?(:to_str) ? self.to_str : self.to_s
53
53
  end
54
+ #Extend each object with #to_text
54
55
  def to_text(options = {}); to_doc(:text, options); end
56
+ #Extend each object with #to_latex
55
57
  def to_latex(options = {}); to_doc(:latex, options); end
58
+ #Extend each object with #to_context
56
59
  def to_context(options = {}); to_doc(:context, options); end
60
+ #Extend each object with #to_html
57
61
  def to_html(options = {}); to_doc(:html, options); end
62
+ #Extend each object with #to_wiki
58
63
  def to_wiki(options = {}); to_doc(:wiki, options); end
64
+ #Extend each object with #to_creole
59
65
  def to_creole(options = {}); to_doc(:creole, options); end
60
66
  end
61
67
 
@@ -64,7 +70,7 @@ Recursive to_doc for each elements in the array.
64
70
  =end
65
71
  class Array
66
72
  =begin rdoc
67
- Returns the element for each parameter
73
+ Returns the element for each element in the list.
68
74
  =end
69
75
  def to_doc(target, options = {})
70
76
  o = Docgenerator.set_option_defaults(options)
@@ -77,6 +83,7 @@ Returns the element for each parameter
77
83
  o[:log].fatal("ArgumentError to_doc for element <#{el.class}>") if o[:log].fatal?
78
84
  res = el.to_doc(target)
79
85
  end
86
+
80
87
  #Add text. If necessary, convert the encoding.
81
88
  begin
82
89
  str << res
@@ -15,7 +15,9 @@ Definition of tabular elements for docgenerator-gem.
15
15
  TEX_PACKAGE_BOOKTABS = element(:usepackage,{},'booktabs').cr
16
16
 
17
17
  =begin rdoc
18
- Environment Table
18
+ Environment Table.
19
+
20
+ Only LaTeX.
19
21
  =end
20
22
  class Table < Environments::Environment
21
23
  add_attributes HTML_ATTR_ALL
@@ -29,7 +31,7 @@ Tabulars
29
31
 
30
32
  fixme: check on attributes. columnsdescription
31
33
  ~ :table=> {:border=>nil, :width=>nil, :cellpadding=>nil, :cellspacing=>nil},#complete it
32
- ~ :colgroup => {}, #comlpete it
34
+ ~ :colgroup => {}, #complete it
33
35
  =end
34
36
  class Tabular < Element
35
37
  add_attributes HTML_ATTR_ALL
@@ -114,16 +116,21 @@ Output a complete tabular in wikimedia-like tabular extension for creole.
114
116
  Use longtable-package.
115
117
 
116
118
  Requires
117
- doc.head << element(:usepackage,{},'longtable')
119
+ doc.head << element(:usepackage,{},'longtable')
120
+
118
121
  =end
119
122
  class Longtable < Tabular
120
123
  add_attributes Tabular.get_attribute_list( )
124
+ #Position of the longtable in paragraph
125
+ add_attribute :texalignment, Attribute.create( [:latex], %w{l c r} )
121
126
  def to_latex(options={})
122
127
  o = set_option_defaults(options)
123
128
  o[:log].debug("enter to_latex for longtable") if o[:log].debug?
124
129
  cmd = ''
125
130
  cmd << "\n" if @crbefore
126
- cmd << "\\begin{longtable}{"
131
+ cmd << "\\begin{longtable}"
132
+ cmd << "[%s]" % @attr[:texalignment].content.first if @attr[:texalignment]
133
+ cmd << "{"
127
134
  cmd << @attr[:columndescription].content.to_doc(:latex, o)
128
135
  cmd << "}"
129
136
  cmd << "\n" if @crmid
@@ -166,9 +173,13 @@ fixme :width is obligatory
166
173
  end
167
174
  end #class Tabularx
168
175
  =begin rdoc
169
- May only be used insode a tabular. Tabular must set the columns-value.
176
+ May only be used inside a tabular. Tabular must set the columns-value.
170
177
 
171
178
  If not, zero columns is expected and an error is thrown.
179
+ In this cases you can mock a columns definition via an attribute.
180
+ There si now check, if the row is added later to a tabular with the same size.
181
+
182
+ You can add rows in an array.
172
183
  =end
173
184
  class Row < Element
174
185
  add_id :tr
@@ -176,12 +187,13 @@ If not, zero columns is expected and an error is thrown.
176
187
  add_attributes( {
177
188
  :add_vspace => Attribute.create( [:latex] ) ,
178
189
  :bgcolor => Attribute.create( [ :html ] ),
179
- :width => Attribute.create( [ :html ] ),
190
+ :width => Attribute.create( [ :html ] ),
180
191
  :height => Attribute.create( [ :html ] ),
181
- #fixme
182
- #~ :hline => Attribute.create( [:latex], [true, false] ) ,
192
+ :columns => Attribute.create( [] ), #normally set by related table. But useful if columns are created before the table is defined
183
193
  }.update(HTML_ATTR_ALL) )
184
194
  def initialize( attr={}, content = nil)
195
+ local_content = content #store for later analyze
196
+ content = nil #default Element will give an error -> remove content
185
197
  super
186
198
  #For Ruby 1.9: Initialize instance variable
187
199
  @toprule = false
@@ -194,8 +206,16 @@ If not, zero columns is expected and an error is thrown.
194
206
  @cline = false
195
207
  @cmidrule = false
196
208
  @hline = false
209
+ @columns = attr[:columns] #if set, we can suppress error messages
210
+ case local_content
211
+ when nil #ok, no content
212
+ when Array
213
+ local_content.each{|col| self << col }
214
+ else
215
+ @log.error("Row allows no %s as parameter" % local_content.class)
216
+ end
197
217
  end
198
- #Set from tabular
218
+ #Set from tabular or by attribute columns
199
219
  attr_accessor :columns
200
220
  #Set a line after the row.
201
221
  def hline(); @hline = element(:hline); self; end
@@ -233,22 +253,22 @@ If not, zero columns is expected and an error is thrown.
233
253
  def endlastfoot(); @endlastfoot = element(:endlastfoot); self; end
234
254
  #Only Colums are allowed to be added.
235
255
  #In combination with longtable, captions are also allowed.
236
- def << ( row )
256
+ def << ( column )
237
257
  #Check on allowed elements inside a row
238
258
  allowed = false
239
259
  [ :col, :multicolumn, :caption].each{|el|
240
- if row.is_a?( Element.get(el) )
260
+ if column.is_a?( Element.get(el) )
241
261
  allowed = true
242
262
  break
243
263
  end
244
264
  }
245
265
  if ! allowed
246
- @log.warn("Add non-column to tabular (#{row.class})") if @log.warn?
266
+ @log.warn("Add non-column to tabular (#{column.class})") if @log.warn?
247
267
  end
248
- @content << row
268
+ @content << column
249
269
  #Does not work with multicolumns.
250
270
  if !@columns
251
- @log.warn("Add row to tabular with undefined columns number (#{row.inspect})" ) if @log.warn?
271
+ @log.warn("Add row to tabular with undefined columns number (#{column.inspect})" ) if @log.warn?
252
272
  elsif @content.size > @columns
253
273
  @log.warn("Tabular with #{@columns} columns get #{@content.size} columns" ) if @log.warn?
254
274
  end
@@ -264,15 +284,7 @@ If not, zero columns is expected and an error is thrown.
264
284
  cmd = ''
265
285
  cmd << "\n" if @crbefore
266
286
  cmd << @content.map{|cell| cell.to_latex(o)}.join(' & ')
267
- #In direct use, one \\ is ok.
268
- #In usage in documents, two \\ are needed (-> see unittest )
269
- if o[:filename]
270
- o[:log].debug("table/row with corresponding file #{o[:filename].inspect}") if o[:log].debug?
271
- cmd << Regexp.escape('\\' + '\\')
272
- else
273
- o[:log].debug("table/row without corresponding file") if o[:log].debug?
274
- cmd << Regexp.escape('\\')
275
- end
287
+ cmd << Regexp.escape('\\') #escape needed to keep the double \\
276
288
  cmd << "[#{@attr[:add_vspace].content.join}]" if @attr[:add_vspace].content.size > 0
277
289
  cmd << @hline.to_latex(o) if @hline
278
290
  cmd << @toprule.to_latex(o) if @toprule
@@ -301,6 +313,9 @@ If not, zero columns is expected and an error is thrown.
301
313
  @attr[:style] << css = CSS.new if ! css
302
314
 
303
315
  #Doesn't work. Style sheet setting in tr doesn't go to td
316
+ #See http://stackoverflow.com/questions/1384823/how-to-specify-the-bottom-border-of-a-tr, comment of deceze
317
+ # You can't style a <tr>, as it's only a "logical grouping element", but it's not actually rendered.
318
+ # You can only style the <td> or <th> elements inside the <tr>
304
319
  if @hline
305
320
  css[:border_bottom_style] = 'solid'
306
321
  css[:border_bottom_width] = 'medium'
@@ -469,7 +484,11 @@ A column in a tabular.
469
484
  o[:log].debug("enter to_latex for column") if o[:log].debug?
470
485
  cmd = ''
471
486
  cmd << "\n" if @crbefore
472
- cmd << "#{@content.to_latex(o)}"
487
+ cmd << if self.is_a?(Column_th )
488
+ element(:textbf,{}, @content).to_latex(o) #make bold for header line
489
+ else
490
+ "#{@content.to_latex(o)}"
491
+ end
473
492
  cmd << "\n" if @crafter
474
493
  return cmd
475
494
  end
@@ -545,7 +564,7 @@ Multicolumn
545
564
  def to_latex(options={})
546
565
  o = set_option_defaults(options)
547
566
  o[:log].debug("enter to_latex for multicolumn") if o[:log].debug?
548
- o[:log].warn("multicolumn without latex-position") unless @attr[:pos].filled?
567
+ o[:log].warn("multicolumn without latex-position (attribute 'pos')") unless @attr[:pos].filled?
549
568
  cmd = ''
550
569
  cmd << "\n" if @crbefore
551
570
  cmd << "\\multicolumn{#{@attr[:colspan]}}{#{@attr[:pos]}}{#{@content.to_latex(o)}}"
@@ -170,6 +170,34 @@
170
170
  \end{document}
171
171
  % ----------------------------------------------------------------
172
172
 
173
+ :standalone:
174
+ :target: :latex
175
+ :encoding: utf-8
176
+ :source: |
177
+ <<prefix>>
178
+ \documentclass[<<classoptions>>]{standalone}
179
+ \usepackage{babel}
180
+ %Encoding-package depends on TeX-engine
181
+ \usepackage{ifpdf,ifxetex,ifluatex}
182
+ \ifxetex
183
+ \usepackage{fontspec} %Without, umlauts are missing
184
+ \fi
185
+ \ifluatex
186
+ \usepackage[utf8]{luainputenc} %Or in first line: % !Mode:: "TeX:UTF-8".
187
+ \else
188
+ \ifpdf\relax
189
+ \usepackage[utf8]{inputenc}
190
+ \fi
191
+ \fi
192
+ %\usepackage{hyperref}
193
+ % ----------------------------------------------------------------
194
+ <<head>>
195
+ % ----------------------------------------------------------------
196
+ \begin{document}
197
+ <<body>>
198
+ \end{document}
199
+ % ----------------------------------------------------------------
200
+
173
201
  :context:
174
202
  :target: :context
175
203
  :source: |
@@ -0,0 +1,146 @@
1
+ =begin rdoc
2
+ =Version history
3
+ ==Pre-Versions
4
+ ===0.0.x:
5
+ * Developpers version
6
+
7
+ ===0.1.0:
8
+ * to_element
9
+
10
+ ===0.1.1:
11
+ * to_element
12
+
13
+ ==1.0.0:
14
+ * to_doc
15
+ * no @@target any longer
16
+ * Document.new mit Hash
17
+ * unit tests
18
+ * lib-folder
19
+ * Constant DOCGENERATOR_VERSION
20
+ * Published as 1.0.2
21
+
22
+ ===1.0.3:
23
+ * Add table of contents
24
+
25
+ ===1.0.4 (2008-05-06)
26
+ * wiki2docgenerator: delete myscripts.rb
27
+ * wiki2docgenerator: change in link (no cr)
28
+ * Add dependency log4r
29
+ * Correction error 'uninitialized constant CSS_collection (NameError)'
30
+ -> rubyforge
31
+
32
+ ==1.0.5 (2008-09-24)
33
+ * yaml2presentation + docgenerator_beamer.rb
34
+ * Correction packages/docgenerator_scrlettr2.rb
35
+ * wiki2docgenerator: In Tab: Allow ! as replacement for |
36
+ * CSS_collection: Define accessor []
37
+ * Attribute#filled? ignores nil-values
38
+ * Docgenerator:
39
+ *Default-Logger gives message
40
+ *Check META-Values
41
+ *shorttitle adapted
42
+ *Document.new: add option :css
43
+
44
+ ===1.1.0
45
+ * Document.save: Changes interface, options...
46
+ * Wikitext: Ignore multiple empty lines
47
+ * Element#new: Define default-attribute :log for logger (used afterwords as @log)
48
+ * yaml2presentation: New setting :valid_keys
49
+ * package/docgenerator_scrlettr2: Extended
50
+ * default pdflualatex for runtex
51
+ * Add ->, => for text-output
52
+
53
+ ===1.1.1:
54
+ * Document.new: New option parameter/All meta-tags are allowed
55
+ * Document.save: New option :additional_options
56
+ * Wikitext: Add method Wikitext.help
57
+ * Added first version of creole2doc (should replace wiki2docgenerator)
58
+ Details see http://www.wikicreole.org/
59
+ * Little reorg of the Documentation
60
+ published 2009-06-28
61
+
62
+ ===1.1.2:
63
+ * Correction Creole (Unit test test_creole_mix_titles_list)
64
+ * First steps for Context-support (don't expect too much)
65
+
66
+ ==1.2.0:
67
+ * New gem: docgenerator_tools
68
+ * Move yaml2presentation from docgenerator to docgenerator_tools
69
+ * Creole_document makes tableofcontents for tex, not Creole#toc
70
+ * Add creole_rail.rb to docgenerator_tools
71
+ * Add rubycode4doc to docgenerator_tools
72
+ * Add code2structogramm to docgenerator_tools
73
+ * Add Creole-option :ignore
74
+ * Add Creole-option :comment
75
+ * Repair load-bug with usepackage
76
+ * Redefine pathes for privat and tools (check open)
77
+ * Add examples for docgenerator_tools
78
+ * Replace Document#runtex with rake4latex
79
+ * Add Versions to Classes...
80
+ * Reorganize unit tests
81
+ * Ruby 1.9 enabled
82
+
83
+ ===1.2.1 2011-02-20
84
+ * More Ruby 1.9.1 additions (convert encodings)
85
+ * Creole: Images with option width (LaTeX)
86
+ * Corrected examples, added expected results of the examples (increases gem size)
87
+ * corrections footnote handling
88
+
89
+ ===1.2.2
90
+ * correction wiki2docgenerator.rb, wiki2docgenerator_example.rb
91
+ * add creole2doc_example.rb
92
+ * add todonotes support (only LaTeX)
93
+
94
+ ==2.0.0 2011-04-29
95
+ * Pack everything in module Docgenerator
96
+ * Group classes to modules
97
+ * clean up lib-folder
98
+ * docgenerator_tools integrated in docgenerator (and docgenerator4presentation-gem)
99
+
100
+ ==2.1.0 2012-06-16
101
+ * Encoding:
102
+ * Switch templates to UTF-8
103
+ * enable encoding for templates + unittest_templates.rb
104
+ * Creole
105
+ * Correction Docgenerator::Creole::Creole#toc
106
+ * Add parameter Docgenerator::Creole::Creole#new logname
107
+ * new: Docgenerator::Creole::Creole_longtable
108
+ * Correction implicit HTTP (Use \url instead href)
109
+ * to_creole for tables implemented Docgenerator::Tables::Tabular
110
+ * Docgenerator::Document.new:
111
+ * option latex_option (replacement for Docgenerator::Document#add_option)
112
+ * option logname
113
+ * Correction element caption
114
+ * href: change internal links
115
+ * element li: add type
116
+
117
+ ==New
118
+ * Reorganize Version history
119
+
120
+ ==2.1.1 2015-04-01
121
+ * Document:
122
+ * Added subtitle-option (needed for koma-script titlepage).
123
+ * Added encoding information to file prefix.
124
+ * Templates:
125
+ * add standalone
126
+ * Creole:
127
+ * Improved encoding handling
128
+ * tabular: Option hline
129
+ * Define Docgenerator::Creole::Creole.targetdir
130
+ * Define plugin latex Docgenerator::Creole::Creole::Plugins::Creole_short_latex
131
+ * Comment function in wiki method adapted
132
+ * Elements:
133
+ * Added Docgenerator::Index to build index.
134
+ * Docgenerator::Tables::Row
135
+ * allows definition of column number (usefull if rows are created before the tabular exists)
136
+ * Can receive content in an array
137
+ * Packages:
138
+ * Docgenerator::Packages::PDFPages
139
+ New: Docgenerator::Packages::PDFPages::IncludePDFmerge
140
+ =end
141
+
142
+ #
143
+ module Docgenerator
144
+ #Define Version number.
145
+ VERSION = '2.1.1'
146
+ end