[O] [PATCH] org-latex.el: New defcustom `org-export-latex-quotes' to control quotes.

2011-07-11 Thread Bastien
From 08c8be7e0403f58a16670a84dbd66d7dd34c7b43 Mon Sep 17 00:00:00 2001
From: Bastien Guerry b...@altern.org
Date: Mon, 11 Jul 2011 15:10:00 +0200
Subject: [PATCH] org-latex.el: New defcustom `org-export-latex-quotes' to
 control quotes.

* org-latex.el (org-export-latex-quotes): New defcustom.
(org-export-latex-quotation-marks): Use it.

This allows users to define what quotes they want to use as a
replacement of english double-quotes while exporting to LaTeX.

In particular, if you use the csquote package, you can configure
Org to output something like \endquote{some quoted text} instead
of some quoted text.

Thanks to Frederik for bringing this issue up, and to Thomas S.
Dye, Nick Dokos and Stefan Nobis for elaborating this solution.
---
 lisp/org-latex.el |   53 ++---
 1 files changed, 38 insertions(+), 15 deletions(-)

diff --git a/lisp/org-latex.el b/lisp/org-latex.el
index e1c85ce..34ceca9 100644
--- a/lisp/org-latex.el
+++ b/lisp/org-latex.el
@@ -321,6 +321,32 @@ will be filled with the link, the second with its description.
   :group 'org-export-latex
   :type 'string)
 
+(defcustom org-export-latex-quotes
+  '((fr (\\(\\s-\\|[[(]\\)\ . «~) (\\(\\S-\\)\ . ~») (\\(\\s-\\|(\\)' . '))
+(en (\\(\\s-\\|[[(]\\)\ . ``) (\\(\\S-\\)\ . '') (\\(\\s-\\|(\\)' . `)))
+  Alist for quotes to use when converting english double-quotes.
+
+The CAR of each item in this alist is the language code.
+The CDR of each item in this alist is a list of three CONS:
+- the first CONS defines the opening quote;
+- the second CONS defines the closing quote;
+- the last CONS defines single quotes.
+
+For each item in a CONS, the first string is a regexp
+for allowed characters before/after the quote, the second
+string defines the replacement string for this quote.
+  :group 'org-export-latex
+  :type '(list
+	  (cons :tag Opening quote
+		(string :tag Regexp for char before) 
+		(string :tag Replacement quote ))
+	  (cons :tag Closing quote
+		(string :tag Regexp for char after ) 
+		(string :tag Replacement quote ))
+	  (cons :tag Single quote
+		(string :tag Regexp for char before) 
+		(string :tag Replacement quote 
+
 (defcustom org-export-latex-tables-verbatim nil
   When non-nil, tables are exported verbatim.
   :group 'org-export-latex
@@ -1624,21 +1650,18 @@ links, keywords, lists, tables, fixed-width
 
 (defun org-export-latex-quotation-marks ()
   Export quotation marks depending on language conventions.
-  (let* ((lang (plist-get org-export-latex-options-plist :language))
-	 (quote-rpl (if (equal lang fr)
-			'((\\(\\s-\\)\ «~)
-			  (\\(\\S-\\)\ ~»)
-			  (\\(\\s-\\)' `))
-		  '((\\(\\s-\\|[[(]\\)\ ``)
-			(\\(\\S-\\)\ '')
-			(\\(\\s-\\|(\\)' `)
-(mapc (lambda(l) (goto-char (point-min))
-	(while (re-search-forward (car l) nil t)
-	  (let ((rpl (concat (match-string 1)
- (org-export-latex-protect-string
-  (copy-sequence (cadr l))
-		(org-if-unprotected-1
-		 (replace-match rpl t t) quote-rpl)))
+  (mapc (lambda(l)
+	  (goto-char (point-min))
+	  (while (re-search-forward (car l) nil t)
+	(let ((rpl (concat (match-string 1)
+			   (org-export-latex-protect-string
+(copy-sequence (cdr l))
+	  (org-if-unprotected-1
+	   (replace-match rpl t t) 
+	(cdr (or (assoc (plist-get org-export-latex-options-plist :language)
+			org-export-latex-quotes)
+		 ;; falls back on english
+		 (assoc en org-export-latex-quotes)
 
 (defun org-export-latex-special-chars (sub-superscript)
   Export special characters to LaTeX.
-- 
1.7.5.2


-- 
 Bastien


Re: [O] [PATCH] org-latex.el: New defcustom `org-export-latex-quotes' to control quotes.

2011-07-11 Thread Stefan Nobis
Bastien b...@altern.org writes:

 Org to output something like \endquote{some quoted text} instead

s/endquote/enquote/

-- 
Until the next mail...,
Stefan.


pgpzl49iatYmp.pgp
Description: PGP signature