Beamer 与西班牙 babel 和 pgfplots

Beamer 与西班牙 babel 和 pgfplots

正如标题所述,我在使用 babel 时遇到了问题,图中的角度标签(“A”)。如果删除 \usepackage[spanish]{babel} 行或不标记角度,则编译时不会出现问题。但我不能同时使用两者。我在 beamer 用户手册中读到“>”符号可能会导致问题,并在 SE 中读到过几个类似的问题,但没有一个能解决我的具体问题。

提前感谢任何可能的解决方案指南。以下是部分代码:

\documentclass[10pt,Spanish]{beamer}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\usepackage{tikz,pgfplots}
\pgfplotsset{compat=1.16}
\usetikzlibrary{calc,angles,positioning,intersections,quotes,decorations.markings,backgrounds,patterns}

\begin{document}

\begin{frame}{TIKZ}
\begin{tikzpicture}[>=latex]
            \begin{axis}[
            axis lines = middle,
            axis equal,
            width=0.9\textwidth,
            height=0.7\paperheight,
            xlabel = $x$,
            ylabel = $y$,
            xmin = -5, xmax=5,
            ymin = -5, ymax=5,
            xtick = {0},
            ytick = {0}
            ]
            \addplot[->, very thick, red] coordinates{(0,0)(2,3)} node[midway, left]{$\vec{F}_1$};
            \coordinate (A) at (axis cs:2,0);
            \coordinate (B) at (axis cs:0,0);
            \coordinate (C) at (axis cs:2,3);
            \pic[draw, ->, "A", angle radius = 0.8cm]{angle = A--B--C};
            \end{axis}
    \end{tikzpicture}
\end{frame}
\end{document}

答案1

babel包为多种语言定义了简写字符。简写是一种字符或字符组合,可让您轻松输入特定于语言的标点符号或禁用连字。以下代码显示了西班牙语简写的使用情况以及英语中相同代码的输出,其中简写未处于活动状态:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[english,spanish]{babel}
\begin{document}
Spanish shorthands are "<characters"> with a special-meaning defined by "`babel"' that can be switched off and on and of"-f again.

\begin{otherlanguage}{english}
Spanish shorthands are "<characters"> with a special-meaning defined by "`babel"' that can be switched off and on and of"-f again.
\end{otherlanguage}
\end{document}

在此处输入图片描述

对于西班牙语,定义了以下简写(参见babel 包装手册第 1.10 节“速记”,其中包含第 14 页上的所有语言的列表):

" . < > ' ~

为了实现简写功能,这些字符被激活,即变成宏。如果这些字符在 TikZ 代码中,或者在其他地方使用,而这些字符应该具有与常规字符相同的正常含义,那么代码就会中断。TikZ 与法语的组合就是个臭名昭著的例子,因为法语被定义;为简写,并且这个字符在 TikZ 中使用非常频繁。但对于西班牙语,你也会遇到麻烦,"就像>这个问题中的例子一样。

babel您可以使用包选项关闭简写shorthands=off

梅威瑟:

\documentclass[10pt]{beamer}
\usepackage[T1]{fontenc}
\usepackage[shorthands=off,spanish]{babel}
\usepackage{tikz,pgfplots}
\pgfplotsset{compat=1.16}
\usetikzlibrary{calc,angles,positioning,intersections,quotes,decorations.markings,backgrounds,patterns}

\begin{document}

\begin{frame}{TIKZ}
\begin{tikzpicture}[>=latex]
            \begin{axis}[
            axis lines = middle,
            axis equal,
            width=0.9\textwidth,
            height=0.7\paperheight,
            xlabel = $x$,
            ylabel = $y$,
            xmin = -5, xmax=5,
            ymin = -5, ymax=5,
            xtick = {0},
            ytick = {0}
            ]
            \addplot[->, very thick, red] coordinates{(0,0)(2,3)} node[midway, left]{$\vec{F}_1$};
            \coordinate (A) at (axis cs:2,0);
            \coordinate (B) at (axis cs:0,0);
            \coordinate (C) at (axis cs:2,3);
            \pic[draw, ->, "A", angle radius = 0.8cm]{angle = A--B--C};
            \end{axis}
    \end{tikzpicture}
\end{frame}
\end{document}

结果:

在此处输入图片描述

相关内容