Übersetze ich folgende Datei:

Öffne in Overleaf
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\newcommand\cmd{"o}
\begin{document}
"o \cmd
\end{document}

erhalte ich folgendes Ergebnis:

ö "o

Eigentlich habe ich zwei ö erwartet. Was mache ich falsch?

gefragt 21 Feb '17, 19:49

Aksel's gravatar image

Aksel
4113
Akzeptiert-Rate: 0%

bearbeitet 22 Feb '17, 10:46

stefan's gravatar image

stefan ♦♦
18.3k163148

Willkommen auf TeXwelt!

Dir wird vielleicht auffallen, dass ich Dinge aus Deiner Frage gelöscht habe. Dies geschah in Übereinstimmung mit den Tipps zum Verfassen, die während der Eingabe und dem Bearbeiten einer Frage in dem blauen Kasten rechts angezeigt werden. Sie resultieren daraus, dass wir eine Frage-Antwort-Plattform sind und uns sachliche Kürze vor Höflichkeit geht.

(22 Feb '17, 07:38) saputello

Willkommen auf der TeXwelt! Sehr gutes Minimalbeispiel übrigens! Ja, in Kommentaren kann man auch mal plaudern, die Fragen sind zu Archivzwecken gern knackig kurz. ;-)

(22 Feb '17, 10:51) stefan ♦♦

Was wurde gelöscht? - Das "Moin" oder noch mehr?

(22 Feb '17, 16:05) Aksel

Du kannst in der Historie alle Änderungen nachverfolgen. Siehe auch: Editieren – wie geht’s? (der Link ist auch in der oben verlinkten FAQ zu finden).

(22 Feb '17, 16:12) saputello

@Aksel Außer dem "Moin" noch der Name drunter, denn der steht sowieso rechts darunter, automatisch. Braucht nicht doppelt sein. Ich habe das Thema "Makros" ergänzt, kleinen Tippfehler in Überschrift korrigiert. Etwas editieren, damit es korrekter oder prägnanter aussieht, ist hier völlig üblich. Sinn und Absicht und eigentlicher Inhalt soll natürlich erhalten bleiben. Das liegt an Zweck des Aufbaus eines Wissens-Archivs. Ein "Hallo" braucht man als Suchender nicht in einem Jahre alten Post später. ;-)

(22 Feb '17, 16:15) stefan ♦♦

Eine einfache Lösung für Umlaute wäre übrigens die Deklaration der Eingabecodierung und dann einfach die Verwendung des entsprechenden Umlauts:

Öffne in Overleaf
% !Mode:: "TeX:UTF-8"
\listfiles
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}% utf8 entsprechend der Editoreinstellung ggf. anpassen
\usepackage[ngerman]{babel}
\newcommand\cmd{ö}
\begin{document}
"o \cmd
\end{document}

Ergibt bei korrekter Angabe der Eingabecodierung (Screenshot aus dem Online-Editor Overleaf):

ö und ö

Das funktioniert natürlich nicht nur für Umlaute, aber keineswegs für alle möglichen Sonderzeichen. Leute, die nicht wissen, mit welcher Codierung sie arbeiten, können mit selinput arbeiten:

Öffne in Overleaf
% !Mode:: "TeX:UTF-8"
\listfiles
\documentclass{scrartcl}
\usepackage{selinput}% für \SelectInputMappings
\SelectInputMappings{% automatische Bestimmung der Codierung anhand von Beispielzeichen
  adieresis={ä},
  germandbls={ß}
}
\usepackage[ngerman]{babel}
\newcommand\cmd{ö}
\begin{document}
"o \cmd
\end{document}

Allerdings gebe ich zu bedenken, dass es immer von Vorteil ist zu wissen, welche Codierung der Editor verwendet. Im ersten Beispiel habe ich UTF8 gewählt, weil das die Codierung im Online-Editor Overlead und auch die Voreinstellung fast aller modernen LaTeX-Editoren ist.

Bei Verwendung einer UTF8-Engine wie xelatex oder lualatex benötigt man nicht einmal die Deklaration der Eingabecodierung. Natürlich muss man dann aber zwingend UTF8 als Eingabecodierung verwenden:

Öffne in Overleaf
% !Mode:: "TeX:UTF-8"
% Unbedingt LuaLaTeX oder XeLaTeX statt PFDLaTeX verwenden!
\listfiles
\documentclass{scrartcl}
\usepackage{fontspec}
\usepackage[ngerman]{babel}
\newcommand\cmd{ö}
\begin{document}
"o \cmd
\end{document}

Für babel Shorthands allgemein ist dagegen Marcos Lösung zu verwenden.

Wer Probleme damit hat, die Dateien in der korrekten Codierung zu erstellen, kann sie sich übrigens direkt aus dem Online-Editor herunterladen. Damit nicht womöglich der Editor die Codierung anschließend beschädigt, sollte man dann natürlich direkt im Terminal pdflatex bzw. lualatex oder xelatex aufrufen. Sollte auch das nicht funktionieren kann man (beispielsweise in einer Anschlussfrage) die entstandene log-Datei mit angeben.

Permanenter link

beantwortet 22 Feb '17, 14:09

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

bearbeitet 23 Feb '17, 13:27

Bsp 1 lässt sich bei mir übersetzen, liefert aber weiterhin ö "o Bsp 2 erzeugt bei mir (pdflatex) keine Datei Aber: ich glaube, dass das früher nicht so war. Was habe ich (unbemerkt) geändert?

(22 Feb '17, 16:27) Aksel

Bsp. 1 erfordert UTF-Codierung der Datei (Standard bei Linux, bei Windows nicht immer, da kann latin1 oder ansinew statt utf8 helfen, aber ich benutze kein Windows) und Bsp. 2 geht nicht mit pdfLaTeX sondern war als XeLaTeX/LuaLaTeX-Äquivalent angemerkt.

(22 Feb '17, 16:42) stefan ♦♦

@stefan: Auch bei LaTeX-Editoren für Windows wie TXC, TeXmaker, Texstudio oder Texworks ist seit Jahren UTF8 die Voreinstellung. Außerdem würde ein ö bei falscher Einstellung der Codierung auch kein "o ergeben. Ich vermute daher eher, dass nach der Änderung gar kein neues PDF erstellt wurde. Genaues lässt sich aber ohne log-Datei des LaTeX-Laufs nicht sagen.

(22 Feb '17, 16:57) gast3

@Tichy: Das bei mir etwas nicht funktioniert, dem würde ich uneingeschränkt zustimmen. Aber was? Deshalb habe ich hier meine Frage abgeworfen. Hast du eine Idee?

(22 Feb '17, 17:54) Aksel

@Tichy: Ich benutze MikTeX 2.9 und WinEdt. Und letzterer macht aus ö beim speichern "o. So lautet die Zeile in meinem Quelltext in Wirklichkeit: newcommandcmd{"o} und dass funktioniert weiterhin nicht.

Versuche ich Version 3 mit lualatex klappt gar nix. "lualatex.exe M.tex" führt zu einer Suche nach ltluatex.tex.

"Zu viele Kommentare" heißt, dass ich nicht einen Kommentar sondern eine "Antwort auf die Frage" erstellen soll?

Und soll ich das log-file hier einfach reinkopieren?

(22 Feb '17, 18:38) Aksel

@Ijon: Ich habe zuletzt meine Versuche in der Windows-shell durchgeführt - unabhängig vom Editor - mit dem oben genannten Ergebnis.

(23 Feb '17, 11:29) Aksel
2

Ich bin dafür die Kommentare hier zu löschen. Falls Aksel ein Problem mit der korrekten Einstellung seines Editors hat, soll er bitte eine entsprechende Frage dazu stellen. Die kann er dann auch mit entsprechenden Informationen (von tex-Datei bis log-Datei und Bildern von den Editor-Einstellungen) versehen. Dass die Beispiele aus der Antwort normalerweise korrekt funktionieren beweist bereits der Online-Editor.

(23 Feb '17, 12:24) saputello

Ich bin sehr dafür, unnötige Kommentare zu löschen. Auch bin ich gewillt, die richtigen Fragen zu stellen. Da ich jedoch nicht weiß, woran ich scheitere, kannte ich bisher die saputello genehme Frage nicht.

Die Datei habe ich zuletzt im UltaEdit erstellt und auch mit verschiedenen Kodierungen gespeichert. Das Ergebnis ist immer gleich. In der Datei steht auch kein Umlaut drin, sondern nur "o.

(23 Feb '17, 12:54) Aksel

@Aksel: Wenn in der Datei kein Umlaut drin steht, ist genau das Dein Fehler und das wurde Dir mehrfach gesagt. Das ist kein Fehler der Antwort. Das ist Dein Fehler! Schreib einen echten Umlaut rein! Du wirst ja wohl in der Lage sein, einen Editor zu finden, der echte UTF8-Umlaute unterstützt. Schließlich hast Du schon in der Antwort einen Link bekommen, der für diverse Editoren zeigt, wie das geht, darunter auch der MiKTeX beiliegende TeXworks. Und WinEdt kann es im Übrigen auch. Selbst aus dem Online-Editor kann man sich einfach ein ZIP mit der Originaldatei herunterladen.

(23 Feb '17, 13:12) saputello
Ergebnis 5 von 9 show 4 more comments

TeX selbst setzt Umlaute durch Voranstellen der Zeichen \". Das Paket babel definiert sogenannte shorthands, welche dir bei Wahl der deutschen Sprache die Eingabe von Umlauten erleichtert. Somit führt "o zum gleichen Ergebnis wie \"o.

babel aktiviert die shorthands ab \begin{document}, was aber für dein Makro zu spät ist. Hier ist bereits über die aktive Catcodetabelle die Kombination "o gelesen worden.

Lösungsmöglichkeit

  • Schiebe deine Defintion nach \begin{document} (suboptimal)
  • Arbeite mit \"
  • aktiviere lokal das Shorthand

hier ein Beispiel

Öffne in Overleaf
\documentclass{scrartcl}
\usepackage[ngerman]{babel}

\begingroup
\shorthandon{"}
\gdef\cmdA{"o}
\endgroup

\newcommand\cmdB{"o}
\begin{document}

\newcommand\cmdC{"o}

"o\qquad \cmdA\qquad \cmdB\qquad \cmdC

\end{document}
Permanenter link

beantwortet 21 Feb '17, 22:03

Marco_D's gravatar image

Marco_D
43015
Akzeptiert-Rate: 36%

bearbeitet 22 Feb '17, 11:49

cgnieder's gravatar image

cgnieder
22.1k253463

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:

×23
×18
×14

gestellte Frage: 21 Feb '17, 19:49

Frage wurde gesehen: 8,620 Mal

zuletzt geändert: 23 Feb '17, 13:27