mit The glossaries package v4.26 kann ich die Abkürzungen, die ich im Abkürzungsverzeichnis haben möchte, definieren:

\newacronym{sga}{sgA}{super gute Abkürzung}

warum aber muss ich nun jedesmal im Text, wenn ich die Abkürzung verwende, mit \acrlong{sga} oder \acrshort{sga} die Abkürzung nochmal markieren, TeX kann die doch selbst finden. Incl. der Definition der ersten Verwendung.

Gibt es ein Paket welches die definierten Abkürzungen selbst sucht? Oder ein Hilfsprogrmm, das den ASCII-Text vom *.txt durchsucht und die Abkürzungsworte für TeX findet und in den zu verwendeten Befehl einbettet?

gefragt 19 Jan '17, 18:08

asdfgh's gravatar image

asdfgh
5248
Akzeptiert-Rate: 0%

bearbeitet 25 Apr '20, 10:54

gast3's gravatar image

gast3
(ausgesetzt)

Du irrst. TeX kann das nicht. Mit LuaTeX wäre es prinzipiell möglich. Und natürlich musst Du nicht selbst wählen, ob long oder short. Das kann in der Tat glossaries selbst. \ac{sga} bzw. \gls{sga} genügt.

(19 Jan '17, 18:17) saputello

Bitte achte auf korrektes Markdown von Inline-Code: `\acrshort{sga}` gibt \acrshort{sga} während \acrshort{sga} nur acrshort{sga} ergibt.

(19 Jan '17, 18:18) saputello

Das kann man gar nicht sehen. Ist auch nicht wirklich wichtig. Was ich bei Abkürzungen gerne mache ist \newcommand{\sga}{\ac{sga}}, dann geht im Fließtext einfach \sga.

(19 Jan '17, 20:20) NobbZ
1

Prinzipiel bedeutet, dass man sich den in LuaLaTeX in der theorie hinsetzen könnte und aus einem luascript heraus das gesammte Dokument durchforsten könnte nach potentiellen Abkürzungen und diese markieren, das hat aber bisher noch niemand gemacht. In meinen Augen auch eher ein ungünstiges vorhaben. Was passiert in diesem Fall zB mit Abkürzungen die aussehen wie ein richtiges Wort das im Text verwendet wird? Was passiert mit Abkürzungen die je nach Kontext unterschiedliche Expansionen haben?

(20 Jan '17, 11:59) NobbZ
1

Ich hätte gerade Lust auf eine heiße Schokolade. Wer möchte mir Gesellschaft leisten?

(21 Jan '17, 18:27) Johannes

@asdfgh Bitte halte Dich bei den Kommentaren etwas zurück und investiere Deine Zeit besser in verständliche Fragen und die Anfertigung der mehrfach nachgefragten Minimalbeispiele. Wobei ich fast befürchte, dass nach dieser Entgleisung und Deinem bisherigen Frage- und Kommentarstil die Lust, Dir zu antworten nicht nur bei mir stark gesunken ist.

(21 Jan '17, 18:30) saputello

@asdfgh Bitte lösche die offtopic-Kommentare, sonst sieht man hier nicht mehr durch. Weißt ja, wie Du per mail Kontakt aufnehmen kannst. @Ulrike: Kannst Du bitte auch aufräumen? Ist ja alles gelesen und genug gesagt. Geht ja keinen weiter was an.

(21 Jan '17, 18:34) stefan ♦♦
Ergebnis 5 von 7 show 2 more comments

Keine echte Antwort aber schlicht zu lang für einen Kommentar:

Ein LaTeX-Paket, das Wörter im gesamten Text eines Dokuments erkennt und durch Befehle ersetzen kann, gibt es nicht. Genau genommen arbeitet TeX gar nicht mit Wörtern, sondern mit Folgen von Boxen. In einer Box können dann erneut Boxen oder Zeichen sein. Selbst der Trennalgorithmus arbeitet nicht mit Wörtern, sondern mit Buchstabenkombinationen und Gewichten für deren Trennbarkeit. Darüber hinaus bietet das klassische TeX (also auch latex, pdflatex und selbst xelatex) keine guten Eingriffsmöglichkeiten für derartige Aufgaben. Es ist eher befehlsorientiert. Um Wörter zu erkennen und dann speziell zu behandeln, müsste man entweder die Bestandteile der Wörter aktiv (also zu einzelnen Befehlen) machen oder die Wortzwischenräume. Das würde allerdings vielfältige Probleme aufwerfen, da die entsprechenden Zeichen dann eben immer aktiv wären. Beispielsweise können Befehle wie \documentclass nur aus Buchstaben und nicht aus einer Reihe von aktiven Zeichen gebildet werden. Ich schätze ein entsprechendes Unterfangen daher als illusorisch ein.

Soweit ich weiß, kennt auch LuaTeX keine Wörter. Allerdings bietet LuaTeX diverse Angriffspunkte, um die erzeugten Node-Listen zu analysieren und zu manipulieren. So bietet beispielsweise das Paket selnolig die Möglichkeit bei einem Dokument mit lualatex direkt beim Übersetzungsvorgang unerwünschte Ligaturen aufzuspüren und aufzubrechen. Dazu muss das Paket nicht nur Ligaturen aufspüren, sondern auch deren Umfeld erkennen, um eine korrekte Entscheidung zu treffen. Für das Aufspüren von Abkürzungen könnte man auf ähnliche Weise vorgehen, wobei das genannte Paket derzeit keine kompletten Wörter sondern Wortbestandteile erkennt und ersetzt. Das alleinige Vorhandensein des Pakets ist also noch keine Lösung sondern ein Hoffnungsschimmer.

Irgendwo gab es auch einmal einen Artikel, der veranschaulichte, wie man in LuaTeX Wörter ersetzen kann. Das wäre dann eher ein Ansatzpunkt. Leider kann ich den Artikel gerade nicht finden, aber vielleicht erinnert sich ja jemand anderer daran.

Nachdem ich nun also erklärt habe, warum man bisher \gls{foo} o. ä. eingeben muss, statt dass foo automatisch entsprechend behandelt wird, sei zum Schluss darauf hingewiesen, wie sich das ändern könnte. Zwar darf man auch an die Verwendung von Open-Source durchaus mit Wünschen und Erwartungen herangehen. Tatsächlich erfüllt werden aber nur die Wünsche und Erwartungen, in die jemand investiert hat. Das kann ein Entwickler sein, der irgendwann sein Know-How und seine Arbeitskraft investiert hat. Das kann aber auch ein Anwender sein, der irgendwann in die Suche nach einem Entwickler und ggf. auch in die Finanzierung einer Entwicklung investiert hat. Ansonsten bleibt nur, mit viel Geduld darauf zu warten, dass irgendwann ein freiwilliger Entwickler die Aufgabe entdeckt, sie als interessant einschätzt, Lust verspürt, sie anzugehen, und auch die dafür erforderliche Zeit aufbringen kann. Ich traue mir jedoch keine Abschätzung zu, wann das der Fall sein wird.

Permanenter link

beantwortet 20 Jan '17, 16:32

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

bearbeitet 20 Jan '17, 16:33

Natürlich mag ich die Antwort. Daumenhochklick nachgeholt. Kenn mich nur nicht so aus was das mit dem Konto soll. Bevor ich Negativzinsen zahlen muss, sehe ich dass die Punkt wegkommen ;-)

(21 Jan '17, 10:20) asdfgh

@asdfgh Was die Punkte sollen, ist in der FAQ erklärt. Dort sind auch noch andere Dinge erklärt. Diese zu wissen, kann Missverständnisse dieser Art vermeiden helfen. Dort heißt es beispielsweise auch:

Welche Art Fragen sollte vermieden werden?

Bitte schreibe keine Fragen, […] die zu subjektiven Antworten aufrufen oder zu Diskussionen führen könnten.

(21 Jan '17, 10:22) gast3

Aber auch: "Sonst braucht man diese Punkte wirklich nicht überzubewerten." Und ich finde nichts über Punkte verschenken.

(21 Jan '17, 10:29) asdfgh

Bei xelatex geht es durchaus (siehe Stefans Antwort).

(21 Jan '17, 18:55) saputello

Man könnte es mit xesearch tun, wobei man hierfür XeLaTeX verwenden muss.

Öffne in Overleaf
\usepackage{xesearch}
\SearchList{abk}{\gls{#1}}{Abk}
...
\begin{document}
\StartSearching
...
Gleich kommt eine Abk.
...
\StopSearching
\end{document}
Permanenter link

beantwortet 21 Jan '17, 18:01

stefan's gravatar image

stefan ♦♦
17.9k122947
Akzeptiert-Rate: 49%

Habe ich probiert, bekomme aber schon bei den Beispielen aus der Anleitung immer:

<XeTeXinterchartoks> \xdef \xs@String {\xs@String a}\xs@LearnLetter

(21 Jan '17, 18:20) saputello

@saputello Enrico hat eine Lösung hier gepostet. Mit dem patch von dort sollte es gehen. Ich habe es mit \texttt statt \gls getestet weil ich mir nie den makeindex-Aufruf für glossaries gemerkt habe. :-) Und weil in der Frage kein Minimalbeispiel zum Ausprobieren war. Dann auch keins von mir (hätte ich gewusst, dass Du es testest, hätte ich eins gemacht).

(21 Jan '17, 18:38) stefan ♦♦

@stefan: Danke. Für \newacronym{abk}{Abk}{Abkürzung} brauchst Du keinen makeindex- oder makeglossaries-Aufruf. xesearch arbeitet in der Voreinstellung übrigens case-insensitiv bei der Suche und ersetzt daher 'abk' durch \gls{abk} und Akb durch \gls{Abk}. Man muss für das Beispiel daher \newacronym{Abk}{Abk}{Abkürzung} definieren, darf also beim Label nicht zu faul sein und muss beim Tippen weiterhin eine gewisse Sorgfalt walten lassen. Wie das geht, wenn man beides hat, weiß ich noch nicht.

Ist bekannt, ob schon jemand den Fehler in xesearch gemeldet hat?

(21 Jan '17, 18:42) saputello

@saputello Ich weiß nicht, ich sah ihn heute auch das erste Mal.

(21 Jan '17, 18:46) stefan ♦♦

@saputello: http://tex.stackexchange.com/a/324155/2388. Edit: Huch, plötzlich sind ja viel mehr Kommentare da ...

(21 Jan '17, 18:47) Ulrike Fischer

@Ulrike Auch Dir Danke für den Link.

(23 Jan '17, 08:26) saputello
Ergebnis 5 von 6 show 1 more comments
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×10
×3

gestellte Frage: 19 Jan '17, 18:08

Frage wurde gesehen: 4,802 Mal

zuletzt geändert: 23 Jan '17, 08:26