TeX에서\ifdefined를 사용하는 방법
TL;DR
\newcommand{\A}{test}
\ifdefined\A
\verb|\A| は ``\A'' と定義されています
\else
\verb|\A| は未定義です
\fi
컴파일하면 다음과 같이 됩니다.
앞의\newcommand를 지우면 다음과 같습니다.
무엇이 기뻐요?
subfiles 을 사용하여 다음과 같은 구조로 M개의 pdf의 조성을 하고 있었습니다.
共通プリアンブル(preamble.tex)
├── 課題1(main1.tex)
│ ├── 設問1(section1.tex)
│ │ ︙
│ └── 設問N(sectionN.tex)
├── 課題2(main2.tex)
│ ├── 設問1(section1.tex)
│ │ ︙
│ └── 設問N(sectionN.tex)
│ ︙
└── 課題M(mainM.tex)
├── 設問1(section1.tex)
│ ︙
└── 設問N(sectionN.tex)
section1.tex를 컴파일하면 subfiles 기능으로 main.tex 프리앰블을 읽으러 가서 지정된 preamble.tex로 읽으러 간다. 라는 두 번의 파일 액세스가 발생했습니다.
중복이라고 느꼈으므로 다음과 같이 리팩토링했습니다.
共通プリアンブル(preamble.tex)
├── 課題1(main1.tex)
├── 設問1(section1.tex)
│ ︙
├── 設問N(sectionN.tex)
│ ︙
├── 課題N(main1.tex)
├── 設問1(section1.tex)
│ ︙
└── 設問N(sectionN.tex)
이 트리 구조는 프리앰블 참조를 나타냅니다. 파일 이름이 충돌하는 것처럼 보이지만 실제로는 디렉토리를 구분합니다.
그러나 section1.tex를 개별적으로 컴파일 할 때 preamble.tex를 읽은 단계에서\title이 정의되지 않았다고 화나게 됩니다.
section1.tex 본문에서는 한 번도\title을 사용하지 않지만 곤란합니다.
지금까지는 main.tex에서 정의되었기 때문에 문제가 발생하지 않았습니다.
해결 방법으로\ifdefined에서 정의되지 않았는지 확인하도록 preamble.tex를 다시 작성했습니다.
감상
TeX 언어별로 자세하지는 않지만, 잘 다루고 싶네요.
Reference
이 문제에 관하여(TeX에서\ifdefined를 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mathbbN/items/9b34fd781507c5ebb405
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
\newcommand{\A}{test}
\ifdefined\A
\verb|\A| は ``\A'' と定義されています
\else
\verb|\A| は未定義です
\fi
subfiles 을 사용하여 다음과 같은 구조로 M개의 pdf의 조성을 하고 있었습니다.
共通プリアンブル(preamble.tex)
├── 課題1(main1.tex)
│ ├── 設問1(section1.tex)
│ │ ︙
│ └── 設問N(sectionN.tex)
├── 課題2(main2.tex)
│ ├── 設問1(section1.tex)
│ │ ︙
│ └── 設問N(sectionN.tex)
│ ︙
└── 課題M(mainM.tex)
├── 設問1(section1.tex)
│ ︙
└── 設問N(sectionN.tex)
section1.tex를 컴파일하면 subfiles 기능으로 main.tex 프리앰블을 읽으러 가서 지정된 preamble.tex로 읽으러 간다. 라는 두 번의 파일 액세스가 발생했습니다.
중복이라고 느꼈으므로 다음과 같이 리팩토링했습니다.
共通プリアンブル(preamble.tex)
├── 課題1(main1.tex)
├── 設問1(section1.tex)
│ ︙
├── 設問N(sectionN.tex)
│ ︙
├── 課題N(main1.tex)
├── 設問1(section1.tex)
│ ︙
└── 設問N(sectionN.tex)
이 트리 구조는 프리앰블 참조를 나타냅니다. 파일 이름이 충돌하는 것처럼 보이지만 실제로는 디렉토리를 구분합니다.
그러나 section1.tex를 개별적으로 컴파일 할 때 preamble.tex를 읽은 단계에서\title이 정의되지 않았다고 화나게 됩니다.
section1.tex 본문에서는 한 번도\title을 사용하지 않지만 곤란합니다.
지금까지는 main.tex에서 정의되었기 때문에 문제가 발생하지 않았습니다.
해결 방법으로\ifdefined에서 정의되지 않았는지 확인하도록 preamble.tex를 다시 작성했습니다.
감상
TeX 언어별로 자세하지는 않지만, 잘 다루고 싶네요.
Reference
이 문제에 관하여(TeX에서\ifdefined를 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mathbbN/items/9b34fd781507c5ebb405
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(TeX에서\ifdefined를 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mathbbN/items/9b34fd781507c5ebb405텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)