¿Cómo insertar una línea discontinua sobre un símbolo de cuña grande para que la línea discontinua se comporte como lo haría una línea superpuesta?

¿Cómo insertar una línea discontinua sobre un símbolo de cuña grande para que la línea discontinua se comporte como lo haría una línea superpuesta?

Quiero insertar una línea discontinua sobre los símbolos \bigwedge y \bigvee de tal manera que se vea exactamente como una línea continua sobre los mismos símbolos. Sé cómo insertar una línea continua sobre esos símbolos (por ejemplo, \overline{\bigwedge}). Desde que le pregunté apreguntaHace unos años, sobre cómo agregar una flecha discontinua sobre una letra, intenté usar el código desde allí. Código resultante:

\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}

Documento resultante:

Documento resultante

Tengo los siguientes problemas:

  1. De alguna manera, en el modo en línea, el símbolo $\preclosure{\bigwedge}$ se hace más grande que solo $\bigwedge$.
  2. La línea discontinua no asigna espacio vertical y llega al texto.
  3. Me parece que cuando $\overline{\bigvee}$ está en línea, entonces la línea superior está demasiado cerca del símbolo V, lo que hace que parezca casi un triángulo. Si hago zoom, puedo ver que no es así, pero con un zoom del 100% parece demasiado cerca. ¿Cómo mover la línea un poco más arriba? ¿O crees que esto no es un problema?

No es necesario usar exactamente el mismo código que escribí, solo usé el que ya tenía, pero no con éxito :)

Respuesta1

Yo evitaría \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}

ingrese la descripción de la imagen aquí

Probablemente quieras definir

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

    \newcommand{\dbigvee}{\dashover{\bigvee}}

Los comandos \fillovery \dashovertienen un argumento opcional que establece el tipo de objeto. El valor predeterminado es \mathop, pero puede ser \mathrelo \mathbin, por lo que puedes usar

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

y $x\dvee y$produciría

ingrese la descripción de la imagen aquí

Es posible que desees ajustar el espacio de separación, el argumento \noalignen el código para \df@@over. Sin embargo, la macro no está optimizada para usos distintos a \mathop, se debe hacer algo más en el caso de otros tipos.

Respuesta2

Esto puede tener el inconveniente de afectar ligeramente el interlineado, pero...

Lo sustituyo \Overlinepor el que \overlineagrega un pequeño espacio de pila adicional.

Y para \preclosure, lo modifiqué para que conserve el estilo matemático del argumento, usando la \ThisStyle{...\SavedStyle...}construcción del scalerelpaquete.

Realmente no abordé la cuestión de la falta de espacio entre el \preclosurey la línea superior. Sugeriría utilizar cuñas más pequeñas (si está permitido) o utilizar un interlineado más grande.

\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}

ingrese la descripción de la imagen aquí

información relacionada