Wie werden (,), {,} und $\vee$ im Mathematikmodus aufgefettet?

Wie werden (,), {,} und $\vee$ im Mathematikmodus aufgefettet?

Um zwischen Objektsprache und Metasprache zu unterscheiden, möchte ich einen möglichst deutlichen Unterschied zwischen den im Titel genannten Zeichen, wie sie in der Objektsprache und wie sie in der formalen Metasprache verwendet werden, erreichen. Wie erreiche ich dies am besten?

Ich bin mit dem geringen Unterschied zwischen $\boldsymbol{{}()\vee} und ${}()\vee$ nicht zufrieden.

Vielleicht gibt es einige verwandte Symbole inhttp://linorg.usp.br/CTAN/info/symbols/comprehensive/symbols-a4.pdfdie ich verwenden könnte?

Antwort1

Ich führe ein \fat, dass das Argument mit einem Multi-Offset-Overlay fett hervorgehoben wird. Obwohl es im Textmodus oder im Mathematikmodus aufgerufen werden kann, wird sein Argument im Mathematikmodus verarbeitet (sofern es nicht durch abgegrenzt wird, $wodurch es im Textmodus verarbeitet wird). Wichtig ist, dass der aktuelle Mathematikstil beibehalten wird. Für Dinge wie \veeist es einfacher, \fveein Bezug auf \fatund zu definieren \vee.

