윗선 두께

윗선 두께

명령으로 생성된 선의 수직 두께(높이)를 변경하는 방법이 라텍스에 있습니까 \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}

결과 TeX

보시다시피, 선과 공식 사이의 간격은 선의 두께에 따라 변경됩니다(요소 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}

결과 LuaLaTeX

답변2

기존 정의와 씨름하기보다는 스택을 사용하여 자체적으로 설계할 수 있습니다. 여기서는 1.2\LMpt윗줄 항목 위의 수직 오프셋이며 .4\LMpt룰 두께입니다. 인수 의 일부로 \ThisStylean \LMpt은 1pt it \displaystyleand \textstyle이지만 MWE에 표시된 대로 \scriptstyleand 에서는 비례적으로 감소됩니다.\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}

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

관련 정보