Как я могу использовать csquotes с экспортом LaTeX в режиме Org? - PullRequest
3 голосов
/ 29 января 2012

При использовании csquotes кавычки добавляются csquotes в соответствии с контекстом.Это делается путем разметки цитаты с помощью макроса \enquote, то есть как \enquote{text}.

. При экспорте в LaTeX из режима Org кавычки помечаются как `` и '', например как``text''.

Может ли экспорт в режиме Org в LaTeX с цитатами, помеченными \enquote?

Я нашел http://comments.gmane.org/gmane.emacs.orgmode/43689, где планируется такая функция, но я делаюне понимаю, было ли это реализовано.


В связанной заметке есть интеграция csquotes в AUCTeX .Интеграция состоит в том, что когда документ загружает csquotes, тогда " расширяется до \enquote{ и } соответственно. Это не то, о чем я прошу, но могут быть кусочки кода, которые могут быть заинтересованы в настройкеup Org-mode для экспорта котировок, помеченных \enquote.

Ответы [ 2 ]

4 голосов
/ 12 октября 2013

@N.N. и другие, новая функция экспорта в режиме org в org 8.0 имеет список с именем org-export-smart-quotes-alist. Вы можете добавить следующее в свой init.el, и оно превратит обычные " двойные кавычки в enquote{}, а ' одинарные кавычки в enquote*{}.

(add-to-list 'org-export-smart-quotes-alist 
             '("am"
               (primary-opening   :utf-8 "“" :html "“" :latex "\\enquote{"  :texinfo "``")
               (primary-closing   :utf-8 "”" :html "”" :latex "}"           :texinfo "''")
               (secondary-opening :utf-8 "‘" :html "‘" :latex "\\enquote*{" :texinfo "`")
               (secondary-closing :utf-8 "’" :html "’" :latex "}"           :texinfo "'")
               (apostrophe        :utf-8 "’" :html "’")))

Слово предупреждения: если вы хотите, чтобы это работало на языке вашего файла org, убедитесь, что у вас либо org-export-default-language установлено на "am" (или что вы выберете для использования в приведенной выше форме), или вы положили соответствующая строка #+LANGUAGE: am вверху вашего файла org. Если вы этого не сделаете, экспортер org не сможет вызвать вышеуказанное.

4 голосов
/ 29 января 2012

После завершения этого потока и просмотра журнала изменений для выпуска 7.7 ​​(см. Заголовок версии 7.7 ) я обнаружил, что они добавили переменную org-latex-export-quotes. Я не совсем уверен, как это должно быть настроено, но я подозреваю, что это должно было бы привести к чему-то следующему:

Оригинал (включен, поскольку он появляется только в 7.7, и я полагаю, что вы используете 7.6):

(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."

Кому:

(setq org-export-latex-quotes
  '(("en" ("\\(\\s-\\|[[(]\\)\"" . "\\enquote{") ("\\(\\S-\\)\"" . "}") ("\\(\\s-\\|(\\)'" . "`"))))

Я только что проверил это, и оно работает как ожидалось. Пример файла:

* test
this is a test of "this"

экспорт как (преамбула опущена):

\section{test}
\label{sec-1}

this is a test of \enquote{this}

Я не знаю, возможно ли легко добавить эту функцию в 7.6, более простым решением, вероятно, будет обновление. В противном случае более простым решением в 7.6, вероятно, будет создание пользовательской ссылки (см .: Org Tutorials ). Это будет не так быстро, но даст желаемые результаты в рамках функций, предоставляемых 7.6.

...