diff options
Diffstat (limited to 'src/doc_reform/output/latex.d')
-rw-r--r-- | src/doc_reform/output/latex.d | 47 |
1 files changed, 41 insertions, 6 deletions
diff --git a/src/doc_reform/output/latex.d b/src/doc_reform/output/latex.d index 88cc75c..674d6d3 100644 --- a/src/doc_reform/output/latex.d +++ b/src/doc_reform/output/latex.d @@ -10,6 +10,8 @@ template outputLaTeX() { mixin InternalMarkup; // watch mixin DocReformOutputRgxInit; auto rgx = Rgx(); + mixin DocReformLanguageCodes; + auto lang = Lang(); auto paper() { struct PaperType { auto a4() { @@ -668,7 +670,8 @@ string table(O,M)( ) { _indent = ((obj.attrib.indent_base * _indent_increment) + _paper_margin).to!string; _hang = (((obj.attrib.indent_hang - obj.attrib.indent_base) * _indent_increment)).to!string; - _txt = format(q"┃\begin{ParagraphHang}{%smm}{%smm}%s \end{ParagraphHang}┃", + _tex_para = q"┃\begin{ParagraphHang}{%smm}{%smm}%s \end{ParagraphHang}┃"; + _txt = format(_tex_para, _indent, _hang, _txt.footnotes ).strip; @@ -685,6 +688,35 @@ string table(O,M)( string us_letter_landscape; } auto paper = paperType(); + string _footer(M)(M doc_matters) { + writeln("footer: ", doc_matters.conf_make_meta.make.footer); + string _ft = "\\lfoot[\\textrm{\\thepage}]"; + string _ft_1 = format(q"┃{\tiny \href{%s}{%s}}┃", "http://sisudoc.org", "SiSU",); + string _ft_2 = format(q"┃ + \cfoot{\href{%s}{%s}}┃", "http://git.sisudoc.org", "git",); + if (doc_matters.conf_make_meta.make.footer.length > 0) { + if (doc_matters.conf_make_meta.make.footer.length > 0) { + if (doc_matters.conf_make_meta.make.footer[0].matchAll(rgx.inline_link)) { + _ft ~= doc_matters.conf_make_meta.make.footer[0] + .replace(rgx.inline_link, "{\\tiny \\href{$2}{$1}}"); + } else { + _ft ~= _ft_1; + } + } + if (doc_matters.conf_make_meta.make.footer.length > 1) { + if (doc_matters.conf_make_meta.make.footer[1].matchAll(rgx.inline_link)) { + _ft ~= doc_matters.conf_make_meta.make.footer[1] + .replace(rgx.inline_link, "\n\\cfoot{\\href{$2}{$1}}"); + } else { + _ft ~= _ft_2; + } + } + } else { + _ft ~= _ft_1; + _ft ~= _ft_2; + } + return _ft; + } paper.a4_portrait = format(q"┃ \documentclass[12pt,a4paper,titlepage]{scrartcl} \setlength{\textheight}{228mm} \setlength{\textwidth}{160mm} @@ -765,8 +797,8 @@ string table(O,M)( \setlength{\marginparwidth}{8mm} %s \usepackage{polyglossia, ucs, fontspec, xltxtra, xunicode} -\setmainlanguage{english} -\setotherlanguage{} +\setmainlanguage{%s} +\setotherlanguage{%s} \setmainfont{Liberation Sans} \setmonofont[Scale=0.85]{Liberation Mono} \usepackage{alltt} @@ -876,12 +908,11 @@ string table(O,M)( {subparagraph}%%{6}%%{-2mm}%% {-\baselineskip}{0.5\baselineskip}%% {\normalfont\normalsize\itshape\raggedright}} -\selectlanguage{english} +\selectlanguage{%s} \lhead[ ]{ } \chead[ \fancyplain{} \bfseries \footnotesize \leftmark ]{ \fancyplain{} \bfseries \footnotesize \rightmark } \rhead[ ]{ } -\lfoot[\textrm{\thepage}]{\tiny \href{http://sisudoc.org}{SiSU}} -\cfoot{\href{http://git.sisudoc.org}{git}} +%s \rfoot[\tiny \href{}{}]{\textrm{\thepage}} \tolerance=300 \clubpenalty=300 @@ -934,10 +965,14 @@ string table(O,M)( paper.a4_portrait.strip, margins.portrait.strip, multicol.portrait.strip, + lang.codes[doc_matters.src.language]["xlp"], + "english", links.mono.strip, // links.color.strip, doc_matters.conf_make_meta.meta.title_full.strip, doc_matters.conf_make_meta.meta.creator_author.strip, doc_matters.conf_make_meta.meta.classify_subject.strip, + lang.codes[doc_matters.src.language]["xlp"], + _footer(doc_matters), ); return _latex_head.strip; } |