|
|
|
|
@ -35,81 +35,82 @@ function worddiv --description "Interact with TeX and babel (LaTeX) to show word |
|
|
|
|
# interact |
|
|
|
|
set -f expression "" |
|
|
|
|
while test $expression != "q" |
|
|
|
|
|
|
|
|
|
read -f --prompt hyphenation_prompt expression |
|
|
|
|
|
|
|
|
|
if test ! -e $tmpdir |
|
|
|
|
mkdir -p "$tmpdir" || echo "Unable to create temporary directory!" |
|
|
|
|
mkdir -p "$tmpdir" || echo "Unable to create temporary directory!" |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
if test $expression != "q" |
|
|
|
|
|
|
|
|
|
## 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 |
|
|
|
|
set -f babel_output ( |
|
|
|
|
latex -draftmode $tmpdir/$expression_filename | |
|
|
|
|
grep "\\[\\] .OT1" | sed 's_\\[\\] .OT1/cmr/m/n/10 __' ) |
|
|
|
|
|
|
|
|
|
# british |
|
|
|
|
set -f babel_output_british ( |
|
|
|
|
latex -draftmode $tmpdir/$secondary_filename | |
|
|
|
|
grep "\\[\\] .OT1" | sed 's_\\[\\] .OT1/cmr/m/n/10 __' ) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## tex+showhyphens |
|
|
|
|
# generate output |
|
|
|
|
set -f tex_untrimmed (echo -e "\showhyphens{$expression}" | |
|
|
|
|
tex --output-directory "$tmpdir" | tail -n +4 | head -n -10 | |
|
|
|
|
sed 's/^\[\] \\\tenrm //' ) |
|
|
|
|
|
|
|
|
|
# $tex_untrimmed has trailing whitespace; trim it |
|
|
|
|
set -f tex_output (string trim "$tex_untrimmed") |
|
|
|
|
|
|
|
|
|
## run comparisons ... |
|
|
|
|
# babel AE vs plain TeX |
|
|
|
|
if test "$babel_output" = "$tex_output" |
|
|
|
|
# babel AE vs babel BE |
|
|
|
|
if test "$babel_output" != "$babel_output_british" |
|
|
|
|
set_color yellow ; echo -en "\nbabel (AE): " |
|
|
|
|
else |
|
|
|
|
set_color yellow ; echo -en "\nbabel (AE & BE): " |
|
|
|
|
end |
|
|
|
|
# ... and output results |
|
|
|
|
set_color normal ; echo -e "$babel_output\n" |
|
|
|
|
else |
|
|
|
|
set_color yellow ; echo -en "\nbabel (AE): " ; set_color normal ; echo $babel_output |
|
|
|
|
set_color yellow ; echo -en "\nplain TeX (AE): " ; set_color normal ; echo -e "$tex_output\n" |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
# one more comparison |
|
|
|
|
## latex+babel |
|
|
|
|
# generate input and output |
|
|
|
|
# grab a copy of the template |
|
|
|
|
cp $project_path/$template_filename $tmpdir/ |
|
|
|
|
|
|
|
|
|
# modify the template, inserting our two variables |
|
|
|
|
# for now, $language just = american |
|
|
|
|
sed "s/language/$language/g" $tmpdir/$template_filename | |
|
|
|
|
sed "s/expression/$expression/g" | |
|
|
|
|
# also uncomment its \input ushyphex line so that |
|
|
|
|
# the exceptions list for AE will be included |
|
|
|
|
# output to a new file |
|
|
|
|
sed "s/% \\\input/\\\input/g" > $tmpdir/$expression_filename |
|
|
|
|
|
|
|
|
|
# let's check and see if british english divides this expression differently |
|
|
|
|
# modify the template with a different language |
|
|
|
|
# for now, $secondary_language just = british |
|
|
|
|
# output to a new file |
|
|
|
|
sed "s/language/$secondary_language/g" $tmpdir/$template_filename | |
|
|
|
|
sed "s/expression/$expression/g" > $tmpdir/$secondary_filename |
|
|
|
|
|
|
|
|
|
## operate on the files and filter the output |
|
|
|
|
# american |
|
|
|
|
set -f babel_output ( |
|
|
|
|
latex -draftmode $tmpdir/$expression_filename | |
|
|
|
|
grep "\\[\\] .OT1" | sed 's_\\[\\] .OT1/cmr/m/n/10 __' ) |
|
|
|
|
|
|
|
|
|
# british |
|
|
|
|
set -f babel_output_british ( |
|
|
|
|
latex -draftmode $tmpdir/$secondary_filename | |
|
|
|
|
grep "\\[\\] .OT1" | sed 's_\\[\\] .OT1/cmr/m/n/10 __' ) |
|
|
|
|
|
|
|
|
|
## tex+showhyphens |
|
|
|
|
# generate output |
|
|
|
|
set -f tex_untrimmed (echo -e "\showhyphens{$expression}" | |
|
|
|
|
tex --output-directory "$tmpdir" | tail -n +4 | head -n -10 | |
|
|
|
|
sed 's/^\[\] \\\tenrm //' ) |
|
|
|
|
|
|
|
|
|
# $tex_untrimmed has trailing whitespace; trim it |
|
|
|
|
set -f tex_output (string trim "$tex_untrimmed") |
|
|
|
|
|
|
|
|
|
## run comparisons ... |
|
|
|
|
# babel AE vs plain TeX |
|
|
|
|
if test "$babel_output" = "$tex_output" |
|
|
|
|
# babel AE vs babel BE |
|
|
|
|
if test "$babel_output" != "$babel_output_british" |
|
|
|
|
set_color yellow ; echo -en "babel (BE): " |
|
|
|
|
set_color normal ; echo -e "$babel_output_british\n" |
|
|
|
|
set_color yellow ; echo -en "\nbabel (AE): " |
|
|
|
|
else |
|
|
|
|
set_color yellow ; echo -en "\nbabel (AE & BE): " |
|
|
|
|
end |
|
|
|
|
# ... and output results |
|
|
|
|
set_color normal ; echo -e "$babel_output\n" |
|
|
|
|
else |
|
|
|
|
set_color yellow ; echo -en "\nbabel (AE): " ; set_color normal ; echo $babel_output |
|
|
|
|
set_color yellow ; echo -en "\nplain TeX (AE): " ; set_color normal ; echo -e "$tex_output\n" |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
# one more comparison |
|
|
|
|
# babel AE vs babel BE |
|
|
|
|
if test "$babel_output" != "$babel_output_british" |
|
|
|
|
set_color yellow ; echo -en "babel (BE): " |
|
|
|
|
set_color normal ; echo -e "$babel_output_british\n" |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
echo -e "\nQuitting...\n" |
|
|
|
|
|
|
|
|
|
# clean up |
|
|
|
|
if -e $tmpdir |
|
|
|
|
if test -e $tmpdir |
|
|
|
|
rm -r $tmpdir |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|