| 
					
				 | 
			
			
				@@ -172,144 +172,111 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;; Internal Variables 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(defconst org-latex-babel-language-alist 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  '(("af" . "afrikaans") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("bg" . "bulgarian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("ca" . "catalan") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("cs" . "czech") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("cy" . "welsh") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("da" . "danish") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("de" . "germanb") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("de-at" . "naustrian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("de-de" . "ngerman") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("el" . "greek") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("en" . "english") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("en-au" . "australian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("en-ca" . "canadian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("en-gb" . "british") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("en-ie" . "irish") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("en-nz" . "newzealand") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("en-us" . "american") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("es" . "spanish") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("et" . "estonian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("eu" . "basque") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("fi" . "finnish") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("fr" . "french") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("fr-ca" . "canadien") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("gl" . "galician") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("hr" . "croatian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("hu" . "hungarian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("id" . "indonesian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("is" . "icelandic") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("it" . "italian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("la" . "latin") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("ms" . "malay") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("nl" . "dutch") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("nb" . "norsk") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("nn" . "nynorsk") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("no" . "norsk") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("pl" . "polish") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("pt" . "portuguese") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("pt-br" . "brazilian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("ro" . "romanian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("ru" . "russian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("sa" . "sanskrit") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("sb" . "uppersorbian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("sk" . "slovak") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("sl" . "slovene") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("sq" . "albanian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("sr" . "serbian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("sv" . "swedish") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("ta" . "tamil") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("tr" . "turkish") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("uk" . "ukrainian")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  "Alist between language code and corresponding Babel option.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(defconst org-latex-polyglossia-language-alist 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  '(("am" "amharic") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defconst org-latex-language-alist 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ;; TODO: replace this list with a property list (the actual 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ;; implementation is not very robust). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  '(("am" "amharic" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("ar" "arabic") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("ast" "asturian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("ast" "asturian" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("bg" "bulgarian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("bn" "bengali") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("bo" "tibetan") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("bn" "bengali" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("bo" "tibetan" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("br" "breton") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("ca" "catalan") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("cop" "coptic") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("cop" "coptic" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("cs" "czech") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("cy" "welsh") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("da" "danish") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("de" "german" "german") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("de-at" "german" "austrian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("de-de" "german" "german") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("dsb" "lsorbian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("dv" "divehi") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("de" "ngerman" "german" "german") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("de-at" "naustrian" "german" "austrian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("dsb" "lsorbian" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("dv" "divehi" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("el" "greek") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("en" "english" "usmax") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("en-au" "english" "australian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("en-gb" "english" "uk") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("en-nz" "english" "newzealand") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("en-us" "english" "usmax") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("el-polyton" "polutonikogreek" "greek" "polytonic") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("en" "american" "english" "usmax") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("en-au" "australian" "english" "australian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("en-gb" "british" "english" "uk") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("en-nz" "newzealand" "english" "newzealand") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("en-us" "american" "english" "usmax") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("eo" "esperanto") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("es" "spanish") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("es-mx" "spanishmx" "spanish" "mexican") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("et" "estonian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("eu" "basque") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("fa" "farsi") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("fi" "finnish") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("fr" "french") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("fu" "friulan") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("fr-ca" "canadien" "french" "canadian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("fur" "friulan") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("ga" "irish") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("gd" "scottish") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("gl" "galician") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("he" "hebrew") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("hi" "hindi") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("hr" "croatian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("hsb" "usorbian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("hsb" "uppersorbian" "sorbian" "upper") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("hu" "magyar") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("hy" "armenian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("hy" "armenian" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("ia" "interlingua") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("id" "bahasai") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("id" "bahasai" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("is" "icelandic") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("it" "italian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("kn" "kannada") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("la" "latin" "modern") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("la-classic" "latin" "classic") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("la-medieval" "latin" "medieval") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("la-modern" "latin" "modern") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("lo" "lao") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("kn" "kannada" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("la" "latin") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("la-classic" "classiclatin" "latin" "classic") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("la-medieval" "medievallatin" "latin" "medieval") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("la-ecclesiastic" "ecclesiasticlatin" "latin" "ecclesiastic") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("lo" "lao" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("lt" "lithuanian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("lv" "latvian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("ml" "malayalam") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("mr" "maranthi") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("nb" "norsk") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("nko" "nko") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("ml" "malayalam" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("mr" "maranthi" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("nb" "norsk" "norwegian" "bokmal") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("nl" "dutch") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("nn" "nynorsk") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("nn" "nynorsk" "norwegian" "nynorsk") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("no" "norsk") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("oc" "occitan") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("pl" "polish") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("pms" "piedmontese") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("pt" "portuges") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("pt-br" "brazilian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("rm" "romansh") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("rm" "romansh" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("ro" "romanian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("ru" "russian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("sa" "sanskrit") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("se" "samin") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("sa" "sanskrit" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("sk" "slovak") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("sl" "slovenian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("sl" "slovene") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("sq" "albanian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("sr" "serbian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("sv" "swedish") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("syr" "syriac") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("ta" "tamil") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("te" "telugu") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("syr" "syriac" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("ta" "tamil" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("te" "telugu" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("th" "thai") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("tk" "turkmen") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("tr" "turkish") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("uk" "ukrainian") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ("ur" "urdu") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ("ur" "urdu" "*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ("vi" "vietnamese")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  "Alist between language code and corresponding Polyglossia option.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Alist between language code and corresponding Babel/Polyglossia option. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+For the names of the languages, the Babel nomenclature is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+preferred to that of Polyglossia, in those cases where both 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+coincide. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+The alist supports three types of members: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- Members with two elements: CODE BABEL/POLYGLOSSIA OPTION. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- Members with three elements: CODE BABEL/POLYGLOSSIA OPTION 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ASTERISK (the presence of the asterisk indicates that this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+language is not loaded in Babel using the old method of ldf 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+files but using ini files.  If Babel is loaded in an Org 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+document with these languages, the \"AUTO \" argument is just 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+removed, to avoid compilation errors). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- Members with four elements (for variants of languages): CODE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+BABEL-OPTION POLYGLOSSIA-OPTION POLYGLOSSIA-VARIANT") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defconst org-latex-table-matrix-macros '(("bordermatrix" . "\\cr") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					  ("qbordermatrix" . "\\cr") 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1644,31 +1611,54 @@ Insertion of guessed language only happens when Babel package has 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 explicitly been loaded.  Then it is added to the rest of 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package's options. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-The argument to Babel may be \"AUTO\" which is then replaced with 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-the language of the document or `org-export-default-language' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-unless language in question is already loaded. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+The optional argument to Babel or the mandatory argument to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+`\babelprovide' command may be \"AUTO\" which is then replaced 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+with the language of the document or 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+`org-export-default-language' unless language in question is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+already loaded. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Return the new header." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (let ((language-code (plist-get info :language))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ;; If no language is set or Babel package is not loaded, return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ;; HEADER as-is. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (if (or (not (stringp language-code)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (not (string-match "\\\\usepackage\\[\\(.*\\)\\]{babel}" header))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let* ((language-code (plist-get info :language)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (language (nth 1 (assoc language-code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				 org-latex-language-alist))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 ;; If no language is set or Babel package is not loaded, return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 	 ;; HEADER as-is. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (header (if (or (not (stringp language-code)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 (not (string-match "\\\\usepackage\\[\\(.*\\)\\]{babel}" header))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		     header 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		   (let ((options (save-match-data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				    (org-split-string (match-string 1 header) ",[ \t]*")))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		     ;; If LANGUAGE is already loaded, return header 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		     ;; without AUTO.  Otherwise, replace AUTO with language or 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		     ;; append language if AUTO is not present.  Languages that are 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		     ;; served in Babel exclusively through ini files are not added 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		     ;; to the babel argument, and must be loaded using 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		     ;; `\babelprovide'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		     (let ((l (assoc language-code org-latex-language-alist))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       ;; Three elements imply that LANGUAGE is served 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       ;; in Babel only by means of an ini file. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       ;; Therefore it will not be added to the Babel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       ;; argument.  TODO: this should be improved 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       ;; when `org-latex-language-alist' is replaced 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       ;; by a more robust list. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		       (if (and (consp l) (= (length l) 3)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                           header 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 (replace-match 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			  (mapconcat (lambda (option) (if (equal "AUTO" option) language option)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				     (cond ((member language options) (delete "AUTO" options)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					   ((member "AUTO" options) options) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					   (t (append options (list language)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				     ", ") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			  t nil header 1))))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ;; If `\babelprovide[args]{AUTO}' is present, AUTO is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ;; replaced by LANGUAGE. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (if (not (string-match "\\\\babelprovide\\[.*\\]{\\(.+\\)}" header)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	header 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (let ((options (save-match-data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		       (org-split-string (match-string 1 header) ",[ \t]*"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (language (cdr (assoc-string language-code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					 org-latex-babel-language-alist t)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	;; If LANGUAGE is already loaded, return header without AUTO. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	;; Otherwise, replace AUTO with language or append language if 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	;; AUTO is not present. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(replace-match 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (mapconcat (lambda (option) (if (equal "AUTO" option) language option)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    (cond ((member language options) (delete "AUTO" options)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			  ((member "AUTO" options) options) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			  (t (append options (list language)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    ", ") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 t nil header 1))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (let ((prov (match-string 1 header))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(when (equal "AUTO" prov) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (replace-regexp-in-string (format 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				     "\\(\\\\babelprovide\\[.*\\]\\)\\({\\)%s}" prov) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				    (format "\\1\\2%s}" language) header t)))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-latex-guess-polyglossia-language (header info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Set the Polyglossia language according to the LANGUAGE keyword. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1690,8 +1680,8 @@ Return the new header." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ;; HEADER as-is. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (if (or (not (stringp language)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (not (string-match 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  "\\\\usepackage\\(?:\\[\\([^]]+?\\)\\]\\){polyglossia}\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  header))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		"\\\\usepackage\\(?:\\[\\([^]]+?\\)\\]\\){polyglossia}\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		header))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	header 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (let* ((options (org-string-nw-p (match-string 1 header))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	     (languages (and options 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1710,15 +1700,23 @@ Return the new header." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 (concat "\\usepackage{polyglossia}\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 (mapconcat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		  (lambda (l) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    (let ((l (or (assoc l org-latex-polyglossia-language-alist) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    (let ((l (or (assoc l org-latex-language-alist) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				 l))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		      (format (if main-language-set "\\setotherlanguage%s{%s}\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				(setq main-language-set t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				"\\setmainlanguage%s{%s}\n") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			      (if (and (consp l) (= (length l) 3)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				  (format "[variant=%s]" (nth 2 l)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              ;; Four elements implies that there is a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              ;; variant (4) for LANGUAGE when 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              ;; declared by Polyglossia (3). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              ;; FIXME: This should be improved when 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              ;; `org-latex-language-alist' is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              ;; replaced by a more robust list. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              (if (and (consp l) (= (length l) 4)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				  (format "[variant=%s]" (nth 3 l)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				"") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			      (nth 1 l)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			      (if (and (consp l) (= (length l) 4)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				  (nth 2 l) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				(nth 1 l))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		  languages 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		  "")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 t t header 0))))) 
			 |