#emacs #latex #org-mode
#emacs #Латекс #org-режим
Вопрос:
Я нашел, как делать параллельные рисунки для экспорта в latex, как описано здесь: http://permalink.gmane.org/gmane.emacs.orgmode/52978
Но проблема в том, что когда я пытаюсь прикрепить # ЗАГОЛОВОК или # NAME / # LABEL, вывод искажается, поскольку заголовок перемещается по нескольким строкам, а также по изображениям.
# CAPTION: Some desription.
# LABEL: mylabel
# ATTR_LATEX: width=5cm
| [[./test.png]] | [[./test2.png]] |
Я попробовал тот же синтаксис с одной фигурой, и он работает нормально:
# CAPTION: Some desription.
# LABEL: mylabel
# ATTR_LATEX: width=5cm
[[./test.png]]
Кто-нибудь знает, как заставить это работать?
Ответ №1:
AFAICT, хак, описанный по ссылке выше (и мне разрешено называть его так, поскольку я придумал его в первую очередь :-)) работает в текущих версиях org (9.0.3 или около того) с некоторыми настройками:
- По умолчанию изображения центрируются (поэтому
includegraphics
они помещаются внутриcenter
среды), но это разбивает изображения на таблицы. В приведенном ниже примере я отключаю центрирование, используя привязку # , чтобы установитьorg-latex-images-centered
значение nil. - К таблице применяется # ATTR_LATEX (который, если я не ошибаюсь, должен выглядеть так в «современном» синтаксисе org:
# ATTR_LATEX: :width 5cm
), Поэтому изображения получают размер по умолчанию 0,9 linewidth, а с двумя из них это больше, чем ширина страницы. Итак, в приведенном ниже примере я использую другую привязку # для установки размера изображений по умолчанию, но я думаю, что есть ошибка: они установлены не на 5 см, как указано, а на их «естественный» размер. В любом случае, даже если это ошибка, на самом деле это не имеет отношения к вопросу.
Обратите внимание, что заголовок прикреплен к таблице, содержащей два изображения: возможно, есть способ прикрепить отдельные подписи к изображениям, но я не знаю наверняка.
При всем этом следующий файл примера работает для меня (и он также показывает способ получения единого центрированного изображения, даже если вы отключили глобальное центрирование, как я делаю с первой привязкой # ):
# BIND: org-latex-images-centered nil
# BIND: org-latex-image-default-width 5cm
* side by side figures in latex
# CAPTION: An image
# NAME: myimage
# ATTR_LATEX: :width 8cm :center t
[[./images/test1.png]]
# CAPTION: Some description
# NAME: mytable
| [[./images/test1.png]] | [[./images/test2.png]] |
РЕДАКТИРОВАТЬ: ошибки нет — я допустил ошибку в # BIND — она должна быть
# BIND: org-latex-image-default-width "5cm"
Кавычки необходимы!
Ответ №2:
Вместо того, чтобы помещать изображения в таблицу, я отцентрировал пару изображений, используя этот вопрос с сайта TeX на StackExchange.
Я создал прозрачный пиксель размером 1×1 на этом веб-сайте и сохранил его в файл с именем empty_fig.png
. Я сказал org-mode сделать его действительно крошечным # ATTR_LATEX: :height 0.0001in
. Затем я подписал этот рисунок прямо под парой, которую я не смог подписать.
# begin_center
# ATTR_LATEX: :height 0.4textwidth :center nil
[[file:Screenshot from 2019-04-30 18-25-36.png]]
# ATTR_LATEX: :height 0.4textwidth :center nil
[[file:Screenshot from 2019-04-30 18-25-46.png]]
# end_center
# CAPTION: Example frames
# LABEL: fig:video_pair
# ATTR_LATEX: :height 0.0001in
[[file:empty_fig.png]]
Я понимаю, что это халтурно, и при повторном перемещении страницы пара изображений отделяется от пустого изображения LaTeX
, но это будет другой мост для пересечения. Это альтернатива, которая не влечет BIND
за собой, т.е. Изменение внутренних переменных состояния org-mode.
Комментарии:
1. Это было единственное, что сработало для меня, чтобы создать видимость «фигуры» с подписью и 3 параллельными изображениями, да здравствуют хакерские решения!
Ответ №3:
Нашел аккуратное решение, вдохновленное этим сообщением:
# caption: Caption shared by both figures
# BEGIN_EXPORT html
<img src="./fig1.png" width="48%"> <img src="./fig2.png" width="48%">
# END_EXPORT
Позже я понял, что это работает только на сайте Hugo при отображении в формате HTML и не работает с обычным файлом org.