version 1.497.2.4, 2011/12/14 11:56:08
|
version 1.497.2.6, 2011/12/27 19:48:31
|
Line 61 use Apache::lonlocal;
|
Line 61 use Apache::lonlocal;
|
use Apache::lonxml; |
use Apache::lonxml; |
use Apache::londefdef; |
use Apache::londefdef; |
use Apache::lonenc(); |
use Apache::lonenc(); |
|
use Apache::loncommon(); |
use Time::HiRes qw( gettimeofday tv_interval ); |
use Time::HiRes qw( gettimeofday tv_interval ); |
use lib '/home/httpd/lib/perl/'; |
use lib '/home/httpd/lib/perl/'; |
use LONCAPA; |
use LONCAPA; |
Line 96 my %languages_required;
|
Line 97 my %languages_required;
|
sub select_hyphenation { |
sub select_hyphenation { |
my $language = shift; |
my $language = shift; |
|
|
$language = &Apache::loncommon::latex_language($language); # Translate -> latex language. |
$language = &Apache::loncommon::latexlanguage($language); # Translate -> latex language. |
|
|
# If there is no latex language there's not much we can do: |
# If there is no latex language there's not much we can do: |
|
|
if ($language) { |
if ($language) { |
&require_language($language); |
&require_language($language); |
my $babel_hyphenation = "\\select_language{$language}"; |
my $babel_hyphenation = "\\selectlanguage{$language}"; |
|
|
return $babel_hyphenation; |
return $babel_hyphenation; |
} else { |
} else { |
Line 110 sub select_hyphenation {
|
Line 111 sub select_hyphenation {
|
} |
} |
} |
} |
## |
## |
|
# Selects hyphenation based on the current problem metadata. |
|
# This requires that |
|
# - There is a language metadata item set for the problem. |
|
# - The language has a latex/babel hyphenation. |
|
# |
|
# @note: Uses &Apache::lonxml::request to locate the Uri associated with |
|
# this problem. |
|
# @return string (possibly empty). |
|
# @retval If not empty an appropriate \selectlanguage{} directive. |
|
# |
|
sub select_metadata_hyphenation { |
|
my $uri = $Apache::lonxml::request->uri; |
|
my $language = &Apache::lonnet::metadata($uri, 'language'); |
|
my $latex_language = &Apache::loncommon::latexhyphenation($language); |
|
if ($latex_language) { |
|
return '\selectlanguage{'.$latex_language."}\n"; |
|
} |
|
return ''; # no latex hyphenation or no lang metadata. |
|
} |
|
|
|
|
|
## |
# Clears the set of languages required by the document being rendered. |
# Clears the set of languages required by the document being rendered. |
# |
# |
sub clear_required_languages { |
sub clear_required_languages { |
Line 122 sub clear_required_languages {
|
Line 145 sub clear_required_languages {
|
# |
# |
sub require_language { |
sub require_language { |
my $language = shift; |
my $language = shift; |
|
|
$languages_required{$language} = 1; |
$languages_required{$language} = 1; |
} |
} |
|
|
Line 133 sub require_language {
|
Line 155 sub require_language {
|
# @retval \usepackage[lang1,lang2...]{babel} |
# @retval \usepackage[lang1,lang2...]{babel} |
# @retval '' if there are no languages_required. |
# @retval '' if there are no languages_required. |
sub languages_header { |
sub languages_header { |
|
|
my $header =''; |
my $header =''; |
my @languages = keys(%languages_required); |
my @languages = (keys(%languages_required)); |
|
|
# Only generate the header if there are languages: |
# Only generate the header if there are languages: |
|
|
Line 143 sub languages_header {
|
Line 164 sub languages_header {
|
my $language_list = join(',', (@languages)); |
my $language_list = join(',', (@languages)); |
$header = '\usepackage['.$language_list."]{babel}\n"; |
$header = '\usepackage['.$language_list."]{babel}\n"; |
} |
} |
|
|
return $header; |
return $header; |
} |
} |
|
|
Line 1289 sub start_problem {
|
Line 1309 sub start_problem {
|
} |
} |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$result .= 'INSERTTEXFRONTMATTERHERE'; |
$result .= 'INSERTTEXFRONTMATTERHERE'; |
|
$result .= &select_metadata_hyphenation(); |
|
|
|
|
} |
} |
} elsif ($target eq 'edit') { |
} elsif ($target eq 'edit') { |
Line 1345 sub end_problem {
|
Line 1367 sub end_problem {
|
} |
} |
my $name_of_resourse= &Apache::lonxml::latex_special_symbols(&get_resource_name($parstack,$safeeval),'header'); |
my $name_of_resourse= &Apache::lonxml::latex_special_symbols(&get_resource_name($parstack,$safeeval),'header'); |
my $begin_doc=' \typeout{STAMPOFPASSEDRESOURCESTART Resource <h2>"'.$name_of_resourse.'"</h2> located in <br /><small><b>'.$env{'request.uri'}.'</b></small><br /> STAMPOFPASSEDRESOURCEEND} \noindent '; |
my $begin_doc=' \typeout{STAMPOFPASSEDRESOURCESTART Resource <h2>"'.$name_of_resourse.'"</h2> located in <br /><small><b>'.$env{'request.uri'}.'</b></small><br /> STAMPOFPASSEDRESOURCEEND} \noindent '; |
|
&clear_required_languages(); |
my $toc_line='\vskip 1 mm\noindent '.$startminipage. |
my $toc_line='\vskip 1 mm\noindent '.$startminipage. |
'\addcontentsline{toc}{subsection}{'.$name_of_resourse.'}'; |
'\addcontentsline{toc}{subsection}{'.$name_of_resourse.'}'; |
|
|
Line 1801 sub end_languageblock {
|
Line 1824 sub end_languageblock {
|
$result = &select_hyphenation($which); |
$result = &select_hyphenation($which); |
} |
} |
$result .= $available_texts{$which}; |
$result .= $available_texts{$which}; |
|
$result .= &select_metadata_hyphenation(); # Restore original language. |
} |
} |
undef(%available_texts); |
undef(%available_texts); |
&Apache::lonxml::deregister('Apache::structuretags',('lang')); |
&Apache::lonxml::deregister('Apache::structuretags',('lang')); |