Ctags: TeX: [улучшение] Патч для LaTeX для презентаций проекторов

Созданный на 12 февр. 2020  ·  9Комментарии  ·  Источник: universal-ctags/ctags

Внедрите аналогичный патч, как в этом посте https://sourceforge.net/p/ctags/patches/76/, чтобы презентации проекторов LaTeX сортировались по слайдам, а не по разделам.

Parser buenhancement

Все 9 Комментарий

Спасибо за этот вопрос.

У вас есть пример ввода?
Я хотел бы включить его как тестовый пример в наш репозиторий.

https://github.com/strace/strace-talks/blob/master/2019-ossdevconf-kaluga-linux_design_flaw_story/ossdevconf_2019-slides-linux_design_flaw_story.tex

- хороший пример, но он не использует \frametitle .
Он использует \begin{frame}{AN ITEM WE WOULD LIKE TO TAG} .

Я уже реализовал функции для захвата \frametitle .
Однако \begin{frame}{...} еще нет.

Я думаю, что это можно использовать, я изменил заголовки, чтобы использовать ключевое слово \frametitle
https://github.com/jagjordi/IL2239-presentation

Все еще борется.

Могу я как-нибудь помочь с этим?

Не могли бы вы попробовать # 2424?

Привет @masatake
У меня есть предложение изменить поведение синтаксического анализатора в презентации проектор.
Если расположение слайдов, как это написано

Frame 1
|-- Subframe 1.1
|-- Subframe 1.2
|-- Subframe 1.3

Frame 2
|-- Subframe 2.1
|-- Subframe 2.2

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

\frametitle{Frame1}
\framesubtitle{Subframe1.1}

\frametitle{Frame1}
\framesubtitle{Subframe1.2}

\frametitle{Frame1}
\framesubtitle{Subframe1.3}

\frametitle{Frame2}
\framesubtitle{Subframe2.1}

\frametitle{Frame2}
\framesubtitle{Subframe2.2}

При текущем поведении парсера он будет генерировать запись тега каждый раз, когда используется команда frametitle . Я бы сказал, что обычно поведение может заключаться в том, что он генерирует запись тега только при первом использовании команды, а последующие использования команды (с тем же именем заголовка) будут «указывать» на первое использование.

Дайте мне знать, что вы думаете?

С уважением,

Я буду работать над этим элементом после слияния https://github.com/universal-ctags/ctags/pull/2450.
Это займет больше времени, чем вы предполагаете.

В # 2450 я представлю таблицу символов.
С этим мы можем написать следующий код:

tagEntryInfo *tag = lookupTag ("Frame1");
if (! (tag && kinfOf(tag) == "frametitle"))
   skip();
else /* a frame title we have never seen. */
   makeTag ();

Звучит здорово. Дайте мне знать, если вам нужно что-то протестировать 👍

Работает частично.
Требуется немного больше работы.

[yamato@slave]~/var/ctags-github% cat /tmp/input.tex 
cat /tmp/input.tex 
\frametitle{Frame1}
\framesubtitle{Subframe1.1}

\frametitle{Frame1}
\framesubtitle{Subframe1.2}

\frametitle{Frame1}
\framesubtitle{Subframe1.3}

\frametitle{Frame2}
\framesubtitle{Subframe2.1}

\frametitle{Frame2}
\framesubtitle{Subframe2.2}
[yamato@slave]~/var/ctags-github% ./ctags --sort=no -o - /tmp/input.tex 
./ctags --sort=no -o - /tmp/input.tex 
Frame1  /tmp/input.tex  /^\\frametitle{Frame1}$/;"  f   language:TeXBeamer
Subframe1.1 /tmp/input.tex  /^\\framesubtitle{Subframe1.1}$/;"  g   language:TeXBeamer  frametitle:Frame1
Subframe1.2 /tmp/input.tex  /^\\framesubtitle{Subframe1.2}$/;"  g   language:TeXBeamer  frametitle:Frame1
Subframe1.3 /tmp/input.tex  /^\\framesubtitle{Subframe1.3}$/;"  g   language:TeXBeamer  frametitle:Frame1
Frame2  /tmp/input.tex  /^\\frametitle{Frame2}$/;"  f   language:TeXBeamer
Subframe2.1 /tmp/input.tex  /^\\framesubtitle{Subframe2.1}$/;"  g   language:TeXBeamer  frametitle:Frame2
Subframe2.2 /tmp/input.tex  /^\\framesubtitle{Subframe2.2}$/;"  g   language:TeXBeamer  frametitle:Frame2
Была ли эта страница полезной?
0 / 5 - 0 рейтинги