我想将 Z[x] 写成与 Z 对齐的括号。我尝试过使用\lbrack
和,\rbrack
但结果基本相同,那么强制它保持在同一行的最佳方法是什么?
答案1
欢迎来到 TeX.SX!在我看来,这是一个字体选择的问题。话虽如此,这里有一种无需更改字体即可将括号的“底部”与基线对齐的方法:
\documentclass{article}
\usepackage{graphicx}
\makeatletter
\newcommand*{\raisedChar}[1]{%
\setbox\z@=\hbox{#1}%
\leavevmode
\raise\dp\z@\box\z@
}
\newcommand*{\@TextOrMathOpening}[1]{%
\TextOrMath{#1}{\mathopen{#1}}%
}
\newcommand*{\@TextOrMathClosing}[1]{%
\TextOrMath{#1}{\mathclose{#1}}%
}
\newcommand*{\raisedOpeningBracket}{%
\@TextOrMathOpening{\raisedChar{[}}%
}
\newcommand*{\raisedClosingBracket}{%
\@TextOrMathClosing{\raisedChar{]}}%
}
\newlength{\widthOfOpeningBracket}
\newlength{\widthOfClosingBracket}
\newlength{\heightOfZ}
\settowidth{\widthOfOpeningBracket}{[}
\settowidth{\widthOfClosingBracket}{]}
\settoheight{\heightOfZ}{Z}
\newcommand*{\scaledAndRaisedOpeningBracket}{%
\@TextOrMathOpening{%
\resizebox{\widthOfOpeningBracket}{\heightOfZ}{\raisedChar{[}}%
}%
}
\newcommand*{\scaledAndRaisedClosingBracket}{%
\@TextOrMathClosing{%
\resizebox{\widthOfClosingBracket}{\heightOfZ}{\raisedChar{]}}%
}%
}
\makeatother
% Abbreviations
\let\OB\raisedOpeningBracket
\let\CB\raisedClosingBracket
\let\sOB\scaledAndRaisedOpeningBracket
\let\sCB\scaledAndRaisedClosingBracket
\begin{document}
Z[x]\quad $Z[x]$
\medskip
Z\OB x\CB\quad $Z\OB x \CB$
\medskip
Z\sOB x\sCB\quad $Z\sOB x \sCB$
\end{document}
不过,这感觉有点儿太老套了。我不建议制作[
和]
激活字符,因为那会破坏太多东西,但你可以选择一对 Unicode 字符,然后继续使用\newunicodechar
如下所示这条信息或\DeclareUnicodeCharacter
像那条信息。