
¿Hay alguna forma en látex de cambiar el grosor vertical (alto) de la línea generada por el \overline
comando?
\[
\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 \overline
fó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}
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
, \sqrt
denominador en fracciones), los exponentes se establecen más bajos de lo habitual.
LuaLaTeX agrega un prefijo luatex
a las nuevas primitivas de LuaTeX (para evitar conflictos de nombres). El siguiente ejemplo establece \Umathoverbarrule
los 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}
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\LMpt
es el desplazamiento vertical sobre el elemento de la línea superior y .4\LMpt
es el grosor de la regla. Como parte de un \ThisStyle
argumento, an \LMpt
es 1pt it \displaystyle
y \textstyle
, pero se reduce proporcionalmente en \scriptstyle
y \scriptscriptstyle
, como se muestra en el MWE.
Uno puede desear o no agregar un \mathop
alrededor 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}
Por ejemplo, aquí cambiamos el desplazamiento a 1.4\LMpt
y el grosor a .6\LMpt
:
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}