\draw를 사용하는 babel 및 tikz 관련 문제

\draw를 사용하는 babel 및 tikz 관련 문제

다음 코드를 시도 중입니다.

\documentclass[pdftex,spanish]{article}
\usepackage{babel}
\usepackage{tikz}

\begin{document}

Simple arrow: 

\begin{tikzpicture}
    \draw[->] (-1.5,0) -- (1.5,0);
\end{tikzpicture}

\end{document}

하지만 작동하지 않습니다. 오류가 발생합니다.

  • ! Argument of \language@active@arg> has an extra }.
  • ! Paragraph ended before \language@active@arg> was complete.<to be read again>\par \draw[->]

babel 패키지 없이도 제대로 작동한다면 어떻게 해야 하나요?

답변1

문제는 스페인어 인용문의 특수 관리를 위해 해당 spanish모듈이 활성 문자 를 babel만든다는 것입니다.><

업데이트:

babelPGF/TikZ 버전 3.0.0에는 일부 모듈에서 발생한 카테고리 코드 변경으로 인해 발생하는 문제를 해결하는 라이브러리가 있으므로 babel라이브러리를 로드하는 것으로 충분합니다.

\documentclass[spanish]{article}
\usepackage{babel}
\usepackage{tikz}
\usetikzlibrary{babel}

\begin{document}

Simple arrows: 

\begin{tikzpicture}
    \draw[->] (-1.5,0) -- (1.5,0);
\end{tikzpicture}

\tikz\draw[->] (-1.5,0) -- (1.5,0);

\end{document}

(덕분에클라우디오 피안드리노이것을 지적해 주셔서그의 코멘트).

PGF/TikZ 버전 2.10

s 에 대한 원하지 않는 재정의를 비활성화 tikzpicture하고 문서의 다른 부분에 대해서는 이를 유지하려면 다음을 사용할 수 있습니다.

  execute at begin picture={\deactivatequoting},
  execute at end picture={\activatequoting}

모든 tikzpicture. 이 접근 방식에는 두 가지 장점이 있습니다.

  1. 추가 패키지가 필요하지 않습니다.

  2. 또한 명령 버전을 사용할 때 원하는 결과를 생성합니다 \tikz(아래 예제 코드 참조).

코드:

\documentclass[spanish]{article}
\usepackage{babel}
\usepackage{tikz}

\tikzset{
every picture/.append style={
  execute at begin picture={\deactivatequoting},
  execute at end picture={\activatequoting}
  }
}
\begin{document}

Simple arrows: 

\begin{tikzpicture}
    \draw[->] (-1.5,0) -- (1.5,0);
\end{tikzpicture}

\tikz\draw[->] (-1.5,0) -- (1.5,0);

\end{document}

여기에 이미지 설명을 입력하세요

참고로 pdftex옵션을 사용하지 마세요. 최신 LaTeX 시스템은 드라이버를 자동으로 감지합니다.

답변2

Malipivo가 언급한 대로 spanishmake 옵션이 활성화 babel됩니다 >. 환경 내에서 로컬로 비활성화할 수 있습니다 tikzpicture. 프리앰블에 다음을 추가하세요.

\usepackage{etoolbox}
\AtBeginEnvironment{tikzpicture}{\shorthandoff{>}\shorthandoff{<}}{}{}

전체 코드:

\documentclass{article}
\usepackage[spanish]{babel}
\usepackage{tikz}
\usepackage{etoolbox}
\AtBeginEnvironment{tikzpicture}{\shorthandoff{>}\shorthandoff{<}}{}{}

\begin{document}

Simple arrow:

\begin{tikzpicture}
    \draw[->] (-1.5,0) -- (1.5,0);
\end{tikzpicture}

\end{document}

여기에 이미지 설명을 입력하세요

답변3

를 사용할 필요가 없다면 바벨 옵션 spanish quotes만 추가하면 화살표가 다시 나타납니다.es-noquotingTiKZ

\documentclass[pdftex,spanish]{article}
\usepackage[es-noquoting]{babel}
\usepackage{tikz}

\begin{document}

Simple arrow: 

\begin{tikzpicture}
    \draw[->] (-1.5,0) -- (1.5,0);
\end{tikzpicture}

\end{document} 

여기에 이미지 설명을 입력하세요

spanish quotes새로운 TiKZ 3.0 라이브러리를 사용해야 하는 경우 babel(Claudio가 제안한 대로) 여기에 예가 있습니다.

\documentclass[pdftex,spanish]{article}
\usepackage{babel}
\usepackage{tikz}
\usetikzlibrary{babel}

\begin{document}

Simple arrow: 

\begin{tikzpicture}
    \draw[->] (-1.5,0) -- (1.5,0) node[right] {<<Hola>>};
\end{tikzpicture}

<<Hola>>
\end{document}

여기에 이미지 설명을 입력하세요

답변4

이유는 모르겠지만 이전 답변 중 어느 것도 나에게 도움이 되지 않았습니다. 하지만 그들은 나에게 올바른 길을 보여주었습니다. 그냥 추가

\deactivatequoting

프리앰블에서 문제가 해결되었습니다.

전화를 걸 babel거나 english트릭 spanish을 사용하는 것도 중요합니다.

\usepackage[spanish,english]{babel} 

관련 정보