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
Vielen Dank, dass Sie dieses Problem gemacht haben.
Hast du eine Beispieleingabe?
Ich würde es gerne als Testfall in unser Repository aufnehmen.
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