Hallo! Was mich in dem Zusammenhang mit der Frage Was macht eigentlich usepackage[T1]{fontenc}? interessiert hätte: Bei vielen Experten beginnt der Dokumentkopf wie in folgendem Minimalbeispiel: Version 1: Open in writeLaTeX
\documentclass[]{scrreprt} \usepackage{selinput} \SelectInputMappings{adieresis={ä}, germandbls={ß}} \usepackage[ngerman]{babel} \begin{document} \section{Abschnitt} foo föß bär füü \end{document} Es gibt bei .......................................................................................... Daneben gibt es noch die Version 2: Open in writeLaTeX
\documentclass[]{scrreprt} \usepackage[utf8]{inputenc} \usepackage[ngerman]{babel} \usepackage[T1]{fontenc} \begin{document} \section{Abschnitt} foo föß bär füü \end{document} .......................................................................................... Beides führt m. W. zum gleichen Ergebnis. Welche Version sollte eher verwendet werden? Am Rande: Ich hatte mir noch überlegt, dass man hier zusätzlich das Paket
Ergebnis 5 von 6
show 1 more comments
|
Der Unterschied zwischen der Verwendung von Das Paket Einen weiteren Vorteil bietet das Paket allerdings beim Austausch von Dateien mit anderen. Wird eine Datei in einen anderen Editor geladen und anschließend mit veränderten Codierungseinstellungen gespeichert, so werden Sonderzeichen meist umcodiert. Der Empfänger muss daher bei Verwendung von Noch extremer wird das ganze, wenn die Datei per Copy&Paste über WWW-Seiten, im Usenet oder E-Mails ausgetauscht wird. Dabei wird häufig die Codierung bereits beim Copy&Paste oder durch die Übertragung geändert. So liefern einige WWW-Seiten beispielsweise grundsätzlich UTF8 aus, während andere grundsätzlich ISO-Latin-1 (gleichbedeutend mit ISO-8859-1) verwenden. So kann sich die Codierung bereits beim Kopieren vom Editor in den Browser ändern. Genauso kann sich die Codierung beim Kopieren aus dem Browser in den Editor noch einmal ändern. Der Absender weiß also gar nicht, welche Codierung die Datei beim Empfänger haben wird (bei der Der Unterschied zwischen der Angabe mit Bei Verwendung von LuaLaTeX oder XeLaTeX sollte man übrigens auf Für Dokumente, die sowohl mit LuaLaTeX oder XeLaTeX als auch mit pdfLaTeX unabhängig von der verwendeten LaTeX-Version verarbeitet werden können, empfiehlt sich daher etwas wie: Öffne in Overleaf
\usepackage{ifluatex,ifxetex} \ifluatex \usepackage{fontspec} \else \ifxetex \usepackage{fontspec} \else \usepackage{selinput} \SelectInputMappings{ adieresis={ä}, germandbls={ß}, } \usepackage[T1]{fontenc} \usepackage{textcomp}% optional \usepackage{lmodern} \fi \fi oder, da man den Editor ohnehin auf die Codierung UTF-8 einstellen sollte auch direkt: Öffne in Overleaf
\usepackage{ifluatex,ifxetex} \ifluatex \usepackage{fontspec} \else \ifxetex \usepackage{fontspec} \else \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{textcomp}% optional \usepackage{lmodern} \fi \fi Das Pakete Hat man eine aktuelle LaTeX-Installation mit LaTeX ab Version 2018/04/01, so ist auch für PDFLaTeX die voreingestellte Codierung UTF-8. Verwendet man also für die Eingabe diese Codierung, so vereinfacht sich obiger Code zur Berücksichtigung unterschiedlicher Engines zu: Öffne in Overleaf
\usepackage{ifluatex,ifxetex} \ifluatex \usepackage{fontspec} \else \ifxetex \usepackage{fontspec} \else \usepackage[T1]{fontenc} \usepackage{textcomp}% optional \usepackage{lmodern} \fi \fi oder etwas trickreicher: Öffne in Overleaf
\usepackage{ifluatex,ifxetex} \ifcase 0\ifluatex 1\else\ifxetex 1\fi\fi\relax \usepackage[T1]{fontenc} \usepackage{textcomp}% optional \usepackage{lmodern} \else \usepackage{fontspec} \fi oder noch ein wenig trickreicher: Öffne in Overleaf
\ifcsname IeC\endcsname % aktuelles LaTeX mit 8-Bit-Engine (z. B. pdflatex) \usepackage[T1]{fontenc} \usepackage{textcomp}% optional \usepackage{lmodern} \fi wobei letzteres Interna von LaTeX nutzt, so dass ich davon eher abraten würde. Bevor jetzt jemand auf die ganze schlaue Idee kommt, so etwas zu machen: Öffne in Overleaf
% Nicht sinnvoll!!! Nicht nachmachen!!!! \ifcsname UseRawInputEncoding\endcsname\else \usepackage[utf8]{inputenc}% veraltetes LaTeX benötigt inputenc \fi \ifcsname IeC\endcsname % weder XeLaTeX noch LuaLaTeX \usepackage[T1]{fontenc} \usepackage{textcomp}% optional \usepackage{lmodern} \fi Das ist nicht sinnvoll. Will man auf alte LaTeX-Versionen Rücksicht nehmen, verwendet man lieber die als erstes gezeigte Lösung, die auch bei neuerem LaTeX weiterhin funktioniert. |
So, komplett neu....
Wenn Du im ersten Beispiel auch noch
fontenc
hinzufügst, dann könnte man die Frage herunterbrechen auf »inputenc
oderselnolig
– welches soll ich verwenden, was sind Vor- oder Nachteile des einen oder anderen Pakets«, richtig?Oder das war schon die 1. AW:
sollte in beiden Versionen dabeistehen, richtig?@cis Ich glaube nicht, dass man die Fragen nach dem optimalen Dokumentkopf allgemein beantworten kann. Schon die einfache Frage nach der Verwendung von
inputenc
oderfontenc
ist nicht allgemein zu beantworten. Wenn beispielsweise ein Anwender auf einen bestimmten Font angewiesen ist, dann ist dieser häufig leichter mitxelatex
oderlualatex
einzubinden. Dann ist aber wederinputenc
(auch nicht indirekt überselinput
) nochfontenc
zu verwenden. Auch wandeln sich solche Dinge. Meiner Meinung nach sind sie daher eher von Fall zu Fall zu beantworten als allgemein.@cis Wenn ich das richtig sehe, wäre derzeit als Überschrift etwas wie »Wie stelle ich die Codierung am besten ein?« passender, denn derzeit ist der Text der Frage eigentlich nur auf diesen Teilaspekt der Frage nach der optimalen Dokumentpräambel ausgerichtet. Ich finde es auch durchaus passend, die Gesamtfrage in solche Teilfragen aufzuteilen. Ob man dann auch noch eine Gesamtfrage stellt, deren Antwort letztlich aus Verweisen auf die Teilaspekte bestehen könnte, halte ich für möglich, da sie sich zwar Anwendern immer wieder stellt, aber kaum einfach generell beantwortbar ist.
Verwandt: Wie überprüfe ich die Standardeingabekodierung in meinem Editor?