편집하다

편집하다

다음 MWE에서 세 가지 이진 관계 기호를 고려하세요.

\documentclass[]{article}
\usepackage{MnSymbol}
\begin{document}

$\vdash$

$\Vdash$

$\Vvdash$

\end{document}

두 번째 관계 기호의 수직 막대 사이의 공간을 어떻게 닫아 두 번째 수평선이 직사각형에서 돌출되고 세 번째 수평선이 두 개의 정렬된 직사각형에서 돌출되도록 할 수 있습니까? 첫 번째 이진 관계 기호의 수직 막대에 수평 막대를 배치하여 가장 왼쪽 수직 막대 없이 새로 형성된 두 번째 관계 기호와 같도록 하려면 어떻게 해야 합니까?

솔루션에서 조정이 허용되면 유용할 것입니다.

다음은 내가 설명하려는 내용을 제안하는 아마추어 그림에 대한 드롭박스 링크입니다.

https://www.dropbox.com/s/xbujdv3cqwy9u5q/20150731_004151.jpg?dl=0

답변1

이것이 당신이 원하는 것입니까?

\documentclass[]{article}
\usepackage{MnSymbol}

\usepackage{pict2e}

\makeatletter
\DeclareRobustCommand{\cvdash}{%
  \mathrel{\mathpalette\cvd@sh\relax}
}

\newcommand{\cvd@sh}[2]{%
  \sbox\z@{$\m@th#1\vdash$}%
  \setlength{\unitlength}{1.1\wd\z@}%
  \begin{picture}(1,0.75)
  \roundcap\roundjoin
  \polyline(0.125,0)(0.4,0)(0.4,0.75)(0.125,0.75)
  \polyline(0.4,0.375)(0.925,0.375)
  \end{picture}%
}

\DeclareRobustCommand{\cVdash}{%
  \mathrel{\mathpalette\cVd@sh\relax}
}
\newcommand{\cVd@sh}[2]{%
  \sbox\z@{$\m@th#1\vdash$}%
  \setlength{\unitlength}{1.1\wd\z@}%
  \begin{picture}(1,0.75)
  \roundcap\roundjoin
  \polyline(0.125,0)(0.4,0)(0.4,0.75)(0.125,0.75)(0.125,0)
  \polyline(0.4,0.375)(0.925,0.375)
  \end{picture}%
}

\DeclareRobustCommand{\cVvdash}{%
  \mathrel{\mathpalette\cVvd@sh\relax}%
}

\newcommand{\cVvd@sh}[2]{%
  \sbox\z@{$\m@th#1\vdash$}%
  \setlength{\unitlength}{1.1\wd\z@}%
  \begin{picture}(1,0.75)
  \roundcap\roundjoin
  \polyline(0.125,0)(0.55,0)(0.55,0.75)(0.125,0.75)(0.125,0)
  \polyline(.3375,0)(.3375,0.75)
  \polyline(0.6,0.375)(0.925,0.375)
  \end{picture}%
}
\makeatother

\begin{document}

$\vdash\cvdash$

$\Vdash\cVdash$

$\Vvdash\cVvdash$

\end{document}

여기에 이미지 설명을 입력하세요

답변2

다음은 패키지를 기반으로 한 버전입니다 turnstile. 왼쪽에는 질문에 사용한 세 개의 개찰구의 표준 버전이 있습니다. 오른쪽에는 패키지 \makever명령의 수정된 버전을 사용하는 버전이 있습니다.

\documentclass{article}
\usepackage{turnstile,calc}
\newcommand\mysststile{% single vertical with fins pointing backwards
  \let\oldmakever\makever
  \let\makever\mymakever
  \sststile{}{}%
  \let\makever\oldmakever}
\newcommand\mydststile{% double turnstile with closed top
  \let\oldmakever\makever
  \let\makever\mymakever
  \dststile{}{}%
  \let\makever\oldmakever}
\newcommand\mytststile{% triple turnstile with closed top
  \let\oldmakever\makever
  \let\makever\mymakever
  \tststile{}{}%
  \let\makever\oldmakever}
\newcommand{\mymakever}[4]
{% modified from \makever command
  \setlength\fboxsep{0pt}%
  \setlength\fboxrule{#2}%
  \ifthenelse{\equal{#1}{s}}{%
    \rule[.5#3-\fboxrule]{#4}{#2}%
    \hspace*{-2\fboxrule}%
    \makebox[\fboxrule]{\rule[-.5#3]{#4}{#2}}%
    \rule[-0.5#3]{#2}{#3}%
  }{}
  \ifthenelse{\equal{#1}{d}}{\fbox{%
      \rule[-0.5#3+\fboxrule]{0pt}{#3-2\fboxrule}%
      \hspace{#4}%
      \rule[-0.5#3+\fboxrule]{0pt}{#3-2\fboxrule}%
    }}{}
  \ifthenelse{\equal{#1}{t}}{\fbox{%
      \rule[-0.5#3+\fboxrule]{0pt}{#3-2\fboxrule}%
      \hspace{#4}%
      \rule[-0.5#3+\fboxrule]{#2}{#3-2\fboxrule}%
      \hspace{#4}%
      \rule[-0.5#3+\fboxrule]{0pt}{#3-2\fboxrule}%
    }%
  }{}%
}

\begin{document}

$\sststile{}{}\; \mysststile$

$\dststile{}{}\; \mydststile$

$\tststile{}{}\; \mytststile$

\end{document}

개찰구 변형

편집하다

수정된 개찰구의 수직 규칙이 세 기호 모두에 대한 원본의 높이 및 깊이와 일치하도록 높이를 수정하고 결과적으로 세 가지 높이도 동일한지 확인합니다.

관련 정보