
명령으로 생성된 선의 수직 두께(높이)를 변경하는 방법이 라텍스에 있습니까 \overline
?
\[
\overline{\overline{A \vee B}} = \overline{\overline{A} \wedge \overline{B}}
\]
답변1
텍스
기본 규칙 두께 θ는 TeX에서 0.4pt입니다. 수식 \overline
은 다음과 같이 설정됩니다 \vbox
.
- 맨 위에는 θ의 커른이 있습니다.
- 막대는 두께 θ를 따릅니다.
- 공식과의 간격은 높이가 3θ입니다.
- 공식은 다음과 같습니다.
θ는 수학 글꼴 모음 3의 Fontdimen 8에서 가져옵니다. 예:
\documentclass{article}
\begin{document}
$\overline{abc}$
\fontdimen8\textfont3=5pt
$\overline{abc}$
\end{document}
보시다시피, 선과 공식 사이의 간격은 선의 두께에 따라 변경됩니다(요소 3의 경우에도).
LuaTeX/LuaLaTeX
LuaTeX는 매개변수를 구성 가능하게 만듭니다:
\Umathoverbarkern
: 선 위의 공백\Umathoverbarrule
: 선 두께\Umathoverbarvgap
: 선과 수식 사이의 간격
이 값은 8가지 수학 스타일 모두에 대해 설정할 수 있습니다. LuaTeX는 또한 다음과 같은 비좁은 스타일을 제공합니다.
\crampeddisplaystyle
\crampedtextstyle
\crampedscriptstyle
\crampedscriptscriptstyle
막대 아래 수식에 사용되는 비좁은 스타일( 분수로 표시된 \overline
, \sqrt
, 분모)에서는 지수가 평소보다 낮게 설정됩니다.
LuaLaTeX는 LuaTeX의 새로운 기본 요소에 접두사를 추가합니다 luatex
(이름 충돌을 피하기 위해). 다음 예 \Umathoverbarrule
에서는 8가지 스타일을 모두 설정합니다.
\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}
답변2
기존 정의와 씨름하기보다는 스택을 사용하여 자체적으로 설계할 수 있습니다. 여기서는 1.2\LMpt
윗줄 항목 위의 수직 오프셋이며 .4\LMpt
룰 두께입니다. 인수 의 일부로 \ThisStyle
an \LMpt
은 1pt it \displaystyle
and \textstyle
이지만 MWE에 표시된 대로 \scriptstyle
and 에서는 비례적으로 감소됩니다.\scriptscriptstyle
\mathop
정의 주위에 를 쌓기를 원할 수도 있고 원하지 않을 수도 있습니다 .
\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}
예를 들어 여기서는 오프셋을 으로 변경 1.4\LMpt
하고 두께를 다음과 같이 변경합니다 .6\LMpt
.
답변3
다음 답변은 해결책이 아니지만 일부 목적에 적합한 쉬운 트릭입니다.~ 아니다모든 목적을 위해). \overbracket{}
패키지의 명령수학 도구두 가지 인수(규칙 두께 및 브래킷 높이)가 있습니다.
\overbracket[〈rule thickness〉] [〈bracket height〉]{〈arg〉}
다음보다 작은 규칙 두께를 설정한다고 가정해 보겠습니다.엑스pt. 브래킷 높이를 다음으로 설정하면-엑스pt 그런 다음 선을 얻습니다(0에서 규칙 두께를 뺀 값 사이의 값도 선을 생성하지만 극단에서는 작은 예외가 보일 수 있음).
\overline{}
결과 선은 의 선보다 약간 짧고 선 사이의 거리는 의 선과 동일하지 않기 \overline{\overline{}}
때문에 솔루션은 엄격하게 "올바른" 것이 아닙니다. 그러나 어떤 목적에서는 결과가 충분히 유사할 수 있습니다.
다음 최소 작업 예제에서는 두 가지 명령이 정의됩니다. \myov{}
두께는 프리앰블에서 설정됩니다. \myovline{}
그것에 대한 주장이 있습니다 . MWE의 모든 두께가 1pt 미만이므로 브래킷 높이를 -1pt로 설정했습니다.
\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}