15

I'm trying to typeset some homework that deals with set theory and in particular I'm trying to write the "model-theoretic" notion of forcing. I put model-theoretic in quotes because I don't know the proper name for it. There's the forcing relation given by $\Vdash$ (i.e. it looks like similar to ||-), and I'm looking for the relation that looks like ||=, i.e. kind of like the $\models$ symbol or $\vDash$ but with an extra vertical line.

The strange thing is that it looks like the AMS packages have $\nVDash$ (i.e. the negation of the symbol I'm looking for) available, but not $\VDash$. Detexify doesn't seem to be helping me here. Are there any symbols which look like the hypothetical $\VDash$ I'm looking for (hopefully within amsmath, amsfonts, or amssymb, as I usually like to cut down on the number of packages I need to install to maintain portability across machines)?

7
  • Have you seen How to look up a symbol or identify a math alphabet?
    – Werner
    Commented Nov 13, 2013 at 22:25
  • this isn't really helpful, i know, but ... the \VDash was inexplicably not included in the amsfonts, and thus does not appear in amssymb.sty. it is in the stix and xits fonts, but the style of those is not really compatible with the amsfonts. do you need it in any sizes other than the main text size? and what text size are you using? (i'm thinking of cobbling together something with a vertical rule and \vDash.) Commented Nov 13, 2013 at 22:30
  • 1
    Try \def\mmodels{\mathrel {||}\joinrel \Relbar}, which replicates the look of \models.
    – Werner
    Commented Nov 13, 2013 at 22:30
  • @Werner I did check the Comprehensive LaTeX symbol list as well as Detexify. Unfortunately the results I got were specific to the mathabx package and I tend to do my work on school computer lab machines where both privileges and disk space are limited.
    – badcook
    Commented Nov 13, 2013 at 22:47
  • @Werner I like your definition of $\mmodels$. The size ends up being a bit off from the $\vdash$ family of symbols (so it looks slightly weird next to the forcing relation) and I'll try to tweak it to make it fit, but in the interim it'll work. Thanks!
    – badcook
    Commented Nov 13, 2013 at 22:49

2 Answers 2

8

\models is defined as (use \pshow\models where \def\pshow#1{{\let\protect\show #1}}):

\mathrel{|}\joinrel\Relbar

In a similar fashion one could define \mmodels:

\DeclareRobustCommand{\mmodels}{\mathrel{||}\joinrel\Relbar}

Here's a visual of the two:

enter image description here

\documentclass{article}
\DeclareRobustCommand{\mmodels}{\mathrel{||}\joinrel \Relbar}
\begin{document}
$\models\ \mmodels$
\end{document}

Perhaps inserting \mkern-2mu between the two vertical rules would look a little better:

enter image description here

2
  • Wow, that \pshow command is useful! I'm having trouble running it for commands defined outside of LaTeX (probably due to the fact that I almost never use LaTeX at the commandline other than a simple invocation to compile a document). I run \usepackage{amsmath, amssymb, amsfonts}, but then whenever I try to run \pshow\Vdash the prompt tells me to enclose it in $ which I do and then I get a \GenericError.
    – badcook
    Commented Nov 13, 2013 at 23:01
  • @badcook: You can only use \pshow for macros defined as being robust, since they are \protected (and \Vdash is not; it's a font character). \pshow circumvents this protection by \letting \protect be the same as \show. See the UK TeX FAQ entry The definitions of LaTeX commands.
    – Werner
    Commented Nov 13, 2013 at 23:04
11

I can propose two workarounds, I call them \VDashA and \VDashB; the former is a bit wider than \vdash and \nVDash, the latter is shrinked horizontally, which makes for a slightly thinner bar.

\documentclass{article}
\usepackage{amsmath,amssymb,trimclip,adjustbox}

\newcommand{\VDashA}{%
  \mathrel{\text{\clipbox{0pt 0pt {.8\width} 0pt}{$\Vdash$}}\mkern.9mu}\vDash
}

\newcommand{\VDashB}{%
  \mathrel{
    \text{\clipbox{0pt 0pt {.8\width} 0pt}{$\Vdash$}}
    \mkern.9mu
    \text{\adjustbox{width=.87\width,height=\height}{$\vDash$}}
  }
}

\begin{document}

$\Vdash$

$\VDashA$

$\VDashB$

$\nVDash$

\end{document}

Note: in the image I've artificially reduced the vertical space between the lines just to show the symbols nearer to each other and ease the comparison.

enter image description here

3
  • Is there any way to remove the dependency on the trimclip and adjustbox packages? I'm trying to minimize my dependencies so that I can compile my documents on a multitude of different machines with a minimum of hassle.
    – badcook
    Commented Nov 14, 2013 at 21:15
  • @badcook I looked for a matching bar, but found none, that's why I resorted to clip the symbol.
    – egreg
    Commented Nov 14, 2013 at 21:22
  • Although I accepted @Werner's answer, I think that yours is more aesthetically pleasing; it just so happens that it's a hassle for me to install the trimclip and adjustbox packages to all the machines I might want to use LaTeX on.
    – badcook
    Commented Nov 15, 2013 at 20:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .