라텍스가 일부 정의를 무시하도록 하거나 일종의 전처리기 정의로 대체할 수 있나요?

라텍스가 일부 정의를 무시하도록 하거나 일종의 전처리기 정의로 대체할 수 있나요?

나는 여러 대의 컴퓨터에서 문서를 작성합니다. 그 중 하나에는 일종의 TexLive 설치와 함께 Ubuntu 14.04가 설치되어 있습니다. 다른 것에는 Ubuntu 14.10과 Arch Linux가 있습니다.

내 문서에서는화살표.메타도서관. 이제 내 컴퓨터 중 하나(14.04 컴퓨터)에서 컴파일되지 않는 문서가 발생했습니다.

문제가 있는 모든 정의를 무시하도록 라텍스를 만들 수 있는 방법이 있습니까? 내가 갖고 싶은 것은 실제 이미지의 소스 파일을 변경하지 않고 TikZ의 새로운 기능을 활성화 및 비활성화할 수 있는 것(주석을 추가하고 제거할 수 있는 몇 줄의 코드)입니까? 현재 arrows.meta 팁을 사용하는 9개의 이미지가 있으며 이 숫자는 늘어날 수 있습니다. 따라서 이미지 소스를 변경하는 것은 좋은 방법이 아닙니다.

\documentclass[tikz]{standalone}
\usepackage[T1]{fontenc}        % font encoding
\usepackage[utf8]{inputenc}     % input encoding
\usepackage{lmodern}            % fonts

\usepackage{tikz,pgfplots}      % provides TikZ


\usetikzlibrary{arrows}
%\usetikzlibrary{arrows.meta}

%\newcommand{\Stealth}{\stealth}    % does not work

\begin{document}

\begin{tikzpicture}
    \draw[-Stealth] (0,0) to (1,1);
\end{tikzpicture}

\end{document}

답변1

실제로 가장 좋은 해결책은 TeX 배포판을 업데이트하는 것입니다. 앞으로는 골치 아픈 일이 줄어들 것이며 새 arrows.meta라이브러리는 많은 멋진 기능을 제공합니다.

그러나 업그레이드가 옵션이 아닌 경우: 아래 조건부 코드는 로드된 버전이 pgf3.0.0 이상(2013/12/18 이후 날짜)인지 확인합니다. 그렇다면 로드 arrows.meta하고 -Stealth평소대로 사용할 수 있습니다. 그렇지 않은 경우 library 에서 제공하는 Stealth이전 팁에 호출되는 화살표 팁의 별칭을 지정합니다 .stealtharrows

이것의 최종 결과는 StealthTikZ/PGF 3.0.0을 사용할 수 있는 경우 사용되지만 stealth사용할 수 없는 경우에는 그리기 코드를 수정하지 않고 대체하는 것입니다.

제한사항:에서 소개된 화살표 스타일 수정자 또는 기타 옵션(예: -{Stealth[width=6pt]})은 arrows.meta이 코드에서 성공적으로 처리되지 않습니다.

\documentclass[tikz]{standalone}

\usepackage[T1]{fontenc}    % font encoding
\usepackage[utf8]{inputenc} % input encoding
\usepackage{lmodern}        % fonts

\usepackage{tikz}           % provides TikZ
\usetikzlibrary{arrows}

\makeatletter
\@ifpackagelater{pgf}{2013/12/18}{
  \usetikzlibrary{arrows.meta}
}{
  \pgfarrowsdeclarealias{Stealth}{Stealth}{stealth}{stealth}
}
\makeatother

\begin{document}
\begin{tikzpicture}
  \draw[-Stealth] (0,0) to (1,1);
\end{tikzpicture}
\end{document}

관련 정보