我的问题是命令\vec{}
中的奇怪行为\caption
。我使用了这个构造:
\renewcommand{\vec}[1]{\accentset{\rightarrow}{#1}}
看看我的代码:
\documentclass[12pt, a4paper, czech, twoside]{book}
\usepackage{amsmath, amsthm, amssymb, amsfonts, amsbsy}
\usepackage{accents}
\usepackage{fontspec,xltxtra,xunicode,unicode-math}
\setmainfont[Mapping=tex-text,Numbers={OldStyle,Proportional}]{Calibri}
\setsansfont[Mapping=tex-text,Numbers={OldStyle,Proportional}]{Candara}
\setmonofont[Numbers=OldStyle]{Consolas}
\setmathfont{Cambria Math}
\usepackage{tikz}
\begin{document}
\renewcommand{\vec}[1]{\accentset{\rightarrow}{#1}}
\begin{figure}[hb!]
\centering
\begin{tikzpicture}
\coordinate (dS) at (2,0.5);
\draw[->] (dS) ++ (0.25,0.25) -- +(1,0.5) node[right]{$\vec{n}$};
\draw[->] (dS) ++ (0.25,0.25) -- +(2,1.5) node[right]{$\vec{h}$};
\end{tikzpicture}
\label{FYZ:fig_01}
\caption{vector $\vec{n}$.}
\end{figure}
\end{document}
SW:MiKTeX 2.9 64 位最新版本。当我尝试\vec
在tikzpicture
环境中使用该命令时,一切正常,但出现错误。我不明白。我做错了什么?
答案1
\accentset
使您的命令变得脆弱,因此您需要\protect\vec{n}
或使用\DeclareRobustCommand
而不是\newcommand
。