From mboxrd@z Thu Jan 1 00:00:00 1970 From: tsd@tsdye.com (Thomas S. Dye) Subject: Re: LaTex export: How to use `csquotes' and `\enquote{}' Date: Thu, 07 Jul 2011 12:07:43 -1000 Message-ID: References: <6663.1309983647@alphaville.americas.hpqcorp.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([140.186.70.92]:47657) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qewjm-0001CV-RV for emacs-orgmode@gnu.org; Thu, 07 Jul 2011 18:08:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qewjl-0005OU-I6 for emacs-orgmode@gnu.org; Thu, 07 Jul 2011 18:07:58 -0400 Received: from oproxy8-pub.bluehost.com ([69.89.22.20]:50666) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1Qewjl-0005OO-AL for emacs-orgmode@gnu.org; Thu, 07 Jul 2011 18:07:57 -0400 In-Reply-To: (Frederik's message of "Thu, 07 Jul 2011 21:11:14 +0200") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Frederik Cc: emacs-orgmode@gnu.org Frederik writes: > Am 06.07.2011 22:20, schrieb Nick Dokos: >> The problem is the usual exponential growth of possibilities and how you >> manage them: if you read the babel manual and the csquotes manual and all >> the options that you can have, your head starts spinning (well, *my* head >> starts spinning). I tend to think of all the possibilities and despair >> over covering them all, whereas org-mode tends to make simplifying >> assumptions that will cover>90% of the cases (if the simplifying >> assumptions are good ones). I think we need such an assumption here. >> >> Here are some points to keep in mind while working on a patch: >> >> o csquotes.sty is part of the texlive-latex-extra package on Ubuntu (and >> probably something similar on other Linux distros and possibly MacOS = X - >> hunoz about Windoz?) > In the Windows-world MikTeX is quite common, as far as I know. I use > MikTeX on Windows and it installs packages one includes directly from > the net if they aren't already installed. > > IMHO the csquotes package becomes more and more important. For example > biblatex, which will become the successor of BibTeX, relies on > csquotes, when using a language other than English. > >> o the (LaTeX) babel package and csquotes have their own (different) >> conventions for specifying languages and dialects. In some cases, a >> single language can have multiple options for how to quote things. >> The proposal below explicitly does *not* deal with these complication= s. >> >> My initial reaction to how one would use csquotes was to use the +OPTIONS >> line, something like this: >> >> #+OPTIONS: enquote:t language:fr >> >> The language option would trigger the inclusion of the babel package with >> the (correct) language option (e.g. "en" -> "english", "de" -> "ngerma= n", >> "fr" -> "french", etc.) >> >> The enquote part would trigger 1) the inclusion of the csquotes package = (and >> since you specify it explicitly, it is your responsibility to make sure >> that it be installed on your system) and 2) the translation of "foo" to >> \enquote{foo}. Without it, "foo" goes to ``foo'' no matter what the lang= uage >> is set to. >> > > Why not use one option for babel and another for csquotes? I thought > of something like this: > > #+OPTIONS: babel:english,ngerman csquotes:autostyle,german=3Dguillemets > > Or is there any other reason why one would like to specify language optio= ns? > > Sadly I don't have the skills to suggest a patch... > > I definitely see Nick's point: simplicity is one of the most important > features of org-mode. So a possible decision not to support csquotes > is absolutely understandable. > > Regards Aloha all, I'm wondering if a simpler solution than Nick's might be to replace the lists at the end of this code snippet with a variable, say org-export-latex-quote-mechanism. Initially, the variable would be set to the second list. If the user wanted something different, then the user would be responsible for setting the variable to the different quoting mechanism, whether it be \enquote{ or something else. The user would also be responsible for making sure the LaTeX packages needed to support the quoting mechanism were loaded and functional. (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-\\)\"" "=C2=AB~") ("\\(\\S-\\)\"" "~=C2=BB") ("\\(\\s-\\)'" "`")) '(("\\(\\s-\\|[[(]\\)\"" "``") ("\\(\\S-\\)\"" "''") ("\\(\\s-\\|(\\)'" "`"))))) This might provide Org-mode the flexibility needed to support csquotes, but also leave open the possibility of supporting other packages, as well. Any thoughts? All the best, Tom --=20 Thomas S. Dye http://www.tsdye.com