Für eine Rechtschreibprüfung innerhalb von TeX müsste man in der Lage sein, die horizontalen Boxen, die aus den Zeichen erzeugt werden, abzufangen und einem Vergleich zu unterziehen.

Hier zunächst eine Vergleichsroutine, die im letzten Vergleich nicht funktioniert. Gibt es dazu Tipps?

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\begin{document}
\vskip\baselineskip
\def\A{C}
\def\B{C}
Der Vergleich ergibt \A \B \ \ifx\A\B Richtig \else FALSCH \fi
\vskip\baselineskip
\def\A{C}
\def\B{D}
Der Vergleich ergibt \A \B \ \ifx\A\B Richtig \else FALSCH \fi
\vskip\baselineskip
\def\A{{Dies}}
\def\B{{Dies}}
Der Vergleich ergibt \A \B \ \ifx\A\B Richtig \else FALSCH \fi
\vskip\baselineskip
\def\A{{Das}}
\def\B{{Dies}}
Der Vergleich ergibt \A \B \ \ifx\A\B Richtig \else FALSCH \fi

\vskip\baselineskip
\setbox1=\hbox{Das}
\setbox2=\hbox{Das}
\def\A{\copy1}
\def\B{\copy2}
Der Vergleich ergibt \A \B \ \ifx\A\B Richtig \else FALSCH \fi
\end{document}

gefragt 20 Jun '13, 02:33

ctansearch's gravatar image

ctansearch
(ausgesetzt)
Akzeptiert-Rate: 18%

Wieso nicht \pdfstrcmp verwenden? Ansonsten musst Du auf catcodes aufpassen. a ist nicht immer gleich a.

(20 Jun '13, 08:07) cgnieder

Wie in TeX by Topic steht, vergleicht \ifx bei Makros auf Gleichheit der Expansion:

\ifx Test equality of macro expansion, or equality of character code and category code.

Die Expansion von \A und \B ist aber nicht die gleiche: im ersten Fall ist sie \copy1 und im zweiten \copy2. Da \copy nicht expandierbar ist, wüsste ich auch von keinem Weg drum herum, mit \edef würden beide Makros unverändert \copy1 und \copy2 sein, genau wie nach einer \expandafter-Kette.

Permanenter link

beantwortet 20 Jun '13, 08:32

cgnieder's gravatar image

cgnieder
22.1k243463
Akzeptiert-Rate: 60%

@ctansearch: Danke für die geschenkten Punkte! Anstatt mir Deine sauer verdienten Punkte zu schenken, könntest Du auch einfach auf den Daumen nach oben klicken: für mich hätte das den gleichen Effekt und Du würdest Deine nicht verlieren :)

(20 Jun '13, 12:05) cgnieder

@Clemens :-)) Achso, man verliert die... naja, geschenkt.

(20 Jun '13, 12:09) ctansearch

@ctansearch Stefan und ich haben hier: http://texwelt.de/blog/wissen/stimmen/ was zum Stimmen und Punkte abgeben geschrieben

(20 Jun '13, 12:15) cgnieder
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:

×18
×6
×5

gestellte Frage: 20 Jun '13, 02:33

Frage wurde gesehen: 9,819 Mal

zuletzt geändert: 20 Jun '13, 12:15