Как увеличить (,), {,} и $\vee$ в математическом режиме?

Как увеличить (,), {,} и $\vee$ в математическом режиме?

Чтобы различать объектный язык и метаязык, я хочу, чтобы было достаточно заметное различие между знаками, упомянутыми в названии, как они используются в объектном языке, и как они используются в формальном метаязыке. Как мне лучше всего этого добиться?

Меня не устраивает небольшая разница между $\boldsymbol{{}()\vee} и ${}()\vee$.

Возможно, есть какие-то связанные символы вhttp://linorg.usp.br/CTAN/info/symbols/comprehensive/symbols-a4.pdfкоторые я мог бы использовать?

решение1

Я представляю \fat, что усиливает аргумент с помощью multi-offset-overlay. Хотя его можно вызвать в текстовом или математическом режиме, его аргумент обрабатывается в математическом режиме (если только не указано, $что будет обрабатывать его в текстовом режиме). Важно, что текущий математический стиль сохраняется. Для таких вещей, как \vee, проще определить \fveeв терминах \fatи \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}

введите описание изображения здесь

Если вы действительно хотите усилить эффект, вы можете добавить небольшое горизонтальное растяжение к результату (в данном случае 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}

введите описание изображения здесь

решение2

Решение на основе пакета pdfrenderдля дополнительной обводки символов линией определенной толщины.

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

Результат

Осторожность:

  • Увеличенная ширина штриха делаетнетвносят вклад в ширину символа. Макрос может это компенсировать:

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

Полный пример с компенсацией ширины:

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

Результат с компенсацией ширины

\leftи \rightможет поддерживаться макросом, который сбрасывает режим рендеринга для формулы внутри ограждений:

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

Результат с \left и \right

Связанный контент