![尖角括号较少](https://linux22.com/image/246406/%E5%B0%96%E8%A7%92%E6%8B%AC%E5%8F%B7%E8%BE%83%E5%B0%91.png)
我正在寻找一种方法来漂亮地显示 UML 刻板标题,包括尖括号,就像您在这里看到的那样:
$\mathtt{\ll metaclass\gg}$
然而,正如你在这里看到的,我想到的是
括号太尖(我希望你明白我的意思)并且括号和表达式之间的间距太大。
简短版本:有人知道根据括号的命令吗?
答案1
使用T1
字体编码访问\guillemotleft
和\guillemotright
:
\documentclass{article}
\usepackage[T1]{fontenc}% http://ctan.org/pkg/fontenc
\begin{document}
$\ll$~\texttt{metaclass}~$\gg$ \par
\guillemotleft~\texttt{metaclass}~\guillemotright \par
\guillemotleft$\;$\texttt{metaclass}$\;$\guillemotright \par
\guillemotleft\,\texttt{metaclass}\,\guillemotright \par
\guillemotleft\texttt{metaclass}\guillemotright
\end{document}
上面的序列列出了一些间距选项:~
、、$\;$
和\,
({}
无)。
答案2
这是一个基于 TikZ 的解决方案:
\documentclass{article}
\usepackage{tikz}
\newcommand\umlst[1]{%
\kern.05em%
\raisebox{-.025ex}{%
\begin{tikzpicture}[scale=.20,line width=.15ex,join=round,cap=round]
\draw ( 0,0) -- +(-.5,.5) -- +(0,1);
\draw (.5,0) -- +(-.5,.5) -- +(0,1);
\end{tikzpicture}%
}%
\kern.15em%
\texttt{#1}%
\kern.10em%
\raisebox{-.025ex}{%
\begin{tikzpicture}[scale=.20,line width=.15ex,join=round,cap=round]
\draw ( 0,0) -- +(.5,.5) -- +(0,1);
\draw (.5,0) -- +(.5,.5) -- +(0,1);
\end{tikzpicture}
}%
\kern-.25em%
}
\begin{document}
\umlst{Metaclass}\par
\umlst{ObjectCreator}\par
\umlst{RegexLexerMeta}\par
\end{document}
答案3
我想到了三个解决方案:
\documentclass[12pt,a4paper]{article}
\usepackage{graphicx}
% These two packages contain the symbols I hacked (a bit) to get the desired effect:
\usepackage{MnSymbol}
\usepackage{skak}
% Here the symbols are hacked (rotated and shifted as needed):
\newcommand{\gmathleft}{\rotatebox{90}{$\sqdoublefrown$}}
\newcommand{\gmathright}{\rotatebox{90}{$\sqdoublesmile$}}
\newcommand{\gleft}{\qside}
\newcommand{\gright}{\kern-0.01em\raisebox{\depth-.35pt}{\rotatebox{180}{\qside}}}
\begin{document}
% This is the first solution: just switch to typewriter font:
\texttt{<<metaclass>>}
% Here's the solution with MnSymbol:
\gmathleft\texttt{metaclass}\gmathright
% Here's the skak-based solution:
\gleft\texttt{metaclassm}\gright
\end{document}
如您所见,符号MnSymbol
仅在数学模式下有效,而skak
符号是文本模式。
以下是三种解决方案: