Außerhalb der *TeX-Welt

Außerhalb der *TeX-Welt

zum Thema doppelte Ansprüche - ich habe getestetLatex sagen, dass es ALLE Unicode-Fehler ignorieren soll?- „Lösung“: Dies führte dazu, dass LaTeX „?“ statt ​„⌀“ anzeigte.

Vielen Dank an die Leute, die qualitativ hochwertige und sehr nützliche Antworten gegeben haben.


Ich habe ⌀ zum Text hinzugefügt und jetzt stürzt pdflatex ab mit

Paket inputenc-Fehler: Unicode-Zeichen \u8:⌀ nicht für die Verwendung mit LaTeX eingerichtet.

Ich weiß, dass ich \DeclareUnicodeCharacter oder Ähnliches verwenden kann, um eine spezielle Behandlung dieses Zeichens einzuführen, aber es ist nicht akzeptabel, dies jedes Mal zu tun, wenn dieses neue UTF-8-Zeichen in der Eingabe erscheint.

Es muss in pdflatex (oder einem anderen PDF-generierenden Latex-Compiler) funktionieren, da ich Latex ausschließlich als PDF-Generator verwende (LaTeX wird aus der Eingabe generiert, pdflatex generiert die PDF-Ausgabe).

MWE:

\begin{document}
\end{document}

MWE mit meinem Dokument Erklärungen vorhanden

\documentclass{article}
\usepackage[a4paper, total={6.5in, 10.5in}]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{cprotect}
\usepackage{fvextra}
\usepackage{textcomp}

% make TOC work correctly
\makeatletter
\def\l@section{\@dottedtocline{1}{1em}{2em}}
\makeatother
\usepackage{index}
\makeindex

\DeclareUnicodeCharacter{00A0}{~}

\DefineVerbatimEnvironment{escape}
  {Verbatim}
  {fontfamily=\rmdefault,breaklines,breaksymbolleft={}}
\CustomVerbatimCommand\escapeinline{Verb}{fontfamily=\rmdefault,breaklines,breaksymbolleft={}}

\begin{document}
\end{document}

Antwort1

Man kann es sich so vorstellen: Damit LaTeX (oder ein anderes System) „⌀“ (oder ein beliebiges Zeichen) auf der Seite/dem Bildschirm darstellen kann, muss ihm die „Form“ (visuelle Erscheinung) dieses Zeichens zur Verfügung stehen.irgendwo.

Außerhalb der *TeX-Welt

In den meisten „modernen“ Anwendungen, Texteditoren, Browsern usw. wird dies über einenSchriftart-FallbackMechanismus:

  1. Die Anwendung (z. B. Ihr Browser) versucht zunächst, in der aktuellen Schriftart eine Glyphe für dieses Zeichen zu finden. (Wenn ich diese Buchstaben auf der Website tex.stackexchange.com eingebe, werden sie in der Schriftart „Lucida Grande“ angezeigt, die vom CSS auf dieser Website angegeben wird.)
  2. Wenn die aktuelle Schriftart das Zeichen nicht unterstützt, versucht die Anwendung zu findenmancheSchriftart, die auf dem System installiert ist und eine Glyphe für dieses Zeichen enthält, und greift dann auf die Glyphe aus dieser Schriftart zu. (In diesem Fall zeigt mein Browser mit den auf meinem Computer installierten Schriftarten das Zeichen „⌀“ aus der Schriftart „Cambria“ an, da das Zeichen in der Schriftart „Lucida Grande“ nicht vorhanden ist.) Bildbeschreibung hier eingeben

  3. Wenn es keine solche Schriftart gibt, sehen Sie möglicherweise ein quadratisches Kästchen, ein Fragezeichen, ein Leerzeichen oder eine ähnliche Darstellung, dass das Zeichen fehlt (möglicherweise von einer Ersatzschriftart „Last Resort“). In den folgenden Texten, die die Ziffern 0 bis 9 zeigen, verwende ich beispielsweise für die ungeraden Ziffern zuerst die Ziffern aus der„Brahmi“ Unicode-Block(für die ich eine Schriftart installiert habe) und dann von der„Masaram Gondi“ Unicode-Block(zu Unicode hinzugefügt in Version 10.0.0, veröffentlicht erst vor wenigen Tagen im Juni 2017), für die ich (und wahrscheinlich auch Sie) keine Schriftart installiert habe:

    0

Antwort2

Sie erhalten eine Fehlermeldung, die Sie darüber informiert, dass keine Standarddefinition für vorhanden ist , da dieses in keiner der Standardschriftarten vorhanden ist.

Die umfassende Liste sagt uns, dass \diameterbereitgestellt wird von

  • mathabx
  • MnSymbol
  • wasysym

und es wäre sehr fragwürdig, eines dieser Pakete nur hinzuzufügen, um ein paar Symbole verfügbar zu machen.

Sie erhalten eine Fehlermeldung mit genauen Angaben. Treffen Sie beispielsweise eine Auswahl wasysymund ändern Sie Ihren Code in

\documentclass{article}
\usepackage[a4paper, total={6.5in, 10.5in}]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{cprotect}
\usepackage{fvextra}
\usepackage{textcomp}

\usepackage{wasysym} % for \diameter

% make TOC work correctly
\makeatletter
\def\l@section{\@dottedtocline{1}{1em}{2em}}
\makeatother
\usepackage{index}
\makeindex

%\DeclareUnicodeCharacter{00A0}{~} % not needed in recent versions of LaTeX
\DeclareUnicodeCharacter{2300}{\diameter}

\DefineVerbatimEnvironment{escape}
  {Verbatim}
  {fontfamily=\rmdefault,breaklines,breaksymbolleft={}}
\CustomVerbatimCommand\escapeinline{Verb}{fontfamily=\rmdefault,breaklines,breaksymbolleft={}}

\begin{document}
\end{document}

Mit LuaTeX brauchen Sie das nicht inputenc, aber SieTunSie benötigen eine Schriftart, die das Glyph unterstützt.

Beachten Sie, dass andere Software möglicherweise automatisch Schriftarten ersetzt, wenn ein Glyph in der aktuellen Schriftart nicht verfügbar ist. LuaLaTeX und XeLaTeX tun dies nicht, da sie auf gute Typografie abzielen und eine automatische Ersetzung zu Konflikten führen kann. Die gleiche Idee wie zuvor: Der Kernel kann nicht für jedes Unicode-Zeichen eine Definition bereitstellen, da hierzu alternative Schriftarten ausgewählt werden müssen.


Es ist jedoch möglich, dass der Benutzer U+2300 eingegeben hat, um das \varnothingSymbol zu erhalten, was sehr wahrscheinlich ist, wenn das Dokument sich mit Mathematik und nicht mit einem technischen Thema befasst. In diesem Fall lautet das zu ladende Paket amssymb:

\usepackage{amssymb}

\DeclareUnicodeCharacter{2300}{\varnothing}

verwandte Informationen