| 
					
				 | 
			
			
				@@ -4627,53 +4627,74 @@ OBJECT is either a `table-cell' or `table-element' type object." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		(not (eq (org-element-type parent) 'table)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     parent)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(defun org-export-get-previous-element (blob info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-export-get-previous-element (blob info &optional n) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Return previous element or object. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 BLOB is an element or object.  INFO is a plist used as 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 a communication channel.  Return previous exportable element or 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-object, a string, or nil." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (let (prev) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+object, a string, or nil. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+When optional argument N is a positive integer, return a list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+containing up to N siblings before BLOB, from closest to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+farthest." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (when (and n (not (wholenump n))) (setq n nil)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let ((siblings 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 ;; An object can belong to the contents of its parent or 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 ;; to a secondary string.  We check the latter option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 ;; first. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (let ((parent (org-export-get-parent blob))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   (or (and (not (memq (org-element-type blob) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			       org-element-all-elements)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    (let ((sec-value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			   (org-element-property 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			    (cdr (assq (org-element-type parent) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				       org-element-secondary-value-alist)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			    parent))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      (and (memq blob sec-value) sec-value))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	       (org-element-contents parent)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	prev) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (catch 'exit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (mapc (lambda (obj) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (cond ((eq obj blob) (throw 'exit prev)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    ((memq obj (plist-get info :ignore-list))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    (t (setq prev obj)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    ;; An object can belong to the contents of its parent or 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    ;; to a secondary string.  We check the latter option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    ;; first. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (let ((parent (org-export-get-parent blob))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (or (and (not (memq (org-element-type blob) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				  org-element-all-elements)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		       (let ((sec-value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			      (org-element-property 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			       (cdr (assq (org-element-type parent) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					  org-element-secondary-value-alist)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			       parent))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 (and (memq blob sec-value) sec-value))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  (org-element-contents parent))))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(defun org-export-get-next-element (blob info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (cond ((memq obj (plist-get info :ignore-list))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    ((null n) (throw 'exit obj)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    ((zerop n) (throw 'exit (nreverse prev))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    (t (decf n) (push obj prev)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (cdr (memq blob (reverse siblings)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (nreverse prev)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-export-get-next-element (blob info &optional n) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Return next element or object. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 BLOB is an element or object.  INFO is a plist used as 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 a communication channel.  Return next exportable element or 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-object, a string, or nil." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (catch 'found 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (mapc (lambda (obj) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (unless (memq obj (plist-get info :ignore-list)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (throw 'found obj))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  ;; An object can belong to the contents of its parent or to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  ;; a secondary string.  We check the latter option first. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (let ((parent (org-export-get-parent blob))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (or (and (not (memq (org-element-type blob) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				org-element-all-objects)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		     (let ((sec-value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			    (org-element-property 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			     (cdr (assq (org-element-type parent) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					org-element-secondary-value-alist)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			     parent))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		       (cdr (memq blob sec-value)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		(cdr (memq blob (org-element-contents parent)))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    nil)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+object, a string, or nil. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+When optional argument N is a positive integer, return a list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+containing up to N siblings after BLOB, from closest to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+farthest." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (when (and n (not (wholenump n))) (setq n nil)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let ((siblings 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 ;; An object can belong to the contents of its parent or to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 ;; a secondary string.  We check the latter option first. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (let ((parent (org-export-get-parent blob))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   (or (and (not (memq (org-element-type blob) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			       org-element-all-objects)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    (let ((sec-value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			   (org-element-property 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			    (cdr (assq (org-element-type parent) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				       org-element-secondary-value-alist)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			    parent))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      (cdr (memq blob sec-value)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	       (cdr (memq blob (org-element-contents parent)))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	next) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (catch 'exit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (mapc (lambda (obj) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (cond ((memq obj (plist-get info :ignore-list))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    ((null n) (throw 'exit obj)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    ((zerop n) (throw 'exit (nreverse next))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    (t (decf n) (push obj next)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    siblings) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (nreverse next)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;;; Translation 
			 |