1

In order to distinguish between object language and meta language I want a rather visible difference between the signs mentioned in the title as used in the object language and as used in the formal meta language. How do I best achieve this?

I am not satisfied with the minor difference between $\boldsymbol{{}()\vee} and ${}()\vee$.

Perhaps there are some related symbols in http://linorg.usp.br/CTAN/info/symbols/comprehensive/symbols-a4.pdf that I could use?

15
  • Maybe changing the font: \mathtt{}?
    – Sigur
    Feb 18, 2015 at 18:14
  • @Sigur That does not cut it.
    – Sapiens
    Feb 18, 2015 at 18:18
  • Sorry, I'm not following you. Try to clarify your question.
    – Sigur
    Feb 18, 2015 at 18:20
  • Could you add an image or a minimal example of what exactly should be fat? bold font in math mode would be \mathbf{} or \boldsymbol{}
    – MaxNoe
    Feb 18, 2015 at 18:22
  • 1
    Fatten could mean "bolden", it could mean "widen" or it could mean "bolden and widen". Which do you seek? Feb 18, 2015 at 20:21

2 Answers 2

1

I introduce \fat that emboldens the argument with a multi-offset-overlay. While it can be invoked in text mode or math mode, its argument is processed in math mode (unless delimited by $ which will process it in text mode). Importantly, the current math style is preserved. For things like \vee, it is easier to define \fvee in terms of \fat and \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}

enter image description here

If you really wanted to enhance the effect, you could add a small horizontal stretch to the result (in this case 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}

enter image description here

0

A solution based on package pdfrender to additionally stroke the symbols with a line width.

\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}

Result

Caution:

  • The increased stroke width does not contribute to the width of the symbol. A macro can compensate this:

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

Full example with width compensation:

\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}

Result with width compensation

\left and \right can be supported by a macro that resets the rendering mode for the formula inside the fences:

\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}

Result with \left and \right

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.