如何才能将一个符号定义为\sqsubset
但没有顶线,而将另一个符号定义为\sqsubset
但没有底线?
编辑1:
此时我使用\[x\bm{\sqsubset} y\longeq x \ \raisebox{-0.1pt}{\rotatebox[origin=c]{270}{L}} \ y\wedge x \ \raisebox{-2pt}{\rotatebox[origin=c]{270}{\reflectbox{L}}} \ y\]
graphicx 和 bm 下的 ,以及 amsmath 等。
问题是让 \raisebox{-0.1pt}{\rotatebox[origin=c]{270}{L}}
和\raisebox{-2pt}{\rotatebox[origin=c]{270}{\reflectbox{L}}}
尽可能类似于\bm{\sqsubset}
。
我的解决方案可能令人满意,但不是最佳的。
答案1
您可以使用图片。
\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{l3draw}
\ExplSyntaxOn
\dim_new:N \l__sapiens_wd_dim
\dim_new:N \l__sapiens_ht_dim
\dim_new:N \l__sapiens_dp_dim
\dim_new:N \l__sapiens_tot_dim
\box_new:N \l__sapiens_base_box
\NewDocumentCommand{\genericsq}{m}
{
\mathrel{ \mathpalette \__sapiens_sq:nn { #1 } }
}
\cs_new_protected:Nn \__sapiens_sq:nn
{
\group_begin:
\hbox_set:Nn \l_tmpa_box { $\use:c{m@th}#1\sqsubset$ }
\dim_set:Nn \l__sapiens_wd_dim { \box_wd:N \l_tmpa_box }
\dim_set:Nn \l__sapiens_ht_dim { \box_ht:N \l_tmpa_box }
\dim_set:Nn \l__sapiens_dp_dim { \box_dp:N \l_tmpa_box }
\dim_set:Nn \l__sapiens_tot_dim { \box_ht:N \l_tmpa_box + \box_dp:N \l_tmpa_box }
\hbox_set:Nn \l__sapiens_base_box
{
{
\draw_begin:
\draw_linewidth:n { 0.05\l__sapiens_wd_dim }
\draw_cap_round:
\draw_join_round:
\draw_path_moveto:n { 0.1\l__sapiens_wd_dim , \l__sapiens_tot_dim - 0.04\l__sapiens_wd_dim }
\draw_path_lineto:n { 0.1\l__sapiens_wd_dim , 0.025\l__sapiens_wd_dim }
\draw_path_lineto:n { 0.9\l__sapiens_wd_dim , 0.025\l__sapiens_wd_dim }
\draw_path_use_clear:n { stroke }
\draw_end:
}
}
\__sapiens_print:n { #2 }
\group_end:
}
\cs_new_protected:Nn \__sapiens_print:n
{
\str_case:nn { #1 }
{
{lb}{}
{lt}
{
\box_scale:Nnn \l__sapiens_base_box { 1 } { -1 }
\hbox_set:Nn \l__sapiens_base_box
{
\box_move_up:nn { \l__sapiens_tot_dim } { \box_use:N \l__sapiens_base_box }
}
}
{rb}
{
\box_scale:Nnn \l__sapiens_base_box { -1 } { 1 }
}
{rt}
{
\box_scale:Nnn \l__sapiens_base_box { -1 } { -1 }
\hbox_set:Nn \l__sapiens_base_box
{
\box_move_up:nn { \l__sapiens_tot_dim } { \box_use:N \l__sapiens_base_box }
}
}
}
\box_move_down:nn { \l__sapiens_dp_dim } { \box_use:N \l__sapiens_base_box }
}
\ExplSyntaxOff
\NewDocumentCommand{\bsqsubset}{}{\genericsq{lb}}
\NewDocumentCommand{\tsqsubset}{}{\genericsq{lt}}
\NewDocumentCommand{\bsqsupset}{}{\genericsq{rb}}
\NewDocumentCommand{\tsqsupset}{}{\genericsq{rt}}
\begin{document}
$ A \sqsubset B \bsqsubset C \tsqsubset D \bsqsupset E \tsqsupset F$
$ \sqsubset\bsqsubset \scriptstyle\sqsubset\bsqsubset $
\end{document}
答案2
答案3
使用 graphicx 包下的 \raisebox{-0.1pt}{\rotatebox[origin=c]{270}{L}}和 \raisebox{-2pt}{\rotatebox[origin=c]{270}{\reflectbox{L}}}。