框高度侵入前一行。为什么?

框高度侵入前一行。为什么?

我决定尝试给出一个更曲折的答案美国高中教科书的弧线表示法更佳那又如何沃纳提供。我还认为这是一个很好的机会来练习自从我发布最初的问题以来在过去的一年里学到的一些技巧。

以下是我的方法:

\documentclass{article}
\usepackage{tikz}

\makeatletter

\newsavebox\ae@frown@box
\savebox\ae@frown@box{\tikz \path[fill] (0,0) to [out=50,in=130] 
                                        (2,0) to [out=150,in=30] 
                                        cycle;}
\def\ae@frown{\usebox{\ae@frown@box}}

\newsavebox\ae@tmp@box
\newcommand\arc[1]{%
  \sbox\ae@tmp@box{#1}%%
  \ooalign{%%
    \raisebox{\ht\ae@tmp@box}{%%
      \resizebox{\wd\ae@tmp@box}{!}{%%
        \ae@frown}}%%
    \cr
    #1}}

\makeatother

\pagestyle{empty}
\begin{document}

Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae,
aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli
appellantur. Hi omnes lingua, institutis, legibus inter se differunt.
\arc{OK}\ 
\arc{ABC}\ 
\fbox{\arc{Too much}}

\end{document}

在此处输入图片描述

效果并不完全符合我的预期。对于两个或三个字母的弧形名称,我对外观很满意,但不知何故,在形成段落时没有考虑到高度。起初我以为框的高度没有被错误计算。那时我加入了\fbox{...}。但\fbox似乎高度是正确的。更有趣的是(或者我认为是这样)如果我使用以下文本

Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae,
aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli
appellantur. Hi omnes lingua, institutis, legibus inter se differunt.
\arc{OK}
\rule{2pt}{1in}

在此处输入图片描述

规则的高度也在某种程度上被忽视了。

显然我做错了。有人能解释一下发生了什么吗?

后记:我没有使用 Werner 的\setbox9=....方法,因为我不完全确定我是否理解该方法(我不确定我是否会用该方法覆盖某些内容)。

答案1

\ooalign更改换行参数(\baselineskip, \lineskip, \lineskiplimit)。因此它应该归入一组:

\documentclass{article}
\usepackage{tikz}

\makeatletter

\newsavebox\ae@frown@box
\savebox\ae@frown@box{\tikz \path[fill] (0,0) to [out=50,in=130]
                                        (2,0) to [out=150,in=30]
                                        cycle;}
\def\ae@frown{\usebox{\ae@frown@box}}

\newsavebox\ae@tmp@box
\newcommand\arc[1]{%
  \begingroup
    \sbox\ae@tmp@box{#1}%%
    \ooalign{%%
      \raisebox{\ht\ae@tmp@box}{%%
        \resizebox{\wd\ae@tmp@box}{!}{%%
          \ae@frown}}%%
      \cr
      #1% 
    }%
  \endgroup
}  

\makeatother

\pagestyle{empty}
\begin{document}

Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae,
aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli
appellantur. Hi omnes lingua, institutis, legibus inter se differunt.
\arc{OK}\ 
\arc{ABC}\
\fbox{\arc{Too much}}

\end{document}

结果

相关内容