如何在某些文本下方指定圆括号?

如何在某些文本下方指定圆括号?

我需要类似的东西,\underbrace但不是花括号,而是文本下方的普通圆形水平括号。类似\textbottomtiebar但跨越整个文本。

我如何用 tex 实现这个目标?

答案1

这里有一个你想要的完全用 TeX 完成的事情的实现(没有 tikz,没有 mathtools,没有 pstricks,没有额外的东西,等等):

\documentclass{article}
\pagestyle{empty}
\makeatletter
\def\underparen#1{\mathop{\vtop{\m@th\ialign{##\crcr
   $\hfil\displaystyle{#1}\hfil$\crcr
   \noalign{\kern3\p@\nointerlineskip}%
   \upparenfill\crcr\noalign{\kern3\p@}}}}\limits}
\def\upparenfill{$\m@th \setbox\z@\hbox{$\braceld$}%
  \bracelu\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\braceru$}
\makeatother
\begin{document}
$\underparen{\textrm{The quick brown fox jumped over the lazy dog}}$
\end{document}

以下是使用 graphicx 包的另一种解决方案:

\documentclass[12pt]{article}
\usepackage{graphicx}
\makeatletter
\newdimen\myboxwidth
\newdimen\myboxheight
\newdimen\myboxdepth
\def\underparen#1{%
\setbox\z@\hbox{#1}%
\myboxwidth\wd\z@%
\myboxheight\ht\z@%
\myboxdepth\dp\z@%
\mathop{\box\z@}\limits_{\kern-\myboxdepth\resizebox{\myboxwidth}{\myboxheight}{\rotatebox{90}{(}}}}
\makeatother
\begin{document}
$\underparen{The quick brown fox jumped over the lazy dog}$
\end{document}

答案2

这是一个TikZ基于 的解决方案(事实上,这个解决方案可以被看作是Werner 提供的解决方案TikZ的版本PS-Tricks);这个想法是在文本的开头放置一个节点,在文本的结尾放置另一个节点,然后在这两个节点之间画一条曲线;可选参数可以\myunderline控制用于绘制线条的属性:

\documentclass{article}
\usepackage{tikz}

\newcommand\myunderline[2][]{%
  \tikz[overlay,remember picture] \node (a) {};#2%
  \tikz[overlay,remember picture] \node (b) {};
  \begin{tikzpicture}[overlay,remember picture,out=315,in=225,distance=0.2cm]
    \draw[#1] (a.center) to (b.center);
  \end{tikzpicture}}

\begin{document}

\myunderline{The quick brown fox jumped over the lazy dog}

\myunderline[red]{The quick brown fox jumped over the lazy dog}

\myunderline[blue,dashed]{The quick brown fox jumped over the lazy dog}

\end{document}

在此处输入图片描述

答案3

这是 Gonzalo 答案的一个轻微变体,使用了书法包将括号内的样式变得更像括号。

结果如下:

文本下方的括号

不幸的是,虚线不再可用。唯一允许的修改是颜色(尽管可以配置粗细)。

下面是代码,明显改编自 Gonzalo 的回答:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations}
\usepackage{calligraphy}

\newcommand\myunderline[2][black]{%
  \rule[-1.5ex]{0pt}{1.5ex}\tikz[overlay,remember picture,baseline=.5ex] \coordinate (a);#2%
  \tikz[overlay,remember picture,baseline=.5ex] \coordinate (b);
  \begin{tikzpicture}[overlay,remember picture]
    \draw[thick,/pgf/calligraphy/pen colour=#1,decorate,decoration={calligraphic straight parenthesis}] (b) to (a);
  \end{tikzpicture}}

\begin{document}

\myunderline{The quick brown fox jumped over the lazy dog}

\myunderline[red]{The quick brown fox jumped over the lazy dog}

\myunderline[blue]{The quick brown fox jumped over the lazy dog}

\end{document}

(我应该警告所有读者,书法包仍在开发中,因此应该被视为处于“alpha”级别。此外,您还需要spath可从同一站点获取的库。)

答案4

还有一些其他的替代方案\underbrace\underbracket比如mathtools包裹。但是,为了实现最佳控制,您可以使用图形包在文本下方绘制弧线。

以下最小示例显示了\underbrace\underbracket、之间的区别tipa\textbottomtiebar新创建的\textbottomtie宏。

在此处输入图片描述

\documentclass{article}
\usepackage{tipa}% http://ctan.org/pkg/tipa
\usepackage{mathtools}% http://ctan.org/pkg/mathtools
\usepackage{pst-node}% http://ctan.org/pkg/pst-node
\newcounter{tbtcntr}% \textbottomtie counter
\newcommand{\textbottomtie}[2][]{%
  \stepcounter{tbtcntr}% For uniqueness
  \psDefBoxNodes{tbt\thetbtcntr}{#2}% typeset contents
  \ncarc[linewidth=0.5pt,arcangle=-5,linestyle=solid,#1]{-}{tbt\thetbtcntr:bl}{tbt\thetbtcntr:br}% arc
}
\begin{document}
$\underbracket{\textrm{The quick brown fox jumped over the lazy dog}}$ \par
$\underbrace{\textrm{The quick brown fox jumped over the lazy dog}}$ \par
\textbottomtiebar{The quick brown fox jumped over the lazy dog} \par
\textbottomtie{The quick brown fox jumped over the lazy dog}
\end{document}

建设依赖\ncarcpstricks-5并默认设置角度为、宽度为0.5ptsolid线型为 的圆弧。或者,pstricks可以\ncarc通过 的可选参数传递 的所有丰富功能\textbottomtie[<options>]{...}。例如,传递linecolor=blue将排版蓝线,而offset=-5pt将垂直放下5pt。您也可以通过仅重新指定 来覆盖默认值(例如,使用linewidth=1pt,linestyle=dashed产生1pt虚线领带)。

节点使用pst-node并在文本参数的左下角 ( bl) 和右下角 ( br) 插入弧线(或连接线)尖端。如果需要,可以扩展此功能以适用于更大的文本组,例如段落等,minipage例如使用 。

由于这使用了pstricks,您的编译顺序应该是latex-> dvips->ps2pdfxelatex。此外,如果使用弧线不令人满意,您可以使用许多节点连接替代方案中的任何一个;只需查看pstricks文档VII 节点连接,第 58 页)。

请注意,您可能必须在下面进行一些垂直校正,\textbottomtie以避免它覆盖下面的文本。

相关内容