Экспорт комментариев как комментариев - PullRequest
5 голосов
/ 26 марта 2012

В режиме Org вы можете делать комментарии, а из режима Org вы можете экспортировать в LaTeX, но комментарии в режиме Org не экспортируются в комментарии LaTeX.Как сделать режим Org для экспорта комментариев режима Org в качестве комментариев LaTeX?

Вот пример.Следующий

* Test

Text before comment
# Comment
Text after comment

Text before comment
#+BEGIN_COMMENT
Comment
#+END_COMMENT
Text after comment

экспортирует в

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


Text before comment
Text after comment

Text before comment

Text after comment

Но я хочу, чтобы комментарии в режиме Org экспортировались как комментарии LaTeX.Таким образом, я хочу следующий вывод LaTeX:

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


Text before comment
% Comment
Text after comment

Text before comment
\begin{comment}
Comment
\end{comment}
Text after comment

Я использую Org-mode 7.6 в Emacs 23.3.1.

Ответы [ 2 ]

5 голосов
/ 27 марта 2012

Под текущим экспортером единственный метод, который я могу придумать, позволил бы вам экспортировать комментарии, специфичные для бэкэнда. Вы можете использовать что-то вроде:

#+latex: comment

или

#+begin_latex
\begin{comment}
  comment
\end{comment}
#+end_latex

Однако оба они придуманы, и вам нужно будет сделать эквивалент для HTML и т. Д., Если вы собираетесь экспортировать в более чем один формат.

В разработке находится новый экспортер , однако это не должно быть слишком сложно для реализации (комментарии уже определены как блоки в синтаксическом анализаторе, поэтому просто потребуется метод для преобразования их при экспорте).

Я пересылаю этот запрос в список рассылки, чтобы узнать, можно ли его включить.
Редактировать: Тема расположена здесь .

Редактировать: Ответ от сопровождающего Org-Mode

нынешние экспортеры не позволяют этого, но новый механизм экспорта Николя делает это возможным.

План состоит в том, чтобы объединить новый механизм экспорта в ядро ​​Org до версия 8.0, так что следите за обновлениями.

3 голосов
/ 27 марта 2012

В дополнение к ответу Джонатана Лича-Пепина, существует хакерский способ сделать это для заданного бэкэнда экспортера. Комментарии обрабатываются в функции org-export-handle-comments, которая вызывается org-export-preprocess-string в org-exp.el. Каждый бэкэнд-экспортер отличается, но давайте рассмотрим бэкэнд LaTeX.

Если вы посмотрите на функцию org-export-as-latex в org-latex.el, вы сможете найти вызовы на org-export-preprocess-string. Одной из вещей, передаваемых в функцию org-export-preprocess-string, является список параметров, в частности, он содержит параметр :comments, который в случае LaTeX установлен на nil. Этот параметр сообщает экспортеру org-mode, что делать с комментариями - подробнее смотрите в вызове и реализации org-export-handle-comments в org-exp.el. По сути, параметр :comments может быть строкой формата, показывающей, как обрабатывать комментарии; если это nil, это означает отсутствие обработки формата, поэтому ничего не печатается. Если в функции org-export-as-latex вы замените :comments nil на :comments "%% %s", то это вставит «%» перед тем, какой текст комментария будет при экспорте. Так что в вашем случае

this is text before a comment
# this is a comment
this is text after a comment

будет экспортировано как

this is text before a comment
% this is a comment
this is text after a comment

Это не самый удобный способ работы, и я не уверен, что можно указать параметр :comments для каждого файла отдельно. Может быть, что-то в теме, созданной Джонатаном, поможет пролить свет на эту тему.

Обратите внимание, что вам может потребоваться удалить скомпилированный байтами файл org-latex.elc, чтобы увидеть, как ваши изменения в org-latex.el распространяются на экспорт.

...