Ctags: TeX: [Erweiterung] Patch für LaTeX für Beamer-Präsentationen

Erstellt am 12. Feb. 2020  ·  9Kommentare  ·  Quelle: universal-ctags/ctags

Implementieren Sie einen ähnlichen Patch wie in diesem Beitrag https://sourceforge.net/p/ctags/patches/76/, damit LaTeX-Beamer-Präsentationen nach Folien statt nach Abschnitten sortiert werden

Parser buenhancement

Alle 9 Kommentare

Vielen Dank, dass Sie dieses Problem gemacht haben.

Hast du eine Beispieleingabe?
Ich würde es gerne als Testfall in unser Repository aufnehmen.

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

ist ein gutes Beispiel, aber es verwendet nicht \frametitle .
Es verwendet \begin{frame}{AN ITEM WE WOULD LIKE TO TAG} .

Ich habe bereits Funktionen zum Erfassen von \frametitle implementiert.
\begin{frame}{...} ist jedoch noch nicht.

Ich denke, dieser kann verwendet werden, ich habe die Titel geändert, um das Schlüsselwort \frametitle
https://github.com/jagjordi/IL2239-Präsentation

Immer noch kämpfend.

Gibt es eine Möglichkeit, wie ich dabei helfen kann?

Könntest du #2424 versuchen?

Hallo @masatake
Ich habe einen Vorschlag, das Verhalten des Parsers in einer Beamer-Präsentation zu ändern.
Wenn eine Anordnung von Folien wie diese geschrieben wird

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

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

Normalerweise würde ich denselben Titel so oft wiederholen, wie es "Unterfolien" gibt. Zum Beispiel

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

Mit dem aktuellen Verhalten des Parsers wird für jedes Mal, wenn der Befehl frametitle verwendet wird, ein Tag-Eintrag generiert. Ich würde argumentieren, dass das Verhalten im Allgemeinen darin bestehen sollte, dass nur bei der ersten Verwendung des Befehls ein Tag-Eintrag generiert wird, und nachfolgende Verwendungen des Befehls (mit demselben Titelnamen) auf die erste Verwendung "zeigen".

Lass mich wissen was du denkst?

Grüße,

Ich werde an diesem Artikel arbeiten, nachdem ich https://github.com/universal-ctags/ctags/pull/2450 zusammengeführt habe.
Es wird länger dauern, als Sie annehmen.

In #2450 werde ich eine Symboltabelle vorstellen.
Damit können wir folgenden Code schreiben:

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

Klingt gut. Lass es mich wissen, wenn du etwas zum Testen brauchst 👍

Es funktioniert teilweise.
Ein bisschen mehr Arbeit ist nötig.

[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
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

jayceekay picture jayceekay  ·  13Kommentare

blackb1rd picture blackb1rd  ·  8Kommentare

EvanCarroll picture EvanCarroll  ·  14Kommentare

cweagans picture cweagans  ·  13Kommentare

liuchengxu picture liuchengxu  ·  8Kommentare