From 3cd0d58a1e5e0ac586e7532ab2f28a25dea149f6 Mon Sep 17 00:00:00 2001 From: Jali Date: Sun, 24 Oct 2021 21:21:10 +0200 Subject: [PATCH] initial commit --- .gitignore | 5 ++ Main.tex | 63 ++++++++++++++++ README.md | 9 +++ wscript | 207 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 284 insertions(+) create mode 100644 .gitignore create mode 100644 Main.tex create mode 100644 README.md create mode 100644 wscript diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e99aa8f --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*~ +.*.swp +.*.swo +build/* +.lock-waf_linux_build diff --git a/Main.tex b/Main.tex new file mode 100644 index 0000000..82dde9c --- /dev/null +++ b/Main.tex @@ -0,0 +1,63 @@ +% Title: +% Author: Zoƫ A. Porter +% Created: TIMESTAM +% Last Modified: TIMESTAM +% Rating: +% Summary: +% +% + +%% preamble + +\documentclass[twoside, openright, 10pt, pdflatex]{memoir} + +% use special colour tables for pdf output +\ifpdf{} +\usepackage{pdfcolmk} +\fi{} + +% paper size for pocket books +\setstocksize{19cm}{12.5cm} +\usepackage[paperwidth=12.5cm, paperheight=19cm]{geometry} + +% all source code is UTF-8 +\usepackage{ucs} +\usepackage[utf8x]{inputenc} + +% allow import of images +\usepackage{graphicx} + +% use the ding font +\usepackage{pifont} + +% allow nicely formatted quotes +\usepackage{quoting} + +% print pretty fleurons on paragraph breaks +\renewcommand{\pfbreakdisplay}{\ding{167}\quad{}\ding{167}\quad{}\ding{167}} + +%% start of document + +\begin{document} + +% Make the title page +\begin{titlingpage} + \let\cleardoublepage\clearpage + \title{<++>} + \author{Zo\"{e} A. Porter} + \titlePM{} +\end{titlingpage} + +% set the correctnumbering etc. +\mainmatter{} +\chapterstyle{novel} + +% place chapters or story content here + +% and the epologue here +\backmatter{} +\chapterstyle{dowding} + +\end{document} + +% vim: spelllang=en_gb: diff --git a/README.md b/README.md new file mode 100644 index 0000000..aca07a8 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# + +> Version: 1.0.. \ +> Created By: Afanen \ +> Last Modified By: Afanen + +## Description + + diff --git a/wscript b/wscript new file mode 100644 index 0000000..d4bdfe3 --- /dev/null +++ b/wscript @@ -0,0 +1,207 @@ +#!/usr/bin/env python +# encoding: utf-8 +# Created On: Tue 28 Aug 2012 11:44:05 CEST +# Last Modified: Sun 08 Apr 2018 10:46:32 pm CEST +# MAKEFILE for compiling LaTeX Files + +VERSION='1.1.0' +APPNAME='MAKEFILE FOR LaTeX' + +top='.' +out='build' +chapterpath='./chapters' + +# query the options that are possible outputs +def options(ctx): + ctx.add_option('--form',action='store',default='pdflatex',help='Specify the output format. Allowed values are: pdflatex, latex, htlatex, odt, epub, handlatex') + ctx.add_option('--cover',action='store',default='images/cover.png',help='Specify an image as cover for ePubs.\nOnly works with --form=epub') + ctx.add_option('--infile',action='store',help='Specify the tex file to use as input file.\nIf not given, all files in the top level directory will be compiled.') + ctx.add_option('--css',action='store',default='css/epub.css',help='Specifiy a style sheet to design an ebook') + ctx.add_option('--spellckpath',action='store',help='Specify the path in which to look for the content files for spellcheck.\nDefault is ./chapters',default=chapterpath); + +# configure script +def configure(ctx): + # local functions to configure the selected element + def find_tex_files(path): + import os + ret = [] + for name in os.listdir(path): + if os.path.isfile(os.path.join(path,name)): + if (name.endswith('.tex')) or (name.endswith('.ltx')): + ret.append(name) + return ret + + def conf_tex(ctx): + ctx.load('tex') + + def conf_htlatex(ctx): + ctx.find_program('mk4ht',var='TEX') + ctx.env.TEXINPUT = ctx.path.abspath() + '//' + + def conf_epub(ctx): + ctx.find_program('pandoc',var='EPUB') + ctx.env.TEXINPUT = ctx.path.abspath() + '//' + + def conf_odt(ctx): + ctx.find_program('pandoc',var='ODT') + ctx.env.TEXINPUT = ctx.path.abspath() + '//' + + def conf_handlatex(ctx): + ctx.find_program('handlatex',var='TEX') + ctx.env.TEXINPUT = ctx.path.abspath() + '//' + + # define a structure to assign the functions to the parameters + conf_output = {'pdflatex' : conf_tex, + 'latex' : conf_tex, + 'htlatex' : conf_htlatex, + 'odt' : conf_odt, + 'epub' : conf_epub, + 'handlatex' : conf_handlatex + + } + + # set the selected mode + if ctx.options.form: + ctx.env.FORM = ctx.options.form + conf_output[ctx.env.FORM](ctx) + else: + ctx.fatal('Output format is not set!') + + # set a cover image + if ctx.options.cover: + ctx.env.COVER = ctx.options.cover + else: + ctx.env.COVER = '' + + # set the css style + if ctx.options.css: + ctx.env.CSS = ctx.options.css + else: + ctx.env.CSS = '' + + # find the aspell program + ctx.find_program('aspell',var='ASPELL') + + # set a default path to look for spellck sources + if ctx.options.spellckpath: + ctx.env.SPELLCK = ctx.options.spellckpath + + # Set a list of all files to use + if ctx.options.infile: + sf = [] + sf.append(ctx.options.infile) + ctx.env.SOURCEFILES = sf + else: + ctx.env.SOURCEFILES = find_tex_files(top) + + +def build(ctx): + import os.path + # metadata parameters + def build_metadata(fileName,cover): + ret = '' + if os.path.isfile(fileName): + ret += '--css="' + fileName + '"' + if os.path.isfile(cover): + ret += ' --epub-cover="' + cover + '"' + + return ret + + # local functions to control the build process + def build_tex(ctx): + import os + for f in ctx.env.SOURCEFILES: + ctx(features = 'tex', + type = ctx.env.FORM, + source = f, + prompt = 0 + ) + if ctx.cmd == 'install': + outExt = '.dvi' + if ctx.env.FORM == 'pdflatex': + outExt = '.pdf' + fileName, fileExt = os.path.splitext(f) + ctx.install_files('${PREFIX}',fileName + outExt) + + def build_htlatex(ctx): + for f in ctx.env.SOURCEFILES: + ctx(rule='TEXINPUTS=${TEXINPUT}: ${TEX} ${FORM} ${SRC} >/dev/null',source=f) + if ctx.cmd == 'install': + fileName, fileExt = os.path.splitext(f) + ctx.install_files('${PREFIX}',fileName + '.html') + + def build_epub(ctx): + import os + for f in ctx.env.SOURCEFILES: + if os.path.isfile(ctx.env.COVER) : + ctx.env.META = build_metadata(ctx.path.find_resource(ctx.env.CSS).abspath(),ctx.path.find_resource(ctx.env.COVER).abspath()) + else: + ctx.env.META = build_metadata(ctx.path.find_resource(ctx.env.CSS).abspath(),'') + fileName, fileExt = os.path.splitext(f) + ctx(rule='TEXINPUTS=${TEXINPUT}: ${EPUB} ${META} -t epub ${SRC} -o ${TGT} >/dev/null',source=f, target=fileName + '.epub') + if ctx.cmd == 'install': + ctx.install_files('${PREFIX}',fileName + '.epub') + + def build_odt(ctx): + import os + for f in ctx.env.SOURCEFILES: + fileName, fileExt = os.path.splitext(f) + ctx(rule='TEXINPUTS=${TEXINPUT}: ${ODT} -t odt ${SRC} -o ${TGT} >/dev/null',source=f, + target=fileName + '.odt') + if ctx.cmd == 'install': + ctx.install_files('${PREFIX}',fileName + '.odt') + + def build_handlatex(ctx): + import os + for f in ctx.env.SOURCEFILES: + ctx(rule='TEXINPUTS=${TEXINPUT}: ${TEX} ${SRC} >/dev/null && rm -f ../*.h*',source=f) + if ctx.cmd == 'install': + fileName, fileExt = os.path.splitext(f) + ctx.install_files('${PREFIX}',fileName + outExt) + + + # define a structure to assign the functions to the parameters + build_output = {'pdflatex' : build_tex, + 'latex' : build_tex, + 'htlatex' : build_htlatex, + 'odt' : build_odt, + 'epub' : build_epub, + 'handlatex' : build_handlatex + } + + # call the configured build method + build_output[ctx.env.FORM](ctx) + + +# Custom command to spellcheck all +def spellck(ctx): + + # Search for all possible TEX files + def find_tex_files(path): + import os + ret = [] + for root, dirs, files in os.walk(path): + for name in files: + if (name.endswith('.tex')) or (name.endswith('.ltx')): + ret.append(os.path.join(root,name)) + return ret + + # Set a list of input files to use + if ctx.options.infile: + sf = [] + sf.append(ctx.options.infile) + ctx.env.SOURCEFILES = sf + else : + ctx.env.SOURCEFILES = find_tex_files(ctx.env.SPELLCK) + + # run aspell + from os import system + for f in ctx.env.SOURCEFILES : + system(ctx.env.ASPELL[0] + ' -c ' + f) + system('rm ' + f + '.' +'bak') + +# Class declarartion to bind the build context to the spellck command +from waflib.Build import BuildContext +class spck(BuildContext): + cmd='spellck' + fun='spellck'