aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.envrc-local_6
-rw-r--r--org/config_nix.org90
-rw-r--r--org/out_latex.org715
-rwxr-xr-xshell.nix5
-rw-r--r--src/doc_reform/io_out/latex.d114
5 files changed, 537 insertions, 393 deletions
diff --git a/.envrc-local_ b/.envrc-local_
index 8b9d535..9c4a881 100644
--- a/.envrc-local_
+++ b/.envrc-local_
@@ -195,6 +195,12 @@ $SpineBIN/spine -v --html --html-link-search --html-link-curate --curate --sqlit
$SpineBIN/spine -v --cgi-search-form-codegen --config=$SpinePOD/.dr/config_local_site
#+END_SRC
+*** latex
+
+#+BEGIN_SRC sh
+$SpineBIN/spine --latex --serial --output="$SpineOUTstatic" $SpinePOD/*
+ls $SpineOutstatic/latex/*.tex
+#+END_SRC
' >> nix_note_.org
cat nix_note_.org
diff --git a/org/config_nix.org b/org/config_nix.org
index 49bb6f8..35feaef 100644
--- a/org/config_nix.org
+++ b/org/config_nix.org
@@ -331,6 +331,12 @@ $SpineBIN/spine -v --html --html-link-search --html-link-curate --curate --sqlit
$SpineBIN/spine -v --cgi-search-form-codegen --config=$SpinePOD/.dr/config_local_site
,#+END_SRC
+,*** latex
+
+,#+BEGIN_SRC sh
+$SpineBIN/spine --latex --serial --output="$SpineOUTstatic" $SpinePOD/*
+ls $SpineOutstatic/latex/*.tex
+,#+END_SRC
' >> nix_note_.org
cat nix_note_.org
@@ -504,6 +510,7 @@ pkgs.mkShell {
<<shell_packages_nix_related>>
<<shell_packages_d_build_related>>
# <<shell_packages_search_sqlite_related>>
+ # <<shell_packages_pdf_latex_related>>
# <<shell_packages_xml_and_epub_related>>
]
)];
@@ -547,6 +554,17 @@ ldc
sqlite
#+END_SRC
+***** packages pdf latex related
+
+#+NAME: shell_packages_pdf_latex_related
+#+BEGIN_SRC nix
+# pdf_latex_related
+source-sans-pro
+source-serif-pro
+source-code-pro
+texlive.combined.scheme-full
+#+END_SRC
+
***** packages xml epub related
#+NAME: shell_packages_xml_and_epub_related
@@ -1269,3 +1287,75 @@ github:nixos/nixpkgs
#+BEGIN_SRC nix
/nix/var/nix/profiles/per-user/root/channels/nixos
#+END_SRC
+
+** texlive xetex xelatex shell.nix
+*** shell.nix :shell:
+
+#+BEGIN_SRC nix
+#!/usr/bin/env -S nix-shell --pure
+{ pkgs ? import <nixpkgs> {} }:
+pkgs.mkShell {
+ buildInputs = with pkgs; [
+ nixFlakes
+ nix-prefetch-git
+ validatePkgConfig
+ jq
+ git
+ fontconfig
+ source-sans-pro
+ source-serif-pro
+ source-code-pro
+ #(texlive.combine {
+ # inherit (texlive) scheme-tetex xetex fontspec footmisc multirow titlesec listings anysize float graphics helvetic times courier;
+ #})
+ texlive.combined.scheme-full
+ dejavu_fonts dejavu_fontsEnv
+ liberation_ttf
+ evince
+ zathura
+ apvlv
+ ];
+ #FONTCONFIG_FILE = makeFontsConf { fontDirectories = [
+ # liberation_ttf
+ #];
+ shellHook = ''
+ if [[ -e ".envrc" ]]; then
+ source .envrc
+ fi
+ #for texfile in *.tex; do xelatex -interaction=nonstopmode $texfile; done
+ #for texfile in *.tex; do xelatex -interaction=batchmode $texfile; done
+ '';
+}
+#+END_SRC
+
+*** notes
+
+#+BEGIN_SRC sh
+nix-shell --run 'which xetex'
+echo 'for texfile in *.tex; do echo "* --> " ~ $texfile && xelatex -interaction=batchmode $texfile; rm *.aux *.log *.toc *.out; done'
+
+$SpineBIN/spine --latex --serial --output="$SpineOUTstatic" $SpinePOD/* && for texfile in $SpineOUTstatic/latex/*.tex; do xelatex -interaction=nonstopmode $texfile; done 2>&1 | tee _err.xelatex_.org; ls $SpineOUTstatic/latex/*.{tex,pdf}
+
+/run/current-system/sw/share/X11/fonts/
+
+kpsewhich pdftexconfig.tex
+/nix/store/2r4qa8rbll085nmpx56jg1rbmbir1zkp-texlive-combined-2021/share/texmf/tex/generic/tex-ini-files/pdftexconfig.tex
+/nix/store/2r4qa8rbll085nmpx56jg1rbmbir1zkp-texlive-combined-2021/share/texmf/fonts/opentype/public/
+
+find: texclive-fonts.conf
+fc-cache && mkfontscale && mkfontdir
+
+fc-match LiberationSans
+
+cd /nix/var/nix/profiles/system/sw/share/X11/fonts
+fc-query LiberationSans-Regular.ttf | grep '^\s\+family:' | cut -d'"' -f2
+Liberation Sans
+fc-query LiberationMono-Regular.ttf | grep '^\s\+family:' | cut -d'"' -f2
+Liberation Mono
+
+fc-query DejaVuSans.ttf | grep '^\s\+family:' | cut -d'"' -f2
+
+$XDG_DATA_HOME/fonts
+~/.local/share/fonts
+#+END_SRC
+
diff --git a/org/out_latex.org b/org/out_latex.org
index 4156071..91ef042 100644
--- a/org/out_latex.org
+++ b/org/out_latex.org
@@ -33,89 +33,96 @@ template outputLaTeX() {
static auto rgx = RgxO();
mixin spineLanguageCodes;
auto lang = Lang();
- <<output_latex_shared_a_0>>
- <<output_latex_shared_a_1>>
- <<output_latex_shared_a_2>>
- <<output_latex_shared_a_3>>
- <<output_latex_shared_a_4>>
- <<output_latex_shared_a_5>>
- <<output_latex_shared_a_6>>
- <<output_latex_shared_a_7>>
- <<output_latex_shared_a_8>>
- <<output_latex_shared_a_9>>
- <<output_latex_shared_a_10>>
- <<output_latex_shared_a_11>>
-<<output_latex_shared_b_0>>
-<<output_latex_shared_b_1>>
-<<output_latex_shared_b_2>>
-<<output_latex_shared_b_3>>
-<<output_latex_shared_b_4>>
-<<output_latex_shared_b_5>>
-<<output_latex_shared_b_6>>
+ <<output_latex_shared_a_paper_type>>
+ <<output_latex_shared_a_special_characters_to_escape_object>>
+ <<output_latex_shared_a_special_characters_to_escape_text>>
+ <<output_latex_shared_a_fontface>>
+ <<output_latex_shared_a_leading_hardspaces>>
+ <<output_latex_shared_a_character_nbsp_to_hardspace>>
+ <<output_latex_shared_a_character_nbsp_to_space>>
+ <<output_latex_shared_a_links_and_images>>
+ <<output_latex_shared_a_footnotes>>
+ <<output_latex_shared_a_footnotes_remove>>
+ <<output_latex_shared_a_para>>
+ <<output_latex_shared_a_bookindex>>
+<<output_latex_shared_b_heading>>
+<<output_latex_shared_b_group>>
+<<output_latex_shared_b_block>>
+<<output_latex_shared_b_verse>>
+<<output_latex_shared_b_codeblock>>
+<<output_latex_shared_b_tablarize>>
+<<output_latex_shared_b_table>>
+ <<output_latex_head_bullets_and_indentation>>
<<output_latex_head_0>>
- <<output_latex_head_1>>
- <<output_latex_head_2>>
- <<output_latex_head_3>>
-<<output_latex_head_b_tex_0>>
-<<output_latex_head_b_tex_1>>
-<<output_latex_head_b_tex_2>>
-<<output_latex_head_b_tex_3>>
-<<output_latex_head_b_tex_4>>
-<<output_latex_head_b_tex_5>>
-<<output_latex_head_b_tex_6>>
-<<output_latex_head_b_tex_7>>
-<<output_latex_head_b_tex_8>>
-<<output_latex_head_b_tex_9>>
-<<output_latex_head_b_tex_10>>
-<<output_latex_head_b_tex_11>>
-<<output_latex_head_b_tex_12>>
-<<output_latex_head_b_tex_13>>
-<<output_latex_head_b_tex_14>>
-<<output_latex_head_b_tex_15>>
-<<output_latex_head_b_tex_16>>
-<<output_latex_head_b_tex_17>>
- <<output_latex_head_b_format_string_variables>>
- <<output_latex_head_format_string_0>>
- <<output_latex_head_format_string_1>>
- <<output_latex_head_format_string_2>>
- <<output_latex_head_format_string_3>>
-<<output_latex_head_tex_0>>
-<<output_latex_head_tex_1>>
-<<output_latex_head_tex_2>>
-<<output_latex_head_tex_3>>
-<<output_latex_head_tex_4>>
-<<output_latex_head_tex_5>>
-<<output_latex_head_tex_6>>
-<<output_latex_head_tex_7>>
-<<output_latex_head_tex_8>>
-<<output_latex_head_tex_9>>
-<<output_latex_head_tex_10>>
-<<output_latex_head_tex_11>>
-<<output_latex_head_tex_12>>
-<<output_latex_head_tex_13>>
-<<output_latex_head_tex_14>>
+ <<output_latex_head_papertype>>
+ <<output_latex_head_footer>>
+<<output_latex_head_b_tex_papermargins>>
+<<output_latex_head_b_tex_papermargins_portrait>>
+<<output_latex_head_b_tex_papermargins_portrait_set>>
+<<output_latex_head_b_tex_papermargins_portrait_close>>
+<<output_latex_head_b_tex_papermargins_landscape>>
+<<output_latex_head_b_tex_papermargins_landscape_set>>
+<<output_latex_head_b_tex_papermargins_landscape_close>>
+<<output_latex_head_b_tex_columns_multi>>
+<<output_latex_head_b_tex_columns_multi_portrait>>
+<<output_latex_head_b_tex_columns_multi_portrait_set>>
+<<output_latex_head_b_tex_columns_multi_portrait_close>>
+<<output_latex_head_b_tex_columns_multi_landscape>>
+<<output_latex_head_b_tex_colorlinks>>
+<<output_latex_head_b_tex_colorlinks_mono>>
+<<output_latex_head_b_tex_colorlinks_mono_set>>
+<<output_latex_head_b_tex_colorlinks_mono_close>>
+<<output_latex_head_b_tex_colorlinks_color>>
+<<output_latex_head_b_tex_colorlinks_color_set>>
+<<output_latex_head_b_tex_colorlinks_color_close>>
+ <<output_latex_head_format_string_paper_set>>
+ <<output_latex_head_format_string_paper_set_format_portrait>>
+<<output_latex_head_format_string_paper_set_format_portrait_tex>>
+ <<output_latex_head_format_string_paper_set_format_portrait_variables>>
+ <<output_latex_head_format_string_paper_set_format_landscape>>
+<<output_latex_head_format_string_paper_set_format_landscape_tex>>
+ <<output_latex_head_format_string_paper_set_format_landscape_variables>>
+ <<output_latex_head_format_string_paper_set_return>>
+ <<output_latex_head_format_string_paper_set_orientation>>
+ <<output_latex_head_format_string_paper_set_color>>
+ <<output_latex_head_format_tex_set_start_latex_head>>
+<<output_latex_head_tex_set_generated_by>>
+<<output_latex_head_tex_set_paper_type>>
+<<output_latex_head_tex_set_orintation>>
+<<output_latex_head_tex_set_margins>>
+<<output_latex_head_tex_set_columns>>
+<<output_latex_head_tex_set_usepackages_languages_and_font>>
+<<output_latex_head_tex_set_usepackages_1>>
+<<output_latex_head_tex_set_usepackages_color>>
+<<output_latex_head_tex_set_metadata>>
+<<output_latex_head_tex_set_colors>>
+<<output_latex_head_tex_set_url>>
+<<output_latex_head_tex_set_usepackage_misc>>
+<<output_latex_head_tex_set_indent_bullet_list>>
+<<output_latex_head_tex_set_part_section_subsection_paragraph_subparagraph>>
+<<output_latex_head_tex_set_misc>>
<<output_latex_head_a_format_string_variables>>
<<output_latex_head_close>>
- <<output_latex_body_0>>
- <<output_latex_body_1>>
- <<output_latex_body_2>>
- <<output_latex_body_3>>
- <<output_latex_body_4>>
- <<output_latex_body_5>>
- <<output_latex_body_6>>
- <<output_latex_tail_0>>
- <<output_latex_tail_1>>
-<<output_latex_tail_tex>>
- <<output_latex_tail_close_0>>
- <<output_latex_tail_close_1>>
- <<output_latex_0>>
- <<output_latex_1>>
+ <<output_latex_body_function>>
+ <<output_latex_body_foreach_doc_part>>
+ <<output_latex_body_for_doc_frontmatter>>
+ <<output_latex_body_for_doc_body>>
+ <<output_latex_body_for_doc_backmatter>>
+ <<output_latex_body_for_doc_default>>
+ <<output_latex_body_function_return>>
+ <<output_latex_tail_function>>
+ <<output_latex_tail_format_string>>
+<<output_latex_tail_format_string_tex>>
+ <<output_latex_tail_format_string_close>>
+ <<output_latex_tail_function_return>>
+ <<output_latex_output_write>>
+ <<output_latex_output_set>>
}
#+END_SRC
** write latex output :latex:out:
-#+NAME: output_latex_0
+#+NAME: output_latex_output_write
#+BEGIN_SRC d
void writeOutputLaTeX(T,M)(
const T latex_content,
@@ -157,7 +164,7 @@ void writeOutputLaTeX(T,M)(
** latex output hub [#A] :latex:pdf:out:
-#+NAME: output_latex_1
+#+NAME: output_latex_output_set
#+BEGIN_SRC d
void outputLaTeX(D,M)(
const D doc_abstraction,
@@ -168,7 +175,7 @@ void outputLaTeX(D,M)(
string content;
string tail;
}
- auto latex = LaTeX();
+ auto latex = LaTeX();
foreach (paper_size_orientation; doc_matters.conf_make_meta.conf.set_papersize) {
latex.head = latex_head(doc_matters, paper_size_orientation);
latex.content = latex_body(doc_abstraction, doc_matters, paper_size_orientation);
@@ -195,7 +202,7 @@ import doc_reform.io_out;
** shared
*** paper dimensions (struct)
-#+NAME: output_latex_shared_a_0
+#+NAME: output_latex_shared_a_paper_type
#+BEGIN_SRC d
auto paper() {
struct PaperType {
@@ -362,7 +369,7 @@ import doc_reform.io_out;
*** latex \escape special characters
**** general
-#+NAME: output_latex_shared_a_1
+#+NAME: output_latex_shared_a_special_characters_to_escape_object
#+BEGIN_SRC d
@safe string sp_char_esc(O)(
string _txt,
@@ -391,7 +398,7 @@ import doc_reform.io_out;
}
#+END_SRC
-#+NAME: output_latex_shared_a_2
+#+NAME: output_latex_shared_a_special_characters_to_escape_text
#+BEGIN_SRC d
@safe string sp_char_esc_txt()(
string _txt,
@@ -433,7 +440,7 @@ import doc_reform.io_out;
- bold, italics, underscore, strikethrough
-#+NAME: output_latex_shared_a_3
+#+NAME: output_latex_shared_a_fontface
#+BEGIN_SRC d
@safe string fontface()(
string _txt,
@@ -456,7 +463,7 @@ _txt = _txt
**** spaces
***** leading hardspace
-#+NAME: output_latex_shared_a_4
+#+NAME: output_latex_shared_a_leading_hardspaces
#+BEGIN_SRC d
@safe string leading_hardspaces()(
string _txt,
@@ -473,7 +480,7 @@ _txt = _txt
***** nbsp character
-#+NAME: output_latex_shared_a_5
+#+NAME: output_latex_shared_a_character_nbsp_to_hardspace
#+BEGIN_SRC d
@safe string nbsp_char()(string _txt) {
if (_txt.match(rgx.nbsp_char)) {
@@ -485,7 +492,7 @@ _txt = _txt
***** remove nbsp character
-#+NAME: output_latex_shared_a_6
+#+NAME: output_latex_shared_a_character_nbsp_to_space
#+BEGIN_SRC d
@safe string nbsp_char_to_space()(string _txt) {
if (_txt.match(rgx.nbsp_char)) {
@@ -498,7 +505,7 @@ _txt = _txt
**** links and images
***** links / urls
-#+NAME: output_latex_shared_a_7
+#+NAME: output_latex_shared_a_links_and_images
#+BEGIN_SRC d
@safe string links_and_images(O,M)(
string _txt,
@@ -550,7 +557,7 @@ _txt = _txt
*** footnotes
**** footnotes
-#+NAME: output_latex_shared_a_8
+#+NAME: output_latex_shared_a_footnotes
#+BEGIN_SRC d
@safe string footnotes()(
string _txt,
@@ -571,7 +578,7 @@ _txt = _txt
**** footnote remove
-#+NAME: output_latex_shared_a_9
+#+NAME: output_latex_shared_a_footnotes_remove
#+BEGIN_SRC d
@safe string remove_footnotes()(
string _txt,
@@ -586,7 +593,7 @@ _txt = _txt
*** para
**** para
-#+NAME: output_latex_shared_a_10
+#+NAME: output_latex_shared_a_para
#+BEGIN_SRC d
@safe string para(O)(
string _txt,
@@ -607,7 +614,7 @@ _txt = _txt
**** bookindex para
-#+NAME: output_latex_shared_a_11
+#+NAME: output_latex_shared_a_bookindex
#+BEGIN_SRC d
@safe string bookindex(O)(
string _txt,
@@ -628,7 +635,7 @@ _txt = _txt
*** bullets & indentation
-#+NAME: output_latex_head_0
+#+NAME: output_latex_head_bullets_and_indentation
#+BEGIN_SRC d
@safe string bullets_and_indentation(O)(
string _txt,
@@ -673,7 +680,7 @@ _txt = _txt
*** heading
-#+NAME: output_latex_shared_b_0
+#+NAME: output_latex_shared_b_heading
#+BEGIN_SRC d
@safe string heading(O,M)(
string _txt,
@@ -847,7 +854,7 @@ _txt = _txt
- (hardspace not honored) clear hardspace marker
-#+NAME: output_latex_shared_b_1
+#+NAME: output_latex_shared_b_group
#+BEGIN_SRC d
string group(O,M)(
string _txt,
@@ -875,7 +882,7 @@ string group(O,M)(
- (hardspace honored) \hardspace
-#+NAME: output_latex_shared_b_2
+#+NAME: output_latex_shared_b_block
#+BEGIN_SRC d
string block(O,M)(
string _txt,
@@ -907,7 +914,7 @@ string block(O,M)(
- (hardspace honored) \hardspace
-#+NAME: output_latex_shared_b_3
+#+NAME: output_latex_shared_b_verse
#+BEGIN_SRC d
string verse(O,M)(
string _txt,
@@ -939,7 +946,7 @@ string verse(O,M)(
- (hardspace honored) \begin{lstlisting} clear hardspace marker
-#+NAME: output_latex_shared_b_4
+#+NAME: output_latex_shared_b_codeblock
#+BEGIN_SRC d
string codeblock(O,M)(
string _txt,
@@ -971,7 +978,7 @@ string codeblock(O,M)(
***** tablarize
-#+NAME: output_latex_shared_b_5
+#+NAME: output_latex_shared_b_tablarize
#+BEGIN_SRC d
auto tablarize(O)(
string _txt,
@@ -1010,7 +1017,7 @@ auto tablarize(O)(
***** table
-#+NAME: output_latex_shared_b_6
+#+NAME: output_latex_shared_b_table
#+BEGIN_SRC d
string table(O,M)(
string _txt,
@@ -1070,7 +1077,7 @@ string table(O,M)(
*** latex head :head:
**** latex head function
-#+NAME: output_latex_head_1
+#+NAME: output_latex_head_0
#+BEGIN_SRC d
string latex_head(M)(
M doc_matters,
@@ -1082,7 +1089,7 @@ string latex_head(M)(
***** paper type dimensions
****** struct
-#+NAME: output_latex_head_2
+#+NAME: output_latex_head_papertype
#+BEGIN_SRC d
struct paperTypeLatex {
string a4_portrait;
@@ -1101,7 +1108,7 @@ string latex_head(M)(
****** footer
-#+NAME: output_latex_head_3
+#+NAME: output_latex_head_footer
#+BEGIN_SRC d
string _footer(M)(M doc_matters) {
string _ft = "\\lfoot[\\textrm{\\thepage}]";
@@ -1136,7 +1143,7 @@ string latex_head(M)(
***** paper margins
****** struct
-#+NAME: output_latex_head_b_tex_0
+#+NAME: output_latex_head_b_tex_papermargins
#+BEGIN_SRC d
struct paperMargins {
string portrait;
@@ -1147,19 +1154,19 @@ string latex_head(M)(
****** portrait
-#+NAME: output_latex_head_b_tex_1
+#+NAME: output_latex_head_b_tex_papermargins_portrait
#+BEGIN_SRC d
margins.portrait = format(q"┃
#+END_SRC
-#+NAME: output_latex_head_b_tex_2
+#+NAME: output_latex_head_b_tex_papermargins_portrait_set
#+BEGIN_SRC latex
\setlength{\oddsidemargin}{0mm} \setlength{\evensidemargin}{0mm}
\setlength{\topmargin}{-12pt} \setlength{\headheight}{12pt}
\setlength{\headsep}{35pt}
#+END_SRC
-#+NAME: output_latex_head_b_tex_3
+#+NAME: output_latex_head_b_tex_papermargins_portrait_close
#+BEGIN_SRC d
┃",
);
@@ -1167,19 +1174,19 @@ string latex_head(M)(
****** landscape
-#+NAME: output_latex_head_b_tex_4
+#+NAME: output_latex_head_b_tex_papermargins_landscape
#+BEGIN_SRC d
margins.landscape = format(q"┃
#+END_SRC
-#+NAME: output_latex_head_b_tex_5
+#+NAME: output_latex_head_b_tex_papermargins_landscape_set
#+BEGIN_SRC latex
\setlength{\oddsidemargin}{6mm} \setlength{\evensidemargin}{6mm}
\setlength{\topmargin}{-12mm} \setlength{\headheight}{12pt}
\setlength{\headsep}{20pt}
#+END_SRC
-#+NAME: output_latex_head_b_tex_6
+#+NAME: output_latex_head_b_tex_papermargins_landscape_close
#+BEGIN_SRC d
┃",
);
@@ -1188,7 +1195,7 @@ string latex_head(M)(
***** multicol
****** struct
-#+NAME: output_latex_head_b_tex_7
+#+NAME: output_latex_head_b_tex_columns_multi
#+BEGIN_SRC d
struct columnsMulti {
string portrait;
@@ -1199,17 +1206,17 @@ string latex_head(M)(
****** portrait
-#+NAME: output_latex_head_b_tex_8
+#+NAME: output_latex_head_b_tex_columns_multi_portrait
#+BEGIN_SRC d
multicol.portrait = format(q"┃
#+END_SRC
-#+NAME: output_latex_head_b_tex_9
+#+NAME: output_latex_head_b_tex_columns_multi_portrait_set
#+BEGIN_SRC latex
\usepackage{multicol}
#+END_SRC
-#+NAME: output_latex_head_b_tex_10
+#+NAME: output_latex_head_b_tex_columns_multi_portrait_close
#+BEGIN_SRC d
┃",
);
@@ -1217,7 +1224,7 @@ string latex_head(M)(
****** landscape
-#+NAME: output_latex_head_b_tex_11
+#+NAME: output_latex_head_b_tex_columns_multi_landscape
#+BEGIN_SRC d
multicol.landscape = "";
#+END_SRC
@@ -1225,7 +1232,7 @@ string latex_head(M)(
***** color links
****** struct
-#+NAME: output_latex_head_b_tex_12
+#+NAME: output_latex_head_b_tex_colorlinks
#+BEGIN_SRC d
struct colorLinks {
string mono;
@@ -1236,12 +1243,12 @@ string latex_head(M)(
****** mono
-#+NAME: output_latex_head_b_tex_13
+#+NAME: output_latex_head_b_tex_colorlinks_mono
#+BEGIN_SRC d
links.mono = format(q"┃
#+END_SRC
-#+NAME: output_latex_head_b_tex_14
+#+NAME: output_latex_head_b_tex_colorlinks_mono_set
#+BEGIN_SRC latex
\usepackage[xetex,
colorlinks=true,
@@ -1250,7 +1257,7 @@ string latex_head(M)(
linkcolor=myblack,
#+END_SRC
-#+NAME: output_latex_head_b_tex_15
+#+NAME: output_latex_head_b_tex_colorlinks_mono_close
#+BEGIN_SRC d
┃",
);
@@ -1258,12 +1265,12 @@ string latex_head(M)(
****** color
-#+NAME: output_latex_head_b_tex_16
+#+NAME: output_latex_head_b_tex_colorlinks_color
#+BEGIN_SRC d
links.color = format(q"┃
#+END_SRC
-#+NAME: output_latex_head_b_tex_17
+#+NAME: output_latex_head_b_tex_colorlinks_color_set
#+BEGIN_SRC latex
\usepackage[xetex,
colorlinks=true,
@@ -1272,7 +1279,7 @@ string latex_head(M)(
linkcolor=myred, %% \href{...} and \pageref{...}
#+END_SRC
-#+NAME: output_latex_head_b_format_string_variables
+#+NAME: output_latex_head_b_tex_colorlinks_color_close
#+BEGIN_SRC d
┃",
);
@@ -1282,83 +1289,111 @@ string latex_head(M)(
***** dimensions & orientation
****** set
-#+NAME: output_latex_head_format_string_0
+#+NAME: output_latex_head_format_string_paper_set
+#+BEGIN_SRC d
+string set_paper(P)(P paper_set,) {
+ string paper_type_description;
+#+END_SRC
+
+#+NAME: output_latex_head_format_string_paper_set_format_portrait
+#+BEGIN_SRC d
+if (paper_set.is_portrait) {
+ paper_type_description = format(q"┃
+#+END_SRC
+
+#+NAME: output_latex_head_format_string_paper_set_format_portrait_tex
#+BEGIN_SRC d
- string set_paper(P)(P paper_set,) {
- string paper_type_description;
- if (paper_set.is_portrait) {
- paper_type_description = format(q"┃
\documentclass[%s,%s,titlepage]{scrartcl}
\setlength{\textheight}{%s} \setlength{\textwidth}{%s}
┃",
- paper_set.font_size,
- paper_set.name,
- paper_set.height,
- paper_set.width,
- );
- } else {
- paper_type_description = format(q"┃
+#+END_SRC
+
+#+NAME: output_latex_head_format_string_paper_set_format_portrait_variables
+#+BEGIN_SRC d
+ paper_set.font_size,
+ paper_set.name,
+ paper_set.height,
+ paper_set.width,
+);
+#+END_SRC
+
+#+NAME: output_latex_head_format_string_paper_set_format_landscape
+#+BEGIN_SRC d
+} else {
+ paper_type_description = format(q"┃
+#+END_SRC
+
+#+NAME: output_latex_head_format_string_paper_set_format_landscape_tex
+#+BEGIN_SRC d
\documentclass[%s,%s,landscape,titlepage,twocolumn]{scrartcl}
\setlength{\textheight}{%s} \setlength{\textwidth}{%s}
┃",
- paper_set.font_size,
- paper_set.name,
- paper_set.height,
- paper_set.width,
- );
- }
- return paper_type_description;
- }
#+END_SRC
-***** (a4, a5, b4, letter, legal) * (portrait & landscape)
+#+NAME: output_latex_head_format_string_paper_set_format_landscape_variables
+#+BEGIN_SRC d
+ paper_set.font_size,
+ paper_set.name,
+ paper_set.height,
+ paper_set.width,
+);
+#+END_SRC
-#+NAME: output_latex_head_format_string_1
-#+BEGIN_SRC d
- string paper_size_orientation_latex;
- switch (paper_size_orientation) {
- case "a4.portrait": paper_size_orientation_latex = set_paper(paper.a4.portrait); break;
- case "a4.landscape": paper_size_orientation_latex = set_paper(paper.a4.landscape); break;
- case "a5.portrait": paper_size_orientation_latex = set_paper(paper.a5.portrait); break;
- case "a5.landscape": paper_size_orientation_latex = set_paper(paper.a5.landscape); break;
- case "b4.portrait": paper_size_orientation_latex = set_paper(paper.b4.portrait); break;
- case "b4.landscape": paper_size_orientation_latex = set_paper(paper.b4.landscape); break;
- case "letter.portrait": paper_size_orientation_latex = set_paper(paper.letter.portrait); break;
- case "letter.landscape": paper_size_orientation_latex = set_paper(paper.letter.landscape); break;
- case "legal.portrait": paper_size_orientation_latex = set_paper(paper.legal.portrait); break;
- case "legal.landscape": paper_size_orientation_latex = set_paper(paper.legal.landscape); break;
- default: paper_size_orientation_latex = paper_type_latex.a4_portrait;
+#+NAME: output_latex_head_format_string_paper_set_return
+#+BEGIN_SRC d
}
+ return paper_type_description;
+}
+#+END_SRC
+
+***** (a4, a5, b4, letter, legal) * (portrait & landscape)
+
+#+NAME: output_latex_head_format_string_paper_set_orientation
+#+BEGIN_SRC d
+string paper_size_orientation_latex;
+switch (paper_size_orientation) {
+case "a4.portrait": paper_size_orientation_latex = set_paper(paper.a4.portrait); break;
+case "a4.landscape": paper_size_orientation_latex = set_paper(paper.a4.landscape); break;
+case "a5.portrait": paper_size_orientation_latex = set_paper(paper.a5.portrait); break;
+case "a5.landscape": paper_size_orientation_latex = set_paper(paper.a5.landscape); break;
+case "b4.portrait": paper_size_orientation_latex = set_paper(paper.b4.portrait); break;
+case "b4.landscape": paper_size_orientation_latex = set_paper(paper.b4.landscape); break;
+case "letter.portrait": paper_size_orientation_latex = set_paper(paper.letter.portrait); break;
+case "letter.landscape": paper_size_orientation_latex = set_paper(paper.letter.landscape); break;
+case "legal.portrait": paper_size_orientation_latex = set_paper(paper.legal.portrait); break;
+case "legal.landscape": paper_size_orientation_latex = set_paper(paper.legal.landscape); break;
+default: paper_size_orientation_latex = paper_type_latex.a4_portrait;
+}
#+END_SRC
***** set color links
-#+NAME: output_latex_head_format_string_2
-#+BEGIN_SRC d
- string links_mono_or_color_set = links.mono.strip;
- if (
- (doc_matters.opt.action.latex_color_links)
- || (paper_size_orientation ==
- "a4.landscape" ||
- "a5.landscape" ||
- "b4.landscape" ||
- "letter.landscape" ||
- "legal.landscape")
- ){
- links_mono_or_color_set = links.color.strip;
- }
+#+NAME: output_latex_head_format_string_paper_set_color
+#+BEGIN_SRC d
+string links_mono_or_color_set = links.mono.strip;
+if (
+ (doc_matters.opt.action.latex_color_links)
+ || (paper_size_orientation ==
+ "a4.landscape" ||
+ "a5.landscape" ||
+ "b4.landscape" ||
+ "letter.landscape" ||
+ "legal.landscape")
+){
+ links_mono_or_color_set = links.color.strip;
+}
#+END_SRC
***** format latex head, open
-#+NAME: output_latex_head_format_string_3
+#+NAME: output_latex_head_format_tex_set_start_latex_head
#+BEGIN_SRC d
- string _latex_head = format(q"┃%%%% spine LaTeX output
+string _latex_head = format(q"┃%%%% spine LaTeX output
#+END_SRC
***** description comment
-#+NAME: output_latex_head_tex_0
+#+NAME: output_latex_head_tex_set_generated_by
#+BEGIN_SRC latex
%%%% Generated by: %s
%%%% D version: %s
@@ -1375,7 +1410,7 @@ string latex_head(M)(
- paper_type_latex.us_letter_portrait
- paper_type_latex.us_letter_landscape
-#+NAME: output_latex_head_tex_1
+#+NAME: output_latex_head_tex_set_paper_type
#+BEGIN_SRC latex
%s
#+END_SRC
@@ -1385,14 +1420,14 @@ string latex_head(M)(
- margins.portrait
- margins.landscape
-#+NAME: output_latex_head_tex_2
+#+NAME: output_latex_head_tex_set_orintation
#+BEGIN_SRC latex
%s
#+END_SRC
***** margin shared
-#+NAME: output_latex_head_tex_3
+#+NAME: output_latex_head_tex_set_margins
#+BEGIN_SRC latex
\setlength{\marginparsep}{4mm}
\setlength{\marginparwidth}{8mm}
@@ -1400,16 +1435,20 @@ string latex_head(M)(
***** multicol (portrait | landscape)
-#+NAME: output_latex_head_tex_4
+#+NAME: output_latex_head_tex_set_columns
#+BEGIN_SRC latex
%s
#+END_SRC
***** language & font
-#+NAME: output_latex_head_tex_5
+#+NAME: output_latex_head_tex_set_usepackages_languages_and_font
#+BEGIN_SRC latex
-\usepackage{polyglossia, ucs, fontspec, xltxtra, xunicode}
+\usepackage{polyglossia}
+\usepackage{ucs}
+\usepackage{fontspec}
+\usepackage{xltxtra}
+\usepackage{xunicode}
\setmainlanguage{%s}
\setotherlanguage{%s}
\setmainfont{Liberation Sans}
@@ -1421,7 +1460,7 @@ string latex_head(M)(
***** latex head
-#+NAME: output_latex_head_tex_6
+#+NAME: output_latex_head_tex_set_usepackages_1
#+BEGIN_SRC latex
\usepackage{alltt}
\usepackage{thumbpdf}
@@ -1429,14 +1468,14 @@ string latex_head(M)(
***** color links: no = mono | yes = color
-#+NAME: output_latex_head_tex_7
+#+NAME: output_latex_head_tex_set_usepackages_color
#+BEGIN_SRC latex
%s
#+END_SRC
***** metadata
-#+NAME: output_latex_head_tex_8
+#+NAME: output_latex_head_tex_set_metadata
#+BEGIN_SRC latex
pdftitle={%s},
pdfauthor={%s},
@@ -1470,7 +1509,7 @@ string latex_head(M)(
***** define colors
-#+NAME: output_latex_head_tex_9
+#+NAME: output_latex_head_tex_set_colors
#+BEGIN_SRC latex
\usepackage[usenames]{color}
\definecolor{myblack}{rgb}{0,0,0}
@@ -1482,7 +1521,7 @@ string latex_head(M)(
***** latex head
-#+NAME: output_latex_head_tex_10
+#+NAME: output_latex_head_tex_set_url
#+BEGIN_SRC latex
\usepackage{url}
\urlstyle{sf}
@@ -1492,7 +1531,7 @@ string latex_head(M)(
***** latex head
-#+NAME: output_latex_head_tex_11
+#+NAME: output_latex_head_tex_set_usepackage_misc
#+BEGIN_SRC latex
\usepackage{textcomp}
\usepackage[parfill]{parskip}
@@ -1514,7 +1553,7 @@ string latex_head(M)(
***** indent, bullet, list
-#+NAME: output_latex_head_tex_12
+#+NAME: output_latex_head_tex_set_indent_bullet_list
#+BEGIN_SRC latex
\usepackage[multiple,ragged]{footmisc}
\setlength\footnotemargin{12pt}
@@ -1558,7 +1597,7 @@ string latex_head(M)(
***** part, section, subsection, paragraph, subparagraph
-#+NAME: output_latex_head_tex_13
+#+NAME: output_latex_head_tex_set_part_section_subsection_paragraph_subparagraph
#+BEGIN_SRC latex
\usepackage{fancyhdr}
\lhead{}
@@ -1592,7 +1631,7 @@ string latex_head(M)(
***** latex head misc. including defined commands
-#+NAME: output_latex_head_tex_14
+#+NAME: output_latex_head_tex_set_misc
#+BEGIN_SRC latex
\selectlanguage{%s}
\lhead[ ]{ }
@@ -1686,7 +1725,7 @@ string latex_head(M)(
*** ↻ latex body :content:body:
**** latex body function
-#+NAME: output_latex_body_0
+#+NAME: output_latex_body_function
#+BEGIN_SRC d
string latex_body(D,M)(
const D doc_abstraction,
@@ -1700,166 +1739,166 @@ string latex_body(D,M)(
**** ↻ loop open
-#+NAME: output_latex_body_1
+#+NAME: output_latex_body_foreach_doc_part
#+BEGIN_SRC d
- foreach (part; doc_matters.has.keys_seq.latex) {
- foreach (obj; doc_abstraction[part]) {
- switch (obj.metainfo.is_of_part) {
+foreach (part; doc_matters.has.keys_seq.latex) {
+ foreach (obj; doc_abstraction[part]) {
+ switch (obj.metainfo.is_of_part) {
#+END_SRC
**** ↻ within loop
***** frontmatter
-#+NAME: output_latex_body_2
-#+BEGIN_SRC d
- case "frontmatter": assert(part == "head" || "toc");
- _txt = obj.text
- .sp_char_esc(obj)
- .fontface;
- switch (obj.metainfo.is_of_type) {
- case "para":
- switch (obj.metainfo.is_a) {
- case "heading":
- _txt = _txt.heading(obj, doc_matters);
- goto default;
- case "toc":
- break;
- default:
- _latex_body ~= _txt ~ "\n\n";
- _txt = "";
- break;
- }
- break;
- default: break;
- }
- break;
+#+NAME: output_latex_body_for_doc_frontmatter
+#+BEGIN_SRC d
+case "frontmatter": assert(part == "head" || "toc");
+ _txt = obj.text
+ .sp_char_esc(obj)
+ .fontface;
+ switch (obj.metainfo.is_of_type) {
+ case "para":
+ switch (obj.metainfo.is_a) {
+ case "heading":
+ _txt = _txt.heading(obj, doc_matters);
+ goto default;
+ case "toc":
+ break;
+ default:
+ _latex_body ~= _txt ~ "\n\n";
+ _txt = "";
+ break;
+ }
+ break;
+ default: break;
+ }
+ break;
#+END_SRC
***** body
-#+NAME: output_latex_body_3
-#+BEGIN_SRC d
- case "body": assert(part == "body" || "head"); // surprise
- _txt = obj.text
- .sp_char_esc(obj)
- .fontface;
- switch (obj.metainfo.is_of_type) {
- case "para":
- switch (obj.metainfo.is_a) {
- case "heading":
- _txt = _txt.heading(obj, doc_matters);
- goto default;
- case "para":
- _txt = _txt.para(obj)
- .bullets_and_indentation(obj)
- .links_and_images(obj, doc_matters);
- goto default;
- default:
- _latex_body ~= _txt ~ "\n\n";
- _txt = "";
- break;
- }
- break;
- case "block":
- switch (obj.metainfo.is_a) {
- case "quote":
- goto default; // TODO
- case "group":
- /+ (hardspaces not honored) [remove any hardspace marker] +/
- _txt = _txt.group(obj, doc_matters)
- .links_and_images(obj, doc_matters);
- goto default;
- case "block":
- /+ (hardspace honored) \hardspace +/
- _txt = _txt.block(obj, doc_matters)
- .links_and_images(obj, doc_matters);
- goto default;
- case "verse":
- /+ (hardspace honored) \hardspace +/
- _txt = _txt.verse(obj, doc_matters)
- .links_and_images(obj, doc_matters);
- goto default;
- case "code":
- /+ (hardspace honored) \begin{lstlisting} clear hardspace marker +/
- _txt = _txt.codeblock(obj, doc_matters);
- goto default;
- case "table":
- _txt = _txt.table(obj, doc_matters, paper_size_orientation);
- goto default; // TODO
- default:
- _latex_body ~= _txt ~ "\n\n";
- _txt = "";
- break;
- }
- break;
- default: break;
- }
- break;
+#+NAME: output_latex_body_for_doc_body
+#+BEGIN_SRC d
+case "body": assert(part == "body" || "head"); // surprise
+ _txt = obj.text
+ .sp_char_esc(obj)
+ .fontface;
+ switch (obj.metainfo.is_of_type) {
+ case "para":
+ switch (obj.metainfo.is_a) {
+ case "heading":
+ _txt = _txt.heading(obj, doc_matters);
+ goto default;
+ case "para":
+ _txt = _txt.para(obj)
+ .bullets_and_indentation(obj)
+ .links_and_images(obj, doc_matters);
+ goto default;
+ default:
+ _latex_body ~= _txt ~ "\n\n";
+ _txt = "";
+ break;
+ }
+ break;
+ case "block":
+ switch (obj.metainfo.is_a) {
+ case "quote":
+ goto default; // TODO
+ case "group":
+ /+ (hardspaces not honored) [remove any hardspace marker] +/
+ _txt = _txt.group(obj, doc_matters)
+ .links_and_images(obj, doc_matters);
+ goto default;
+ case "block":
+ /+ (hardspace honored) \hardspace +/
+ _txt = _txt.block(obj, doc_matters)
+ .links_and_images(obj, doc_matters);
+ goto default;
+ case "verse":
+ /+ (hardspace honored) \hardspace +/
+ _txt = _txt.verse(obj, doc_matters)
+ .links_and_images(obj, doc_matters);
+ goto default;
+ case "code":
+ /+ (hardspace honored) \begin{lstlisting} clear hardspace marker +/
+ _txt = _txt.codeblock(obj, doc_matters);
+ goto default;
+ case "table":
+ _txt = _txt.table(obj, doc_matters, paper_size_orientation);
+ goto default; // TODO
+ default:
+ _latex_body ~= _txt ~ "\n\n";
+ _txt = "";
+ break;
+ }
+ break;
+ default: break;
+ }
+ break;
#+END_SRC
***** backmatter
-#+NAME: output_latex_body_4
-#+BEGIN_SRC d
- case "backmatter":
- assert(part == "endnotes" || "glossary" || "bibliography" || "bookindex" || "blurb" || "tail");
- _txt = obj.text
- .sp_char_esc(obj)
- .fontface;
- switch (obj.metainfo.is_of_type) {
- case "para":
- if (part != "bookindex" && _multicolumns) {
- _multicolumns = false;
- _latex_body ~= "\n\\end{multicols}\n";
- }
- switch (obj.metainfo.is_a) {
- case "heading":
- if (part == "bookindex") {
- _multicolumns = true;
- }
- _txt = _txt.heading(obj, doc_matters, part);
- goto default;
- case "endnote": assert(part == "endnotes");
- /* uncomment code to reinstate endnotes in endnote section */
- // _txt = _txt.para(obj)
- // .bullets_and_indentation(obj)
- // .links_and_images(obj, doc_matters);
- // goto default;
- break;
- case "glossary": assert(part == "glossary");
- _txt = _txt.para(obj)
- .bullets_and_indentation(obj)
- .links_and_images(obj, doc_matters);
- goto default;
- case "bibliography": assert(part == "bibliography");
- _txt = _txt.para(obj)
- .bullets_and_indentation(obj);
- goto default;
- case "bookindex": assert(part == "bookindex");
- /+ two column, special section +/
- _txt = _txt.bookindex(obj)
- .links_and_images(obj, doc_matters);
- goto default;
- case "blurb": assert(part == "blurb");
- _txt = _txt.para(obj)
- .bullets_and_indentation(obj)
- .links_and_images(obj, doc_matters);
- goto default;
- default:
- _latex_body ~= (part == "bookindex" && obj.metainfo.is_a != "heading")
- ? _txt : (_txt ~ "\n\n");
- _txt = "";
- break;
- }
- break;
- default: break;
- }
- break;
+#+NAME: output_latex_body_for_doc_backmatter
+#+BEGIN_SRC d
+case "backmatter":
+ assert(part == "endnotes" || "glossary" || "bibliography" || "bookindex" || "blurb" || "tail");
+ _txt = obj.text
+ .sp_char_esc(obj)
+ .fontface;
+ switch (obj.metainfo.is_of_type) {
+ case "para":
+ if (part != "bookindex" && _multicolumns) {
+ _multicolumns = false;
+ _latex_body ~= "\n\\end{multicols}\n";
+ }
+ switch (obj.metainfo.is_a) {
+ case "heading":
+ if (part == "bookindex") {
+ _multicolumns = true;
+ }
+ _txt = _txt.heading(obj, doc_matters, part);
+ goto default;
+ case "endnote": assert(part == "endnotes");
+ /* uncomment code to reinstate endnotes in endnote section */
+ // _txt = _txt.para(obj)
+ // .bullets_and_indentation(obj)
+ // .links_and_images(obj, doc_matters);
+ // goto default;
+ break;
+ case "glossary": assert(part == "glossary");
+ _txt = _txt.para(obj)
+ .bullets_and_indentation(obj)
+ .links_and_images(obj, doc_matters);
+ goto default;
+ case "bibliography": assert(part == "bibliography");
+ _txt = _txt.para(obj)
+ .bullets_and_indentation(obj);
+ goto default;
+ case "bookindex": assert(part == "bookindex");
+ /+ two column, special section +/
+ _txt = _txt.bookindex(obj)
+ .links_and_images(obj, doc_matters);
+ goto default;
+ case "blurb": assert(part == "blurb");
+ _txt = _txt.para(obj)
+ .bullets_and_indentation(obj)
+ .links_and_images(obj, doc_matters);
+ goto default;
+ default:
+ _latex_body ~= (part == "bookindex" && obj.metainfo.is_a != "heading")
+ ? _txt : (_txt ~ "\n\n");
+ _txt = "";
+ break;
+ }
+ break;
+ default: break;
+ }
+ break;
#+END_SRC
***** after
-#+NAME: output_latex_body_5
+#+NAME: output_latex_body_for_doc_default
#+BEGIN_SRC d
case "comment":
break;
@@ -1884,7 +1923,7 @@ string latex_body(D,M)(
**** latex body return
-#+NAME: output_latex_body_6
+#+NAME: output_latex_body_function_return
#+BEGIN_SRC d
return _latex_body;
}
@@ -1893,7 +1932,7 @@ string latex_body(D,M)(
*** latex tail :tail:
**** latex tail function
-#+NAME: output_latex_tail_0
+#+NAME: output_latex_tail_function
#+BEGIN_SRC d
string latex_tail(M)(
M doc_matters,
@@ -1903,16 +1942,16 @@ string latex_tail(M)(
**** latex tail starts
-#+NAME: output_latex_tail_1
+#+NAME: output_latex_tail_format_string
#+BEGIN_SRC d
- string _latex_tail = format(q"┃
+string _latex_tail = format(q"┃
#+END_SRC
***** latex tail format inclusions
***** latex document end
-#+NAME: output_latex_tail_tex
+#+NAME: output_latex_tail_format_string_tex
#+BEGIN_SRC latex
\end{document}
@@ -1920,7 +1959,7 @@ string latex_tail(M)(
**** latex tail format inclusions
-#+NAME: output_latex_tail_close_0
+#+NAME: output_latex_tail_format_string_close
#+BEGIN_SRC d
┃",
// doc_matters.conf_make_meta.meta.title_full,
@@ -1930,7 +1969,7 @@ string latex_tail(M)(
**** latex tail return
-#+NAME: output_latex_tail_close_1
+#+NAME: output_latex_tail_function_return
#+BEGIN_SRC d
return _latex_tail;
}
@@ -1939,7 +1978,7 @@ string latex_tail(M)(
* latex system command helper script
** latex command, ruby script
-#+HEADER: :tangle "../sundry/util/rb/tex/dr_tex.rb"
+#+HEADER: :tangle "../sundry/misc/util/rb/tex/dr_tex.rb"
#+HEADER: :tangle-mode (identity #o755)
#+HEADER: :shebang #!/usr/bin/env ruby
#+BEGIN_SRC ruby
diff --git a/shell.nix b/shell.nix
index 9a87063..ce4ced7 100755
--- a/shell.nix
+++ b/shell.nix
@@ -16,6 +16,11 @@ pkgs.mkShell {
#meson
# # search_sqlite_related
# sqlite
+ # # pdf_latex_related
+ # source-sans-pro
+ # source-serif-pro
+ # source-code-pro
+ # texlive.combined.scheme-full
# # xml_and_epub_related
# libxml2
# html-tidy
diff --git a/src/doc_reform/io_out/latex.d b/src/doc_reform/io_out/latex.d
index bf047f9..811f32e 100644
--- a/src/doc_reform/io_out/latex.d
+++ b/src/doc_reform/io_out/latex.d
@@ -876,60 +876,60 @@ string table(O,M)(
urlcolor=myblue, %% \href{...}{...} external url
filecolor=mygreen, %% \href{...} local file
linkcolor=myred, %% \href{...} and \pageref{...}
- ┃",
- );
- string set_paper(P)(P paper_set,) {
- string paper_type_description;
- if (paper_set.is_portrait) {
- paper_type_description = format(q"┃
- \documentclass[%s,%s,titlepage]{scrartcl}
- \setlength{\textheight}{%s} \setlength{\textwidth}{%s}
- ┃",
- paper_set.font_size,
- paper_set.name,
- paper_set.height,
- paper_set.width,
- );
- } else {
- paper_type_description = format(q"┃
- \documentclass[%s,%s,landscape,titlepage,twocolumn]{scrartcl}
- \setlength{\textheight}{%s} \setlength{\textwidth}{%s}
- ┃",
- paper_set.font_size,
- paper_set.name,
- paper_set.height,
- paper_set.width,
- );
- }
- return paper_type_description;
- }
- string paper_size_orientation_latex;
- switch (paper_size_orientation) {
- case "a4.portrait": paper_size_orientation_latex = set_paper(paper.a4.portrait); break;
- case "a4.landscape": paper_size_orientation_latex = set_paper(paper.a4.landscape); break;
- case "a5.portrait": paper_size_orientation_latex = set_paper(paper.a5.portrait); break;
- case "a5.landscape": paper_size_orientation_latex = set_paper(paper.a5.landscape); break;
- case "b4.portrait": paper_size_orientation_latex = set_paper(paper.b4.portrait); break;
- case "b4.landscape": paper_size_orientation_latex = set_paper(paper.b4.landscape); break;
- case "letter.portrait": paper_size_orientation_latex = set_paper(paper.letter.portrait); break;
- case "letter.landscape": paper_size_orientation_latex = set_paper(paper.letter.landscape); break;
- case "legal.portrait": paper_size_orientation_latex = set_paper(paper.legal.portrait); break;
- case "legal.landscape": paper_size_orientation_latex = set_paper(paper.legal.landscape); break;
- default: paper_size_orientation_latex = paper_type_latex.a4_portrait;
- }
- string links_mono_or_color_set = links.mono.strip;
- if (
- (doc_matters.opt.action.latex_color_links)
- || (paper_size_orientation ==
- "a4.landscape" ||
- "a5.landscape" ||
- "b4.landscape" ||
- "letter.landscape" ||
- "legal.landscape")
- ){
- links_mono_or_color_set = links.color.strip;
+┃",
+ );
+ string set_paper(P)(P paper_set,) {
+ string paper_type_description;
+ if (paper_set.is_portrait) {
+ paper_type_description = format(q"┃
+\documentclass[%s,%s,titlepage]{scrartcl}
+\setlength{\textheight}{%s} \setlength{\textwidth}{%s}
+┃",
+ paper_set.font_size,
+ paper_set.name,
+ paper_set.height,
+ paper_set.width,
+ );
+ } else {
+ paper_type_description = format(q"┃
+\documentclass[%s,%s,landscape,titlepage,twocolumn]{scrartcl}
+\setlength{\textheight}{%s} \setlength{\textwidth}{%s}
+┃",
+ paper_set.font_size,
+ paper_set.name,
+ paper_set.height,
+ paper_set.width,
+ );
}
- string _latex_head = format(q"┃%%%% spine LaTeX output
+ return paper_type_description;
+ }
+ string paper_size_orientation_latex;
+ switch (paper_size_orientation) {
+ case "a4.portrait": paper_size_orientation_latex = set_paper(paper.a4.portrait); break;
+ case "a4.landscape": paper_size_orientation_latex = set_paper(paper.a4.landscape); break;
+ case "a5.portrait": paper_size_orientation_latex = set_paper(paper.a5.portrait); break;
+ case "a5.landscape": paper_size_orientation_latex = set_paper(paper.a5.landscape); break;
+ case "b4.portrait": paper_size_orientation_latex = set_paper(paper.b4.portrait); break;
+ case "b4.landscape": paper_size_orientation_latex = set_paper(paper.b4.landscape); break;
+ case "letter.portrait": paper_size_orientation_latex = set_paper(paper.letter.portrait); break;
+ case "letter.landscape": paper_size_orientation_latex = set_paper(paper.letter.landscape); break;
+ case "legal.portrait": paper_size_orientation_latex = set_paper(paper.legal.portrait); break;
+ case "legal.landscape": paper_size_orientation_latex = set_paper(paper.legal.landscape); break;
+ default: paper_size_orientation_latex = paper_type_latex.a4_portrait;
+ }
+ string links_mono_or_color_set = links.mono.strip;
+ if (
+ (doc_matters.opt.action.latex_color_links)
+ || (paper_size_orientation ==
+ "a4.landscape" ||
+ "a5.landscape" ||
+ "b4.landscape" ||
+ "letter.landscape" ||
+ "legal.landscape")
+ ){
+ links_mono_or_color_set = links.color.strip;
+ }
+ string _latex_head = format(q"┃%%%% spine LaTeX output
%%%% Generated by: %s
%%%% D version: %s
%%%% LaTeX output last Generated on: %s
@@ -941,7 +941,11 @@ string table(O,M)(
\setlength{\marginparsep}{4mm}
\setlength{\marginparwidth}{8mm}
%s
-\usepackage{polyglossia, ucs, fontspec, xltxtra, xunicode}
+\usepackage{polyglossia}
+\usepackage{ucs}
+\usepackage{fontspec}
+\usepackage{xltxtra}
+\usepackage{xunicode}
\setmainlanguage{%s}
\setotherlanguage{%s}
\setmainfont{Liberation Sans}
@@ -1346,7 +1350,7 @@ string table(O,M)(
string content;
string tail;
}
- auto latex = LaTeX();
+ auto latex = LaTeX();
foreach (paper_size_orientation; doc_matters.conf_make_meta.conf.set_papersize) {
latex.head = latex_head(doc_matters, paper_size_orientation);
latex.content = latex_body(doc_abstraction, doc_matters, paper_size_orientation);