parent
440f296bf7
commit
7c9a600046
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,99 @@ |
||||
#!/bin/sh |
||||
# worddiv - query LaTeX’s word division (hyphenation) patterns |
||||
# |
||||
# SPDX-FileCopyRightText: Marc Hiatt (hiatt@campus.tu-berlin.de) |
||||
# SPDX-License-Identifier: GPL-3.0-or-later |
||||
|
||||
|
||||
# TODO: add languages other than English |
||||
|
||||
project_path=$HOME/.config/fish/conf.d/worddiv |
||||
tmpdir=$project_path/.cache/tempdir_$(date -Ins) |
||||
template_filename=latex-hyphenation-template.tex |
||||
expression_filename=latex-target.tex |
||||
secondary_filename=latex-target-scd.tex |
||||
|
||||
|
||||
# welcome message |
||||
tex_version=`tex -version | head -n 1` |
||||
latex_version=`latex -version | head -n 1` |
||||
printf "Let’s query \n %s and\n %s !\n" "$tex_version" "$latex_version" |
||||
printf "\nEnter an expression to see its hyphenation, or ‘q’ to quit.\n\n" |
||||
|
||||
# set languages |
||||
language=american |
||||
label=AE |
||||
secondary_language=british |
||||
secondary_label=BE |
||||
|
||||
# interact |
||||
expression="" |
||||
until test "$expression" = "q" ; do |
||||
read -p "divide > " expression |
||||
if test ! -d "$tmpdir" ; then |
||||
# set up temporary directory for our own .tex files and LaTeX's logfiles |
||||
mkdir -p "$tmpdir" || echo "Unable to create temporary directory!" |
||||
fi |
||||
|
||||
|
||||
if test ! "$expression" = "q" ; then |
||||
|
||||
## latex+babel |
||||
# generate input and output |
||||
cp $project_path/$template_filename $tmpdir |
||||
|
||||
# for now, $language just = american |
||||
sed "s/language/$language/g" $tmpdir/$template_filename | |
||||
sed "s/expression/$expression/g" | |
||||
|
||||
# modify template: uncomment its \input ushyphex line so that |
||||
# the exceptions list for AE will be included |
||||
sed "s/% \\\input/\\\input/g" > $tmpdir/$expression_filename |
||||
|
||||
|
||||
# let's check and see if british english divides this expression differently |
||||
# for now, $secondary_language just = british |
||||
sed "s/language/$secondary_language/g" $tmpdir/$template_filename | |
||||
sed "s/expression/$expression/g" > $tmpdir/$secondary_filename |
||||
|
||||
# american |
||||
babel_output=$(latex -draftmode $tmpdir/$expression_filename | |
||||
grep "\\[\\] .OT1" | sed -E "s/.* ([-a-z]*)$/\1/") |
||||
|
||||
# british |
||||
babel_output_secondary=$(latex -draftmode $tmpdir/$secondary_filename | |
||||
grep "\\[\\] .OT1" | sed -E "s/.* ([-a-z]*)$/\1/") |
||||
|
||||
## tex+showhyphens |
||||
tex_output=$(echo "\showhyphens{$expression}" | |
||||
tex -output-directory "$tmpdir" | |
||||
sed -nE --posix "/tenrm/s/.* ([-a-z])/\1/p") |
||||
|
||||
## run comparisons ... |
||||
# babel AE vs plain TeX |
||||
if test "$babel_output" = "$tex_output" ; then |
||||
# babel AE vs babel BE |
||||
if test ! "$babel_output" = "$babel_output_secondary" ; then |
||||
printf "\nbabel (%s): %s\n" "$label" "$babel_output" |
||||
else |
||||
printf "\nbabel (%s & %s): %s\n" "$label" "$secondary_label" "$babel_output" |
||||
fi |
||||
else |
||||
printf "\nbabel (%s): %s\n" "$label" "$babel_output" |
||||
printf "\nplain TeX (%s): %s\n" "$label" "$tex_output" |
||||
fi |
||||
|
||||
# one more comparison |
||||
# babel AE vs babel BE |
||||
if test ! "$babel_output" = "$babel_output_secondary" ; then |
||||
printf "babel (%s): %s\n\n" "$secondary_label" "$babel_output_secondary" |
||||
fi |
||||
fi |
||||
|
||||
done |
||||
|
||||
|
||||
# clean up |
||||
if test -d "$tmpdir" ; then |
||||
rm -r "$tmpdir" |
||||
fi |
||||
Loading…
Reference in new issue