\documentclass{article}
\usepackage{scalerel}
\newcommand\fat[1]{\ThisStyle{\ooalign{%
  \kern.46pt$\SavedStyle#1$\cr\kern.33pt$\SavedStyle#1$\cr%
  \kern.2pt$\SavedStyle#1$\cr$\SavedStyle#1$}}}
\def\fvee{\mathbin{\fat{\vee}}}
\begin{document}
$\{(xyz\vee abc)\} \scriptscriptstyle 
 \{(xyz\vee abc)\}$

$\fat\{\fat(xyz\fvee abc\fat)\fat\} \scriptscriptstyle 
 \fat\{\fat(xyz\fvee abc\fat)\fat\}$

\fat aa\fat{$a$}

\end{document}

Bildbeschreibung hier eingeben

Wenn Sie den Effekt wirklich verstärken möchten, können Sie dem Ergebnis eine kleine horizontale Streckung hinzufügen (in diesem Fall 20 %):

\documentclass{article}
\usepackage{scalerel}
\newcommand\fat[1]{\ThisStyle{\hstretch{1.2}{\ooalign{%
  \kern.46pt$\SavedStyle#1$\cr\kern.33pt$\SavedStyle#1$\cr%
  \kern.2pt$\SavedStyle#1$\cr$\SavedStyle#1$}}}}
\def\fvee{\mathbin{\fat{\vee}}}
\begin{document}
$\{(xyz\vee abc)\} \scriptscriptstyle 
 \{(xyz\vee abc)\}$

$\fat\{\fat(xyz\fvee abc\fat)\fat\} \scriptscriptstyle 
 \fat\{\fat(xyz\fvee abc\fat)\fat\}$

\fat aa\fat{$a$}

\end{document}

Bildbeschreibung hier eingeben

Antwort2

Eine paketbasierte Lösung pdfrenderum die Symbole zusätzlich mit einer Strichstärke zu versehen.

\documentclass{article}
\usepackage{amsmath}% for environment "gather*"
\usepackage{pdfrender}

\newcommand*{\fatten}[1][.4pt]{%
  \textpdfrender{
    TextRenderingMode=FillStroke,
    LineWidth={\dimexpr(#1)\relax},
  }%
}

\begin{document}
\begin{gather*}
  (a \vee b) = \{a \vee b\}
\\
  \fatten{(} a \fatten{\vee} b \fatten{)} =
  \fatten{\{} a \fatten{\vee} b \fatten{\}}
\\
  \fatten[1pt]{(} a \fatten[1pt]{\vee} b \fatten[1pt]{)} =
  \fatten[1pt]{\{} a \fatten[1pt]{\vee} b \fatten[1pt]{\}}
\end{gather*}
\end{document}

Ergebnis

Vorsicht:

  • Die erhöhte Strichstärkenichtzur Breite des Symbols beitragen. Ein Makro kann dies kompensieren:

    \newcommand*{\fatvee}[1][1pt]{%
      \mathbin{%
        \kern.5\dimexpr(#1)\relax
        \fatten[{#1}]{\vee}%
        \kern.5\dimexpr(#1)\relax
      }%
    }
    

Vollständiges Beispiel mit Breitenkompensation:

\documentclass{article}
\usepackage{amsmath}% for environment "gather*"
\usepackage{pdfrender}

\newcommand*{\fatten}[1][.4pt]{%
  \textpdfrender{
    TextRenderingMode=FillStroke,
    LineWidth={\dimexpr(#1)\relax},
  }%
}

\newcommand*{\fatdef}[4][1pt]{%
  % #1: optional stroke width
  % #2: new macro for fattened symbol
  % #3: math atom type (\mathbin, \mathrel, ...)
  % #4: symbol
  \newcommand*{#2}{%
    #3{%
      \kern.5\dimexpr(#1)\relax
      \fatten[{#1}]{#4}%
      \kern.5\dimexpr(#1)\relax
    }%
  }%
}
\fatdef\fatvee\mathbin\vee
\fatdef\fatlparen\mathopen(
\fatdef\fatrparen\mathclose)
\fatdef\fatlbrace\mathopen\{
\fatdef\fatrbrace\mathclose\}

\begin{document}
\begin{gather*}
  (a \vee b) = \{a \vee b\}
\\
  \fatlparen a \fatvee b \fatrparen =
  \fatlbrace a \fatvee b \fatrbrace
\end{gather*}
\end{document}

Ergebnis mit Breitenkompensation

\leftund \rightkann durch ein Makro unterstützt werden, das den Rendering-Modus für die Formel innerhalb der Zäune zurücksetzt:

\documentclass{article}
\usepackage{amsmath}% for environment "gather*"
\usepackage{pdfrender}

\newcommand*{\fatten}[1][.4pt]{%
  \textpdfrender{
    TextRenderingMode=FillStroke,
    LineWidth={\dimexpr(#1)\relax},
  }%
}

\newcommand*{\fatdef}[4][1pt]{%
  % #1: optional stroke width
  % #2: new macro for fattened symbol
  % #3: math atom type (\mathbin, \mathrel, ...)
  % #4: symbol
  \newcommand*{#2}{%
    #3{%
      \kern.5\dimexpr(#1)\relax
      \fatten[{#1}]{#4}%
      \kern.5\dimexpr(#1)\relax
    }%
  }%
}

\newcommand*{\fatleftrightdef}[4][1pt]{%
  % #1: optional stroke width
  % #2: new macro name
  % #3: left fence
  % #4: right fence
  \newcommand*{#2}[1]{%
    \kern.5\dimexpr(#1)\relax
    \fatten[{#1}]{%
      \left#3%
      \kern.5\dimexpr(#1)\relax
      \textpdfrender{TextRenderingMode=Fill}{##1}%
      \kern.5\dimexpr(#1)\relax
      \right#4%
    }%
    \kern.5\dimexpr(#1)\relax
  }%
}
\fatdef\fatvee\mathbin\vee
\fatleftrightdef\fatleftrightparens()
\fatleftrightdef\fatleftrightbraces\{\}

\begin{document}
\begin{gather*}
  \left( \frac{a}{a} \vee \frac{b}{b} \right) =
  \left\{ \frac{a}{a} \vee \frac{b}{b} \right\}
\\
  \fatleftrightparens{ \frac{a}{a} \fatvee \frac{b}{b} } =
  \fatleftrightbraces{ \frac{a}{a} \fatvee \frac{b}{b} }
\end{gather*}
\end{document}

Ergebnis mit \left und \right

verwandte Informationen