Ctags: TeX: patch [aprimoramento] para LaTeX para apresentações de projetor

Criado em 12 fev. 2020  ·  9Comentários  ·  Fonte: universal-ctags/ctags

Implemente um patch semelhante como neste post https://sourceforge.net/p/ctags/patches/76/ para que as apresentações do projetor LaTeX sejam classificadas por slides em vez de seções

Parser buenhancement

Todos 9 comentários

Obrigado por fazer este problema.

Você tem um exemplo de entrada?
Eu gostaria de incluí-lo como um caso de teste em nosso repositório.

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

é um bom exemplo, mas não usa \frametitle .
Ele usa \begin{frame}{AN ITEM WE WOULD LIKE TO TAG} .

Já implementei funções para capturar \frametitle .
No entanto, \begin{frame}{...} ainda não é.

Acho que este pode ser usado, mudei os títulos para usar a palavra-chave \frametitle
https://github.com/jagjordi/IL2239-presentation

Ainda lutando.

Existe alguma maneira de eu ajudar com isso?

Você poderia tentar o # 2424?

Ola @masatake
Tenho uma sugestão para modificar o comportamento do analisador em uma apresentação de projetor.
Se um arranjo de slides como este está escrito

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

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

Normalmente, eu teria o mesmo título repetido tantas vezes quanto os "sub-slides" existissem. Por exemplo

\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}

Com o comportamento atual do analisador, ele irá gerar uma entrada de tag para cada vez que o comando frametitle for usado. Eu diria que geralmente o comportamento deve ser que ele apenas gere uma entrada de tag a primeira vez que o comando é usado, e os usos subsequentes do comando (com o mesmo nome de título) "apontarão" para o primeiro uso.

Diz-me o que pensas?

Cumprimentos,

Vou trabalhar neste item após mesclar https://github.com/universal-ctags/ctags/pull/2450.
Vai demorar mais tempo do que você imagina.

Em # 2450, apresentarei uma tabela de símbolos.
Com isso podemos escrever o seguinte código:

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

Parece bom. Avise-me se precisar de algo para testar 👍

Funciona parcialmente.
Um pouco mais de trabalho é necessário.

[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
Esta página foi útil?
0 / 5 - 0 avaliações