旋转闸机套件

旋转闸机套件

我对 TeX 还不太熟悉,所以我可能忽略了一些简单的东西,但我似乎无法调整该turnstile包生成的旋转门对象的高度。特别是,如果符号显示为下标,它确实不是调整以匹配周围的文本。有人知道解决方案吗?

答案1

垂直扩展的问题记录在结论文件部分旋转门文章.pdf

对于此软件包的未来版本,我们希望研究改变旋转门标志的高度。这将考虑上方和下方表达式的高度,类似于我们目前允许表达式宽度的方式。

特别是,由于没有提供垂直缩放,因此在带下标的表达式中使用时,符号将不会适当缩放(参见下面示例的第一部分)。

我想到的第一个想法是使用\scalebox(来自graphicx)包来缩放旋转门符号。以下示例显示了没有垂直缩放的实际行为,以及试图缓解此问题的新命令的定义和使用;当然,您可以随意进行最适合您需求的修改:

\documentclass{article}
\usepackage{amsmath}
\usepackage{turnstile}
\usepackage{graphicx}

\newcommand*\Subsststile[2]{%
  \,\scalebox{0.8}[0.5]{$\sststile[ss]{\textstyle#1}{\textstyle#2}$}\,
}

\begin{document}

The standard command with no vertical scaling:
\[
  A_{\Gamma\sststile[ss]{}{}P} \qquad A_{\Gamma\sststile[ss]{aaaa}{b}P} 
\]

The newly defined command, with vertical scaling:
\[
  A_{\Gamma\Subsststile{}{}P} \qquad A_{\Gamma\Subsststile{aaaa}{b}P} 
\]

\end{document}

旋转闸门示例

答案2

以下是可扩展的不同版本(但通过可选参数):

\documentclass[a4paper]{article}
\usepackage{amsmath}

\newcommand\turnstile[3][2]{%
  \mathrel{\calcturnstile{#1}%
  \setbox0=\hbox{$\tsvstyle\vdash$}%
  \setbox2=\hbox{$\vcenter{\copy0}$}%
  \hbox{\vrule\vphantom{$\tsvstyle\vdash$}}%
  \raise\dimexpr\ht0-\ht2\relax\hbox{$\vcenter{\offinterlineskip
   \ialign{\hfil\kern1pt$\tsstyle##\vphantom{by}$\kern1pt\hfil\cr
           \relax\if\relax\detokenize{#2}\relax\hphantom{\vdash}\kern-2pt\else#2\fi\cr
           \noalign{\kern1pt\hrule\kern1pt}%
           \relax\if\relax\detokenize{#2}\relax\hphantom{\vdash}\kern-2pt\else#3\fi\cr}}$}%
}}
\newcommand\Turnstile[3][2]{%
  \mathrel{\calcturnstile{#1}%
  \vcenter{\hbox{\vrule\vphantom{$\tsvstyle\models$}}}%
  \vcenter{\offinterlineskip
   \ialign{\hfil\kern1pt$\tsstyle##\vphantom{by}$\hfil\cr
           \relax\if\relax\detokenize{#2}\relax\hphantom{=}\kern-2pt\else#2\fi\cr
           \noalign{\kern1pt\hrule\kern\fontdimen22\tsfont2\hrule\kern1pt}%
           \relax\if\relax\detokenize{#2}\relax\hphantom{-}\kern-2pt\else#3\fi\cr}}
}}
\newcommand\calcturnstile[1]{%
  \ifcase#1\let\tsstyle\textstyle\let\tsvstyle\textstyle\let\tsfont\textfont\or
    \let\tsstyle\textstyle\let\tsvstyle\textstyle\let\tsfont\textfont\or
    \let\tsstyle\scriptstyle\let\tsvstyle\textstyle\let\tsfont\scriptfont\or
    \let\tsstyle\scriptscriptstyle\let\tsvstyle\scriptstyle\let\tsfont\scriptscriptfont\fi}

\begin{document}

\begin{gather*}
\textstyle \vdash \qquad \turnstile{}{}
\\
X\turnstile{}{}\Gamma\turnstile{a}{bbbb}P\Turnstile{a}{bbbb}Y\models Q
\\
A_{\Gamma\turnstile[3]{x,y}{L}P}
\\
A\turnstile[0]{x,y}{L}B
\end{gather*}
\end{document}

可选参数选择对象的样式:0 表示显示,1 表示文本,2 表示脚本,3 表示脚本脚本。默认值为 2。一对空的参数分别构建与\vdash和非常相似的符号\models

在此处输入图片描述

相关内容