![如何改进我的unicode / tikz启用的大积分符号?](https://linux22.com/image/335687/%E5%A6%82%E4%BD%95%E6%94%B9%E8%BF%9B%E6%88%91%E7%9A%84unicode%20%2F%20tikz%E5%90%AF%E7%94%A8%E7%9A%84%E5%A4%A7%E7%A7%AF%E5%88%86%E7%AC%A6%E5%8F%B7%EF%BC%9F.png)
我发现以下内容大积分符号在我问了(几乎?)重复的问题之后是否有一个更加符合印刷要求的 bigints 包?并决定给出的解决方案不是很好。我发现 unicode 字符的U+2320 TOP HALF INTEGRAL
实现方式\inttop
为unicode-math
,U+2321 BOTTOM HALF INTEGRAL
实现方式为\intbottom
,所以我在 TikZ 中快速尝试了一下。(还有U+23AE INTEGRAL EXTENSION
)。它看起来像这样:(第 (1) 行是比较的正常值\int
)
我看到的问题-
- 左右两侧的空白太多
- 基线混乱
- 静态角度倾斜导致与足够大的被积函数相交
- 使用
\draw[line width = 1pt]
可能并不完美,但在印刷上非常接近完美。 - 这绝对不是字体不可知的(CMU 甚至没有符号)但我对此没意见。
我决定从头开始再试一次,我认为这可能更接近一个好的结果(尽管目前还不能使用)。它的代码将遵循第一次尝试的代码。在这个中,
- 基线问题已修复,但空格尚未修复(我应该只留下几个
\!
s 吗?) - 静态角现在对于短积分函数也是一个问题
- unicode 字符 ⎮ 似乎更好,但我需要以某种方式实现一个 for 循环才能使其连接。
有人能帮我解决这些问题吗?如果不是成品,请提供一张制作完成命令的草图,我将不胜感激。特别是,我希望能够测量被积函数的宽度和高度,以帮助我正确设置坐标(我一直在尝试\widthof
,\heightof
但我无法让它们正常工作),以及如何测量正确的角度来旋转我的积分符号(我甚至不确定如何以示意图的方式做到这一点)
代码+示例输出:
\documentclass[leqno]{article}
\usepackage{tikz}
\usepackage{xparse}
\RequirePackage{amsmath,amssymb}
%\usetikzlibrary{calc}
\RequirePackage{unicode-math}
\setmathfont{xits-math.otf}
\newcommand{\dx}{\text{d}x} %maybe I shouldnt use both newcommand and xparse
\NewDocumentCommand{\mybigint}{ m m m }{%
%
\vcenter{\hbox{%
\begin{tikzpicture}[rotate = -15, transform shape]
\tikzstyle text node=[rotate=15]
\node[anchor=west, align=left] (body){$\phantom{ #3 }$};
\node[text node, anchor=west] {$ \phantom{#1} #3 $};
\node at (body.north west) (top) {$\inttop $};
\node at (body.south west) (bottom) {$\intbottom$};
\draw[black,line width = 1pt] (body.north west) -- (body.south west);
\node[text node] at (bottom.east) {\scriptsize $#1$};
\node[text node, anchor = south] at (top.east) {\sczriptsize $#2$};
\end{tikzpicture}
}}%
%
}
\begin{document}
\begin{align}
\int_A^B f(x) \ \dx +1
&= \int_A^B f(x) \ \dx + 1 \\
&= \mybigint{A}{B}{f(x) \ \dx} +1\\
&= \mybigint{A}{B}{\left[\begin{matrix} 1& 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix}\right] \ \dx} +1\\
&= \mybigint{A}{B}{\left[\begin{matrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \\ 7 & 8 \end{matrix}\right] \ \dx} +1\\
&= \mybigint{A}{B}{\left[\begin{matrix} 1 \\2 \\ 3 \\ 4 \\ 5 \\ 6 \\ 7 \\ 8 \\ 9 \end{matrix}\right] \ \dx} +1\\
&= \mybigint{A}{B}{\left[\begin{matrix} 1 \\2 \\ 3 \\ 4 \\ 5 \\ 6 \\ 7 \\ 8 \\ 9 \\ 10 \\ 11 \\ 12 \end{matrix}\right] \ \dx } + 1
\end{align}
%found the symbols at http://www.latex-community.org/forum/viewtopic.php?f=48&t=11764
\end{document}
第二次尝试的代码:
\NewDocumentCommand{\mybigint}{ m m m }{%
%
\hbox{%
\begin{tikzpicture}[ baseline = 0]
\tikzstyle rotation=[rotate=-15 ]
\node[anchor = base] (body) {$\phantom{ #1 } #3$};
\node[rotation] at (body.north west) (top) {$\displaystyle \inttop $};
\node at (body.south west) (belowtop) {};
\node[rotation] at (belowtop.west) (bottom) {$\intbottom$};
\node[rotation] at ($(top)!0.5!(bottom)$) {$⎮$};
\node[] at (bottom.east) {\scriptsize $\!\!\!\!\!#1$};
\node[anchor = north] at (top.north east) {\scriptsize $\!\!\!\!\!#2$};
\end{tikzpicture}
}%
%
}