Circuitikz 与 Babel 之间的冲突

Circuitikz 与 Babel 之间的冲突

我正在从事一个项目,其中包括circuitkz参考书目biblatex

当我尝试使用包american voltage中的选项时circuitkz,无缘无故出现了 biber 错误。

编辑:

\documentclass[10pt,twocolumn]{article}    
\setlength{\columnsep}{20.0pt}
\usepackage[style=ieee,texencoding=utf8]{biblatex}
\addbibresource{ref.bib}
\let\cite\parencite
\usepackage{csquotes}
\usepackage[spanish]{babel}
\usepackage{circuitikz}
    \ctikzset{v/.append style={/tikz/american voltages}}

\begin{document}

\begin{circuitikz}[american voltages]
      \draw
      (0,0) to[sV]
      (0,2) to[R, v^>=$v_1$]  %%This is the problem. 
      (3,2) to[C]
      (3,0) -- (0,0)
      ;
    \end{circuitikz}


\nocite{vibrations_waves}
\printbibliography

\end{document}

当我仅使用(0,2) to[R]上面的行时,所有内容均能正确呈现。

%%%%%%%    ref.bib   %%%%%%%%%
@Book{vibrations_waves,
author = {George C. King},
title = {Vibrations and Waves},
publisher = {Wiley},
year = {2009},
}

编辑后,我注意到真正的问题出在babel包上。当我注释掉该行时,\usepackage[spanish]{babel}一切都正常了。

答案1

这是速记的常见问题babel。您可以使用 来解决它\usetikzlibrary{babel}

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}

\usepackage{circuitikz}
\usetikzlibrary{babel}

\ctikzset{v/.append style={/tikz/american voltages}}

\begin{document}

\begin{circuitikz}[american voltages]
  \draw (0,0) to [sV]
        (0,2) to [R, v^>=$v_1$]  %%This is the problem.
        (3,2) to [C]
        (3,0) -- (0,0)
  ;
\end{circuitikz}

\end{document}

在此处输入图片描述

答案2

正如您在问题中指出的那样,问题与 无关,biblatex但与spanish选项有关babel。这是由于>西班牙语中定义的简写babel。如果您根本不需要或使用简写,那么您可以使用包选项 全局关闭它们es-noshorthands

\usepackage[spanish,es-noshorthands]{babel}

或者,如果您需要简写,您可以>在环境中禁用有问题的简写()circuitikz

\usepackage{etoolbox}
\AtBeginEnvironment{circuitikz}{\spanishdeactivate{>}}

以下是完整的文档:

\documentclass[10pt,twocolumn]{article}    

\setlength{\columnsep}{20.0pt}
\usepackage[spanish]{babel} 
% or if you don't need shorthands at all:
%\usepackage[spanish,es-noshorthands]{babel}
\usepackage{circuitikz}
    \ctikzset{v/.append style={/tikz/american voltages}}   
\usepackage{etoolbox} 
\AtBeginEnvironment{circuitikz}{\spanishdeactivate{>}}
\begin{document}

\begin{circuitikz}[american voltages]
      \draw
      (0,0) to[sV]
      (0,2) to[R, v^>=$v_1$]  %%This is the problem. 
      (3,2) to[C]
      (3,0) -- (0,0)
      ;
    \end{circuitikz}



\end{document}

相关内容