#
set(Perl_Script "${TOP_SRC_DIR}/development/autotests/useSystemFonts.pl")
+set(LanguageFile "${TOP_SRC_DIR}/lib/languages")
set(GetTempDir "${TOP_SRC_DIR}/development/autotests/getTempDir.pl")
set(_ft ${fonttype})
execute_process(COMMAND ${PERL_EXECUTABLE} "${GetTempDir}" "${WORKDIR}" OUTPUT_VARIABLE TempDir)
set(LYX_SOURCE "${TempDir}/${file}_${format}_${_ft}.lyx")
message(STATUS "Using source \"${LYX_ROOT}/${file}.lyx\"")
message(STATUS "Using dest \"${LYX_SOURCE}\"")
- execute_process(COMMAND ${PERL_EXECUTABLE} "${Perl_Script}" "${LYX_ROOT}/${file}.lyx" "${LYX_SOURCE}" ${format} ${_ft}
+ execute_process(COMMAND ${PERL_EXECUTABLE} "${Perl_Script}" "${LYX_ROOT}/${file}.lyx" "${LYX_SOURCE}" ${format} ${_ft} ${LanguageFile}
RESULT_VARIABLE _err)
string(COMPARE EQUAL ${_err} 0 _erg)
if(NOT _erg)
sub addNewJob($$$$$);
sub addFileCopyJob($$$$);
sub getNewNameOf($$);
+sub getlangs($$);
+sub getLangEntry();
# convert lyx file to be compilable with xetex
-my ($source, $dest, $format, $fontT, $rest) = @ARGV;
+my ($source, $dest, $format, $fontT, $languageFile, $rest) = @ARGV;
+my %encodings = (); # Encoding with TeX fonts, depending on language tag
diestack("Too many arguments") if (defined($rest));
diestack("Sourcefilename not defined") if (! defined($source));
$lang = $1;
}
+if (defined($languageFile)) {
+}
my $inputEncoding = undef;
if ($fontT eq "systemF") {
if ($lang =~ /^(ru|uk|sk)$/) {
}
else {
# use tex font here
+ my %encoding = ();
+ if (defined($languageFile)) {
+ &getlangs($languageFile, \%encoding);
+ }
if ($format =~ /^(pdf4)$/) { # xelatex
# set input encoding to 'ascii' always
$inputEncoding = {
}
elsif ($format =~ /^(dvi3|pdf5)$/) { # (dvi)?lualatex
# when to set input encoding to 'ascii'?
- #$inputEncoding = {
- # "search" => 'auto|default', # this will be substituted from '\inputencoding'-line
- # "out" => "ascii",
- #};
+ if (defined($encoding{$lang})) {
+ $inputEncoding = {
+ "search" => 'auto|default', # this will be substituted from '\inputencoding'-line
+ "out" => $encoding{$lang},
+ };
+ }
}
}
}
return($resultf);
}
+
+sub getlangs($$)
+{
+ my ($languagefile, $rencoding) = @_;
+
+ if (open(FI, $languagefile)) {
+ while (my $l = <FI>) {
+ if ($l =~ /^Language/) {
+ my ($lng, $enc) = &getLangEntry();
+ if (defined($lng)) {
+ my @tag = split('_', $lng);
+ if ($tag[0] eq lc($tag[1])) {
+ $lng = $tag[0];
+ }
+ if (! defined($rencoding->{$lng})) {
+ $rencoding->{$lng} = $enc;
+ }
+ }
+ }
+ }
+ close(FI);
+ }
+}
+
+sub getLangEntry()
+{
+ my ($lng, $enc) = (undef, undef);
+ while (my $l = <FI>) {
+ chomp($l);
+ if ($l =~ /^\s*Encoding\s+([^ ]+)\s*$/) {
+ $enc = $1;
+ }
+ elsif ($l =~ /^\s*LangCode\s+([^ ]+)\s*$/) {
+ $lng = $1;
+ }
+ elsif ($l =~ /^\s*End\s*$/) {
+ last;
+ }
+ }
+ if (defined($lng) && defined($enc)) {
+ return($lng, $enc);
+ }
+ else {
+ return(undef, undef);
+ }
+}