在方程式 (2) 和 (3) 中,两者都使用了 TikZ,如何才能使箭头尖与方程式 (1) 中所使用的数学字体产生的箭头尖相同?
\documentclass[12pt]{article}
\usepackage{tikz-cd}
\usetikzlibrary{arrows.meta,decorations.markings}
\usepackage{newtxtext,newtxmath}
\begin{document}
\begin{equation} % eq 1
A \longrightarrow B \rightarrow C
\end{equation}
%
\begin{equation} % eq 2
\begin{tikzcd}
A \arrow[r]{$f$} & B
\end{tikzcd}
\end{equation}
%
\begin{equation} % eq 3
\begin{tikzpicture}[
middlearrow/.style 2 args={
thick,
decoration={
markings,
mark=at position 0.5 with {\arrow{>}, \node[#1]{#2};}
},
postaction={decorate}
},
]
\draw[middlearrow={below}{$\sigma$}] (0,0) -- (2,0);
\draw[thick,->=-latex] (0, -1) -- (2, -1);
\end{tikzpicture}
\end{equation}
\end{document}
[![希望 TikZ 箭头尖与数学字体箭头尖相匹配][1]][1]
笔记:我是不是反问!也就是说,不是询问如何修改\rightarrow
等生成的箭头以匹配 TikZ 生成的箭头。
添加:我也有同样的问题 — 只是关于匹配箭头,而不是关于语法 — 但是关于使用 TeX Gyre Termes Math 字体(带有 XeLaTeX)而不是 newtxmath。请参阅:如何使 TikZ 箭头尖端与 TeX Gyre Termes Math 字体的箭头匹配? [1]:https://i.stack.imgur.com/bfm2P.png
答案1
如果你在序言中设置:
\tikzset{>=Straight Barb, commutative diagrams/arrow style=tikz}
你对 Ti 说钾Z 默认使用哪些箭头,并tikz-cd
遵循该决定。
然后删除所有具体的图表样式,你会得到这个:
代码:
\documentclass[12pt]{article}
\usepackage{tikz-cd}
\usetikzlibrary{arrows.meta,decorations.markings}
\usepackage{newtxtext,newtxmath}
\tikzset{>=Straight Barb, commutative diagrams/arrow style=tikz}
\begin{document}
\begin{equation} % eq 1
A \longrightarrow B \rightarrow C
\end{equation}
%
\begin{equation} % eq 2
\begin{tikzcd}
A \arrow[r]{$f$} & B
\end{tikzcd}
\end{equation}
%
\begin{equation} % eq 3
\begin{tikzpicture}[
middlearrow/.style 2 args={
thick,
decoration={
markings,
mark=at position 0.5 with {\arrow{>}, \node[#1]{#2};}
},
postaction={decorate}
},
]
\draw[middlearrow={below}{$\sigma$}] (0,0) -- (2,0);
\draw[thick,->] (0, -1) -- (2, -1);
\end{tikzpicture}
\end{equation}
\end{document}
答案2
看来rightarrow
使用,newtxmath
包是Straight Barb
箭头:
\documentclass[12pt]{article}
\usepackage{tikz-cd}
\usetikzlibrary{arrows.meta,
decorations.markings}
\usepackage{newtxtext,newtxmath}
\begin{document}
\begin{equation} % eq 1
A \longrightarrow B \rightarrow C
\end{equation}
\begin{equation} % eq 2
\tikzcdset{
arrow style=tikz,
diagrams={>={Straight Barb[scale=0.8]}}
}
\begin{tikzcd}
A \ar[r]{$f$} & B
\end{tikzcd}
\end{equation}
%
\begin{equation} % eq 3
\begin{tikzpicture}[>={Straight Barb[scale=0.8]},
middlearrow/.style 2 args={
thick,
decoration={
markings,
mark=at position 0.5 with {\arrow{>}, \node[#1]{#2};}
},
postaction={decorate}
},
]
\draw[middlearrow={below}{$\sigma$}] (0,0) -- (2,0);
\draw[thick,->] (0, -1) -- (2, -1);
\end{tikzpicture}
\end{equation}
\end{document}
编辑:tikzset
您可以通过在文档前言中放置和 来全局设置箭头的样式\tikzcdset
。例如:
\documentclass[12pt]{article}
\usepackage{tikz-cd}
\usetikzlibrary{arrows.meta,
decorations.markings}
\tikzset{>={Straight Barb[scale=0.8]}}% if you not bear that
% arrows head hasn't equal size as in math,
% just remove `scale` option
\tikzcdset{
arrow style=tikz,
diagrams={>={Straight Barb[scale=0.8]}}
}
\usepackage{newtxtext,newtxmath}
\usepackage[active,tightpage]{preview}
\setlength\PreviewBorder{1em}
\begin{document}
\begin{preview}
\begin{equation} % eq 1
A \longrightarrow B \rightarrow C
\end{equation}
\begin{equation} % eq 2
\begin{tikzcd}
A \ar[r]{$f$} & B
\end{tikzcd}
\end{equation}
%
\begin{equation} % eq 3
\begin{tikzpicture}[
middlearrow/.style 2 args={
thick,
decoration={
markings,
mark=at position 0.5 with {\arrow{>}, \node[#1]{#2};}
},
postaction={decorate}
},
]
\draw[middlearrow={below}{$\sigma$}] (0,0) -- (2,0);
\draw[thick,->] (0, -1) -- (2, -1);
\end{tikzpicture}
\end{equation}
\end{preview}
\end{document}
结果和以前一样。
笔记:
我要强调的是,如果您使用newtxmath
字体,此解决方案将产生理想的结果。例如,在其他数学字体中,lmodern
您应该使用Computer Modern Rightarrow[]
或简单的>
。