aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v3/texpdf_format.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v3/texpdf_format.rb')
-rw-r--r--lib/sisu/v3/texpdf_format.rb164
1 files changed, 161 insertions, 3 deletions
diff --git a/lib/sisu/v3/texpdf_format.rb b/lib/sisu/v3/texpdf_format.rb
index d7942121..76f0630a 100644
--- a/lib/sisu/v3/texpdf_format.rb
+++ b/lib/sisu/v3/texpdf_format.rb
@@ -293,6 +293,141 @@ module SiSU_TeX_Pdf
# '\subsubsection*{\1}')
dob
end
+ def hang
+ case @dob.indent
+ when /0/
+ case @dob.hang
+ when /0/; indent,hang='0mm', '0mm'
+ when /1/; indent,hang='0mm','10mm'
+ when /2/; indent,hang='0mm','20mm'
+ when /3/; indent,hang='0mm','30mm'
+ when /4/; indent,hang='0mm','40mm'
+ when /5/; indent,hang='0mm','50mm'
+ when /6/; indent,hang='0mm','60mm'
+ when /7/; indent,hang='0mm','70mm'
+ when /8/; indent,hang='0mm','80mm'
+ when /9/; indent,hang='0mm','90mm'
+ end
+ when /1/
+ case @dob.hang
+ when /0/; indent,hang='10mm','-10mm'
+ when /1/; indent,hang='10mm', '0mm'
+ when /2/; indent,hang='10mm', '10mm'
+ when /3/; indent,hang='10mm', '20mm'
+ when /4/; indent,hang='10mm', '30mm'
+ when /5/; indent,hang='10mm', '40mm'
+ when /6/; indent,hang='10mm', '50mm'
+ when /7/; indent,hang='10mm', '60mm'
+ when /8/; indent,hang='10mm', '70mm'
+ when /9/; indent,hang='10mm', '80mm'
+ end
+ when /2/
+ case @dob.hang
+ when /0/; indent,hang='20mm','-20mm'
+ when /1/; indent,hang='20mm','-10mm'
+ when /2/; indent,hang='20mm', '0mm'
+ when /3/; indent,hang='20mm', '10mm'
+ when /4/; indent,hang='20mm', '20mm'
+ when /5/; indent,hang='20mm', '30mm'
+ when /6/; indent,hang='20mm', '40mm'
+ when /7/; indent,hang='20mm', '50mm'
+ when /8/; indent,hang='20mm', '60mm'
+ when /9/; indent,hang='20mm', '70mm'
+ end
+ when /3/
+ case @dob.hang
+ when /0/; indent,hang='30mm','-30mm'
+ when /1/; indent,hang='30mm','-20mm'
+ when /2/; indent,hang='30mm','-10mm'
+ when /3/; indent,hang='30mm', '0mm'
+ when /4/; indent,hang='30mm', '10mm'
+ when /5/; indent,hang='30mm', '20mm'
+ when /6/; indent,hang='30mm', '30mm'
+ when /7/; indent,hang='30mm', '40mm'
+ when /8/; indent,hang='30mm', '50mm'
+ when /9/; indent,hang='30mm', '60mm'
+ end
+ when /4/
+ case @dob.hang
+ when /0/; indent,hang='40mm','-40mm'
+ when /1/; indent,hang='40mm','-30mm'
+ when /2/; indent,hang='40mm','-20mm'
+ when /3/; indent,hang='40mm','-10mm'
+ when /4/; indent,hang='40mm', '0mm'
+ when /5/; indent,hang='40mm', '10mm'
+ when /6/; indent,hang='40mm', '20mm'
+ when /7/; indent,hang='40mm', '30mm'
+ when /8/; indent,hang='40mm', '40mm'
+ when /9/; indent,hang='40mm', '50mm'
+ end
+ when /5/
+ case @dob.hang
+ when /0/; indent,hang='50mm','-50mm'
+ when /1/; indent,hang='50mm','-40mm'
+ when /2/; indent,hang='50mm','-30mm'
+ when /3/; indent,hang='50mm','-20mm'
+ when /4/; indent,hang='50mm','-10mm'
+ when /5/; indent,hang='50mm', '0mm'
+ when /6/; indent,hang='50mm', '10mm'
+ when /7/; indent,hang='50mm', '20mm'
+ when /8/; indent,hang='50mm', '30mm'
+ when /9/; indent,hang='50mm', '40mm'
+ end
+ when /6/
+ case @dob.hang
+ when /0/; indent,hang='60mm','-60mm'
+ when /1/; indent,hang='60mm','-50mm'
+ when /2/; indent,hang='60mm','-40mm'
+ when /3/; indent,hang='60mm','-30mm'
+ when /4/; indent,hang='60mm','-20mm'
+ when /5/; indent,hang='60mm','-10mm'
+ when /6/; indent,hang='60mm', '0mm'
+ when /7/; indent,hang='60mm', '10mm'
+ when /8/; indent,hang='60mm', '20mm'
+ when /9/; indent,hang='60mm', '30mm'
+ end
+ when /7/
+ case @dob.hang
+ when /0/; indent,hang='70mm','-70mm'
+ when /1/; indent,hang='70mm','-60mm'
+ when /2/; indent,hang='70mm','-50mm'
+ when /3/; indent,hang='70mm','-40mm'
+ when /4/; indent,hang='70mm','-30mm'
+ when /5/; indent,hang='70mm','-20mm'
+ when /6/; indent,hang='70mm','-10mm'
+ when /7/; indent,hang='70mm', '0mm'
+ when /8/; indent,hang='70mm', '10mm'
+ when /9/; indent,hang='70mm', '20mm'
+ end
+ when /8/
+ case @dob.hang
+ when /0/; indent,hang='80mm','-80mm'
+ when /1/; indent,hang='80mm','-70mm'
+ when /2/; indent,hang='80mm','-60mm'
+ when /3/; indent,hang='80mm','-50mm'
+ when /4/; indent,hang='80mm','-40mm'
+ when /5/; indent,hang='80mm','-30mm'
+ when /6/; indent,hang='80mm','-20mm'
+ when /7/; indent,hang='80mm','-10mm'
+ when /8/; indent,hang='80mm', '0mm'
+ when /9/; indent,hang='80mm', '10mm'
+ end
+ when /9/
+ case @dob.hang
+ when /0/; indent,hang='90mm','-90mm'
+ when /1/; indent,hang='90mm','-80mm'
+ when /2/; indent,hang='90mm','-70mm'
+ when /3/; indent,hang='90mm','-60mm'
+ when /4/; indent,hang='90mm','-50mm'
+ when /5/; indent,hang='90mm','-40mm'
+ when /6/; indent,hang='90mm','-30mm'
+ when /7/; indent,hang='90mm','-20mm'
+ when /8/; indent,hang='90mm','-10mm'
+ when /9/; indent,hang='90mm', '0mm'
+ end
+ end
+ "\\begin{ParagraphHang}{#{indent}}{#{hang}}#{@dob.tmp} \\end{ParagraphHang}}"
+ end
def indent
indent=case @dob.indent
when /1/; '0mm'
@@ -636,10 +771,20 @@ module SiSU_TeX_Pdf
end
def tex_head_lang #babel 18n
lang_char_arr=@md.i18n
- mainlang_char=lang_char_arr.slice(0)
+ mainlang_char=if @md.i18n == Array \
+ and @md.i18n.length > 0
+ lang_char_arr.slice(0)
+ else @md.opt.lng
+ end
mainlang=@lang.list[mainlang_char][:xlp]
- otherlang=[]
- lang_char_arr.slice(1..9).each { |ch| otherlang << @lang.list[ch][:xlp] }
+ otherlang=if mainlang != 'english'
+ [ @lang.list['en'][:xlp] ]
+ else []
+ end
+ if lang_char_arr.length > 0
+ lang_char_arr.slice(1..9).each { |ch| otherlang << @lang.list[ch][:xlp] }
+ otherlang.uniq!
+ end
otherlang=otherlang.join(',')
{ mainlang: mainlang, otherlang: otherlang }
end
@@ -918,6 +1063,19 @@ WOK
\\item[]
}
{\\end{list}}
+
+\\newenvironment{ParagraphHang}[2]%
+{
+\\begin{list}{}{%
+\\setlength\\topsep{0pt}%
+\\addtolength{\\leftmargin}{#1}
+\\itemindent=#2
+\\setlength\\parsep{0pt plus 1pt}%
+}
+\\item[]
+}
+{\\end{list}}
+
\\newenvironment{Bullet}[1]%
{
\\begin{list}{}{%