Updated latex to build based on new template format
This commit is contained in:
parent
49d75e1ef6
commit
df29933d4e
155
zsh/latex
155
zsh/latex
@ -1,3 +1,156 @@
|
||||
#!/bin/zsh
|
||||
|
||||
alias tekclean='rm *.aux *.log *.pdf'
|
||||
function tek() {
|
||||
case $1 in
|
||||
clean)
|
||||
LATEX_CLEANUP "${@:2}";
|
||||
;;
|
||||
new)
|
||||
LATEX_NEW_DOCUMENT "${@:2}";
|
||||
;;
|
||||
compile)
|
||||
LATEX_COMPILE "${@:2}";
|
||||
;;
|
||||
*)
|
||||
LATEX_COMPILE "${@:1}";
|
||||
;;
|
||||
esac
|
||||
}
|
||||
_tek () { # autocompletion
|
||||
local state;
|
||||
|
||||
_arguments \
|
||||
'1: :->primary_command'\
|
||||
':: :->command_args'\
|
||||
;
|
||||
case "$state" in
|
||||
primary_command)
|
||||
compadd clean new compile;
|
||||
;;
|
||||
command_args)
|
||||
[ $words[2] == 'clean' ] && _LATEX_NEW_DOCUMENT;
|
||||
[ $words[2] == 'new' ] && _LATEX_NEW_DOCUMENT;
|
||||
[ $words[2] == 'compile' ] && _LATEX_COMPILE;
|
||||
;;
|
||||
esac
|
||||
}
|
||||
compdef _tek tek;
|
||||
|
||||
|
||||
###############################################################################
|
||||
### HELPERS ###################################################################
|
||||
###############################################################################
|
||||
|
||||
function LATEX_CLEANUP() {
|
||||
rm *.aux *.log *.pdf *.dvi >/dev/null 2>&1;
|
||||
echo 'All clean!';
|
||||
return 0;
|
||||
}
|
||||
|
||||
function LATEX_NEW_DOCUMENT() {
|
||||
local PARENT_TEMPLATE_DIR="$DOTWRYN/latex";
|
||||
local FILE_NAME;
|
||||
|
||||
[ $2 ] && FILE_NAME="$2" || {
|
||||
printf '\nInput document title : '
|
||||
read FILE_NAME; echo;
|
||||
}
|
||||
|
||||
[ ! "$FILE_NAME" ] && { echo "ERROR :: File name required!"; return 1; }
|
||||
|
||||
local NEW_FILE="$FILE_NAME.tex";
|
||||
[ -f "./$NEW_FILE" ] && { echo "ERROR :: File already already exists : $FILE_NAME.tex"; return 2; }
|
||||
|
||||
[[ $1 && -d "$PARENT_TEMPLATE_DIR/$1" ]] \
|
||||
&& local TEMPLATE_DIR="$PARENT_TEMPLATE_DIR/$1" \
|
||||
|| local TEMPLATE_DIR="$PARENT_TEMPLATE_DIR/default";
|
||||
|
||||
cp "$PARENT_TEMPLATE_DIR/template.tex" "./$FILE_NAME.tex";
|
||||
|
||||
[ ! -f "./body.tex" ] \
|
||||
&& cp "$TEMPLATE_DIR/body.tex" "./body.tex" \
|
||||
|| echo 'WARNING :: `./body.tex` already exists. Template body not copied.' ;
|
||||
|
||||
[ ! -f "./imports.sty" ] \
|
||||
&& cp "$TEMPLATE_DIR/imports.sty" "./imports.sty" \
|
||||
|| echo 'WARNING :: `./imports.sty` already exists. Template imports not copied.';
|
||||
|
||||
[ ! -f "./formatting.sty" ] \
|
||||
&& cp "$TEMPLATE_DIR/formatting.sty" "./formatting.sty" \
|
||||
|| echo 'WARNING :: `./formatting.sty` already exists. Template formatting not copied.';
|
||||
}
|
||||
_LATEX_NEW_DOCUMENT () {
|
||||
compadd $(ls $DOTWRYN/latex | grep -v .tex);
|
||||
}
|
||||
|
||||
function LATEX_COMPILE() {
|
||||
local COMPILE_TYPE='pdf';
|
||||
|
||||
[ $1 ] && COMPILE_TYPE="$1";
|
||||
|
||||
local COMPILE_ME="$(find -mindepth 0 -maxdepth 1 -name \*.tex | grep -v body.tex)";
|
||||
[ $(echo "$COMPILE_ME" | wc -l) -gt 1 ] && { echo 'ERROR :: Multiple compatible files detected. Please compile manually.'; return 1; }
|
||||
[[ ! $COMPILE_ME || $(echo "$COMPILE_ME" | wc -l) -lt 1 ]] && { echo 'ERROR :: No compatible files detected. Please ensure .tex file exists in current direcotory'; return 2;}
|
||||
|
||||
case $COMPILE_TYPE in
|
||||
pdf)
|
||||
pdflatex --version >/dev/null 2>&1 && {
|
||||
echo 'Beginning initial compile...';
|
||||
timeout 3 pdflatex $COMPILE_ME >/dev/null && {
|
||||
echo 'Beginning secondary compile...';
|
||||
timeout 3 pdflatex $COMPILE_ME >/dev/null && LATEX_SUCCESS;
|
||||
} || {
|
||||
echo 'ERROR :: Failed to compile. Check local log files';
|
||||
return 1;
|
||||
}
|
||||
} || {
|
||||
echo 'ERROR :: Compiling LaTeX to pdf requires pdflatex: (https://www.tug.org/applications/pdftex)';
|
||||
return 2;
|
||||
}
|
||||
;;
|
||||
dvi)
|
||||
latex --version >/dev/null 2>&1 && {
|
||||
echo 'Beginnint initial compile...';
|
||||
timeout 3 latex $COMPILE_ME >/dev/null && {
|
||||
echo 'Beginning secondary compile...';
|
||||
timeout 3 latex $COMPILE_ME >/dev/null && LATEX_SUCCESS;
|
||||
} || {
|
||||
echo 'ERROR :: Failed to compile. Check local log files';
|
||||
return 1;
|
||||
}
|
||||
} || {
|
||||
echo 'ERROR :: Compiling LaTeX to dvi requires latex: (https://www.latex-project.org/get/)';
|
||||
return 2;
|
||||
}
|
||||
;;
|
||||
*)
|
||||
echo "ERROR :: Unsupported LaTeX compile format : $COMPILE_TYPE";
|
||||
return 2;
|
||||
;;
|
||||
esac
|
||||
}
|
||||
_LATEX_COMPILE () {
|
||||
compadd pdf dvi default;
|
||||
}
|
||||
|
||||
function LATEX_SUCCESS() {
|
||||
local MSG='success';
|
||||
local MSG_LONG='LaTeX compile successful!';
|
||||
|
||||
local FIGLET_SUPPORT=0;
|
||||
local LOLCAT_SUPPORT=0;
|
||||
|
||||
figlet -v >/dev/null 2>&1 && FIGLET_SUPPORT=1;
|
||||
lolcat -v >/dev/null 2>&1 && LOLCAT_SUPPORT=1;
|
||||
|
||||
[ $FIGLET_SUPPORT -ne 0 ] && {
|
||||
[ $LOLCAT_SUPPORT -ne 0 ] \
|
||||
&& figlet $MSG | lolcat \
|
||||
|| figlet $MSG;
|
||||
} || {
|
||||
[ $LOLCAT_SUPPORT -ne 0 ] \
|
||||
&& echo $MSG | lolcat \
|
||||
|| echo $MSG_LONG;
|
||||
}
|
||||
echo;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user