Grosor de la línea superior

Grosor de la línea superior

¿Hay alguna forma en látex de cambiar el grosor vertical (alto) de la línea generada por el \overlinecomando?

\[
\overline{\overline{A \vee B}} = \overline{\overline{A} \wedge \overline{B}}
\]

Respuesta1

Texas

El grosor de regla predeterminado θ es 0,4 puntos en TeX. Una \overlinefórmula se establece como \vbox:

  • En la parte superior hay un núcleo de θ
  • La barra sigue con espesor θ
  • El espacio con la fórmula tiene una altura de 3θ.
  • La fórmula sigue.

θ se toma de fontdimen 8 de la familia de fuentes matemáticas 3. Ejemplo:

\documentclass{article}

\begin{document}
  $\overline{abc}$
  \fontdimen8\textfont3=5pt
  $\overline{abc}$
\end{document}

Resultado de texto

Como puede verse, también el espacio entre la línea y la fórmula cambia con el grosor de la línea (incluso con el factor 3).

LuaTeX/LuaLaTeX

LuaTeX hace que los parámetros sean configurables:

  • \Umathoverbarkern: el espacio en blanco encima de la línea
  • \Umathoverbarrule: grosor de la línea
  • \Umathoverbarvgap: el espacio entre la línea y la fórmula

Estos valores se pueden establecer para los ocho estilos matemáticos. LuaTeX también ofrece estilos estrechos como:

  • \crampeddisplaystyle
  • \crampedtextstyle
  • \crampedscriptstyle
  • \crampedscriptscriptstyle

En estilos reducidos, utilizados para fórmulas debajo de barras ( \overline, \sqrtdenominador en fracciones), los exponentes se establecen más bajos de lo habitual.

LuaLaTeX agrega un prefijo luatexa las nuevas primitivas de LuaTeX (para evitar conflictos de nombres). El siguiente ejemplo establece \Umathoverbarrulelos ocho estilos:

\documentclass{article}

\newcommand*{\setumath}[2]{%
  \csname luatexUmath#1\endcsname\displaystyle=#2\relax
  \csname luatexUmath#1\endcsname\luatexcrampeddisplaystyle=#2\relax
  \csname luatexUmath#1\endcsname\textstyle=#2\relax
  \csname luatexUmath#1\endcsname\luatexcrampedtextstyle=#2\relax
  \csname luatexUmath#1\endcsname\scriptstyle=#2\relax
  \csname luatexUmath#1\endcsname\luatexcrampedscriptstyle=#2\relax
  \csname luatexUmath#1\endcsname\scriptscriptstyle=#2\relax
  \csname luatexUmath#1\endcsname\luatexcrampedscriptscriptstyle=#2\relax
}

\begin{document}
  \newcommand*{\test}[1]{%
    \csname check@mathfonts\endcsname
    \setumath{overbarrule}{#1}%
    $\overline{abc}$ % additional space
  }
  \test{.1pt}
  \test{.4pt}
  \test{1.6pt}
  \test{6.4pt}
\end{document}

Resultado LuaLaTeX

Respuesta2

En lugar de intentar competir con la definición existente, se podría diseñar la suya propia, utilizando pilas. Aquí el 1.2\LMptes el desplazamiento vertical sobre el elemento de la línea superior y .4\LMptes el grosor de la regla. Como parte de un \ThisStyleargumento, an \LMptes 1pt it \displaystyley \textstyle, pero se reduce proporcionalmente en \scriptstyley \scriptscriptstyle, como se muestra en el MWE.

Uno puede desear o no agregar un \mathopalrededor de la definición.

\documentclass{article}
\usepackage[usestackEOL]{stackengine}
\usepackage{scalerel}
\def\myoverline#1{\ThisStyle{%
  \setbox0=\hbox{$\SavedStyle#1$}%
  \stackengine{1.2\LMpt}{$\SavedStyle#1$}{\rule{\wd0}{.4\LMpt}}{O}{c}{F}{F}{S}%
}}
\begin{document}
\[
\myoverline{\myoverline{A \vee B}} = \myoverline{\myoverline{A} \wedge
\myoverline{B}}
\]\[
\scriptscriptstyle
\myoverline{\myoverline{A \vee B}} = \myoverline{\myoverline{A} \wedge
\myoverline{B}}
\]
\end{document}

ingrese la descripción de la imagen aquí

Por ejemplo, aquí cambiamos el desplazamiento a 1.4\LMpty el grosor a .6\LMpt:

ingrese la descripción de la imagen aquí

Respuesta3

La siguiente respuesta no es una solución, sino un truco sencillo adecuado para algunos propósitos (ynopara todos los propósitos). El \overbracket{}comando en el paquete.herramientas matemáticastiene dos argumentos (grosor de la regla y altura del corchete):

\overbracket[〈rule thickness〉] [〈bracket height〉]{〈arg〉}

Supongamos que establece un grosor de regla menor queXpunto Si establece la altura del soporte en-Xpt entonces obtendrás una línea (los valores entre 0 y menos el grosor de la regla también producen una línea, pero podrían ser visibles pequeñas anomalías en sus extremos).

La solución no es estrictamente "correcta", ya que la línea resultante es ligeramente más corta que la de \overline{}y la distancia entre líneas no será la misma que en \overline{\overline{}}. Pero para algunos propósitos el resultado puede ser bastante similar.

En el siguiente ejemplo de trabajo mínimo se definen dos comandos: en \myov{}el espesor se establece en el preámbulo; Hay \myovline{}un argumento para ello. Configuré la altura del soporte en -1 pt porque todos los espesores en el MWE están por debajo de 1 pt:

\documentclass{article}
\usepackage{mathtools}
\newcommand*{\myov}[1]{\overbracket[0.65pt][-1pt]{#1}}
\newcommand*{\myovline}[2]{\overbracket[#2][-1pt]{#1}}
\begin{document}
$$\overline{A \vee B} = \overline{\overline{A} \wedge \overline{A}}$$ % Default thickness = 0.4 pt
$$\myovline{A \vee B}{0.4pt} = \myovline{\myovline{A}{0.4pt} \wedge \myovline{A}{0.4pt}}{0.4pt}$$
$$\myovline{A \vee B}{0.6pt} = \myovline{\myovline{A}{0.8pt} \wedge \myovline{A}{0.8pt}}{0.8pt}$$
$$\myov{A \vee B} = \myov{\myov{A} \wedge \myov{A}}$$
\end{document}

ingrese la descripción de la imagen aquí

información relacionada