점선이 윗선처럼 동작하도록 큰 쐐기 기호 위에 점선을 삽입하는 방법은 무엇입니까?

점선이 윗선처럼 동작하도록 큰 쐐기 기호 위에 점선을 삽입하는 방법은 무엇입니까?

나는 동일한 기호 위에 실선처럼 보이도록 \bigwedge 및 \bigvee 기호 위에 점선을 삽입하고 싶습니다. 나는 그 기호 위에 실선을 삽입하는 방법을 알고 있습니다(예: \overline{\bigwedge}). 내가 물어봤으니까질문몇 년 전 문자 위에 점선 화살표를 추가하는 방법에 대해 거기에 있는 코드를 사용하려고 했습니다. 결과 코드:

\documentclass[11pt,a4paper,draft]{amsart}
\pagestyle{plain}
\usepackage[a4paper]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{tikz} %for dash

\makeatletter

\newcommand{\preclosure}[1]{%
  \vbox {\m@th\ialign{##\crcr
  \preclosurefill \crcr
  \noalign{\kern-\p@\nointerlineskip}
  $\hfil\displaystyle{#1}\hfil$\crcr}}}

%% fill with (short) minus signs
\def\preclosurefill{%
  $\m@th%
  \xleaders\hbox{$\mkern0mu\shortbar\mkern0mu$}\hfill%
  \shortbar%
$}

%% make the minus shorter to fit \dashedleftarrow
\def\shortbar{%
  \smash{\scalebox{0.4}[1.0]{$-$}}}
\makeatother

\begin{document}

In order to distinguish between lattice operations $\bigvee, \bigwedge$ in structure A, we use the following symbols: $\overline{\bigvee}, \overline{\bigwedge}$. Similarly, to distinguish between operations $\bigvee, \bigwedge$ in structure B, we use the following symbols: $\preclosure{\bigvee}, \preclosure{\bigwedge}$.

Inline: $\overline{\bigvee}_{\alpha \in I}$, $\preclosure{\bigvee}_{\alpha \in I}$.

In separate line:
\[
\overline{\bigvee_{\alpha \in I}}, \preclosure{\bigvee_{\alpha \in I}}.
\]
\end{document}

결과 문서:

결과 문서

다음과 같은 문제가 있습니다.

  1. 어떻게든 인라인 모드에서는 $\preclosure{\bigwedge}$ 기호가 $\bigwedge$보다 더 크게 만들어집니다.
  2. 점선은 수직 공간을 할당하지 않고 텍스트로 이어집니다.
  3. $\overline{\bigvee}$가 인라인일 때 윗선이 V 기호에 너무 가까워서 거의 삼각형처럼 보이는 것 같습니다. 확대해서 보면 그렇지 않은 것을 알 수 있는데, 100% 확대하면 너무 가까워 보입니다. 윗선을 조금 더 높게 이동하는 방법은 무엇입니까? 아니면 이것이 문제가 되지 않는다고 생각하시나요?

제가 작성한 것과 똑같은 코드를 사용할 필요는 없습니다. 이미 가지고 있는 코드를 사용했지만 성공적이지는 않았습니다. :)

답변1

나는 피할 것입니다 \overline:

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\newcommand{\dashover}[2][\mathop]{#1{\mathpalette\df@over{{\dashfill}{#2}}}}
\newcommand{\fillover}[2][\mathop]{#1{\mathpalette\df@over{{\solidfill}{#2}}}}
\newcommand{\df@over}[2]{\df@@over#1#2}
\newcommand\df@@over[3]{%
  \vbox{
    \offinterlineskip
    \ialign{##\cr
      #2{#1}\cr
      \noalign{\kern1pt}
      $\m@th#1#3$\cr
    }
  }%
}
\newcommand{\dashfill}[1]{%
  \kern-.5pt
  \xleaders\hbox{\kern.5pt\vrule height.4pt width \dash@width{#1}\kern.5pt}\hfill
  \kern-.5pt
}
\newcommand{\dash@width}[1]{%
  \ifx#1\displaystyle
    2pt
  \else
    \ifx#1\textstyle
      1.5pt
    \else
      \ifx#1\scriptstyle
        1.25pt
      \else
        \ifx#1\scriptscriptstyle
          1pt
        \fi
      \fi
    \fi
  \fi
}
\newcommand{\solidfill}[1]{\leaders\hrule\hfill}
\makeatother

\begin{document}

Text:
$\bigvee_{\alpha\in I}$,
$\fillover{\bigvee}_{\alpha \in I}$,
$\dashover{\bigvee}_{\alpha \in I}$.

Subscript:
$\scriptstyle\bigvee_{\alpha\in I}$,
$\scriptstyle\fillover{\bigvee}_{\alpha \in I}$,
$\scriptstyle\dashover{\bigvee}_{\alpha \in I}$.

Display:
\[
\bigvee_{\alpha \in I}
\fillover{\bigvee}_{\alpha \in I}
\dashover{\bigvee}_{\alpha \in I}.
\]
\end{document}

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

아마도 정의하고 싶을 것입니다.

\newcommand{\fbigvee}{\fillover{\bigvee}}

    \new명령{\dbigvee}{\dashover{\bigvee}}

명령 \fillover에는 \dashover개체 유형을 설정하는 선택적 인수가 있습니다. 기본값은 이지만 또는 \mathop일 수도 있으므로 다음을 사용할 수 있습니다.\mathrel\mathbin

\newcommand{\dvee}{\dashover[\mathbin]{\vee}}

그리고 $x\dvee y$생산할 것이다

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

\noalign에 대한 코드의 인수인 분리 공간을 조정할 수 있습니다 \df@@over. 그러나 매크로는 이외의 용도로는 최적화되지 않았으므로 \mathop다른 유형의 경우에는 추가 작업을 수행해야 합니다.

답변2

줄 간격에 약간 영향을 미치는 단점이 있을 수 있지만...

나는 약간의 추가 스택 간격을 추가하여 대체 \Overline합니다 .\overline

그리고 의 경우 패키지 구성을 \preclosure사용하여 인수의 수학 스타일을 유지하도록 수정했습니다 .\ThisStyle{...\SavedStyle...}scalerel

\preclosure나는 와 그 위의 선 사이의 간격이 충분하지 않다는 문제를 실제로 다루지 않았습니다 . 나는 더 작은 웨지를 사용하거나(허용되는 경우) 더 큰 줄 간격을 사용하는 것을 제안합니다.

\documentclass[11pt,a4paper,draft]{amsart}
\pagestyle{plain}
\usepackage[a4paper]{geometry}
\usepackage{scalerel,stackengine}
\stackMath
\usepackage[utf8]{inputenc}
\usepackage{tikz} %for dash
\def\Overline#1{\ThisStyle{\overline{\addstackgap[.4pt]{\SavedStyle#1}}}}

\makeatletter

\newcommand{\preclosure}[1]{%
  \ThisStyle{%
  \vbox {\m@th\ialign{##\crcr
  \preclosurefill \crcr
  \noalign{\kern-\p@\nointerlineskip}
  $\hfil\SavedStyle{#1}\hfil$\crcr}}}}

%% fill with (short) minus signs
\def\preclosurefill{%
  $\m@th%
  \xleaders\hbox{$\mkern0mu\shortbar\mkern0mu$}\hfill%
  \shortbar%
$}

%% make the minus shorter to fit \dashedleftarrow
\def\shortbar{%
  \smash{\scalebox{0.4}[1.0]{$-$}}}
\makeatother

\begin{document}

In order to distinguish between lattice operations $\bigvee, \bigwedge$ in structure A, we use the following symbols: $\Overline{\bigvee}, \Overline{\bigwedge}$. Similarly, to distinguish between operations $\bigvee, \bigwedge$ in structure B, we use the following symbols: $\preclosure{\bigvee}, \preclosure{\bigwedge}$.

Inline: $\Overline{\bigvee}_{\alpha \in I}$, $\preclosure{\bigvee}_{\alpha \in I}$.

In separate line:
\[
\Overline{\bigvee_{\alpha \in I}}, \preclosure{\bigvee_{\alpha \in I}}.
\]
\end{document}

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

관련 정보