변수 및 디렉터리 구성

변수 및 디렉터리 구성

TeX Live를 사용하는 Unix 같은 시스템에서 이 명령은 kpsewhich --var-value=TEXMFLOCAL직접 만든 패키지를 설치할 디렉터리의 경로를 제공합니다. 예를 들어, 내 Mac에서는 경로를 얻습니다 /usr/local/texlive/texmf-local.

TeX Live를 사용하여 Windows에서 작동합니까?

답변1

이미 몇 가지 답변을 얻었지만(그 중 일부는 댓글에 있음) 다음과 같이 말씀드리겠습니다. TeXLive(및 내가 아는 한 MikTeX)

  1. 적절하게 채워 사용하기 위해 설정되었습니다.TDS, 이는 TeX 디렉토리 구조입니다.
  2. Karl Berry 검색 경로 도구를 사용하고 있습니다. 따라서 명령줄 도구를 사용하여 kpsewhich파일이 있는 위치를 확인할 수 있습니다. 이 명령은 which주어진 실행 파일의 위치를 ​​찾으려고 시도하는 Unix -tool에서 영감을 받았습니다 . TeX 시스템에서의 사용을 위해 약간 향상되었습니다.

특히 TeXLive에서는(하지만 MikTeX에서도 마찬가지라고 생각합니다) 두 개 이상의 TDS 트리를 다른 TDS 트리와 병렬로 사용할 수 있습니다. 일반적으로 TeXLive 시스템은 다음 세 가지 TDS 트리를 갖도록 설정됩니다.

  1. 배포판 관리자를 위한 TDS,
  2. 로컬 시스템 관리자를 위한 TDS
  3. 개별 사용자를 위한 TDS입니다.

첫 번째 패키지에는 TeXLive(각각 MikTeX)와 함께 제공되는 모든 패키지가 포함되어 있습니다. 이는 시스템 관리자로서 TeXLive-System을 설치할 때 설치됩니다. TeXLive 시스템을 업데이트할 때마다 변경됩니다. 그러므로 해당 TDS 트리에 어떤 패키지도 설치해서는 안 됩니다(물론 TeXLive 관리자가 아닌 이상. 그런데 왜 설정을 설명해야 합니까?).

두 번째 TDS 트리는 쉽게 설치된 로컬 패키지의 중앙 저장소로 사용자를 지원하는 시스템 관리자를 위한 것입니다. 예를 들어, 대학의 기업 디자인을 따르는 스타일 파일이 여기에 설치됩니다. 네트워크 공유인 경우 대학 전체(원하는 경우 회사 전체)의 모든 TeX 사용자는 추가 구성 없이 이 파일을 사용할 수 있습니다. 이 트리에 패키지를 설치하려면 일반적으로 여기에 파일을 쓸 수 있는 시스템 관리자 권한도 있어야 합니다.

세 번째이자 마지막 트리는 개별 사용자를 위한 트리입니다. 이는 사용자 자신이 소유한 디렉토리에 위치합니다. 전통적으로 이는 Unix 시스템 사용자의 홈 디렉토리 내에 있었습니다.

TeXLive 명령 도구를 사용하여 tlmgr이 세 개의 TDS가 개별 컴퓨터의 어디에 있는지 알아낼 수 있습니다. 그냥 실행

tlmgr conf

다음으로 시작하는 줄을 확인하세요.

  1. TEXMFDIST
  2. TEXMFLOCAL
  3. TEXMFHOME

TeX 설치의 올바른 위치를 알려줍니다.

(저는 MikTeX에서 이 정보를 제공하는 도구를 모릅니다. 죄송합니다.)

texmf.cnf마스터 구성 파일의 위치를 ​​나열하는 줄로 시작하는 줄도 있습니다 . 일부 위치를 변경할 계획이고 실제로 그곳에서 무엇을 하고 있는지 알고 있다면 편집할 파일이 바로 그것입니다!

또 한 가지 중요한 점을 지적해야 합니다. 요즘 완전히 성장한 TeX 시스템은 수십만 개의 파일로 구성됩니다. 단지 say 를 찾기 위해 모든 경로를 계속해서 검색하는 것은 컴퓨터에 지루한 작업입니다 book.cls. (컴퓨터가 멍청하다고 말했습니까? 도움을 제공하지 않으면 컴퓨터는 해당 위치를 기억할 수 없습니다!) 검색하고 검색하고 다시 검색하는 것을 방지하려면 배포 TDS 트리에 있는 모든 파일과 로컬 TDS 트리에서는 간단한 데이터베이스에 저장됩니다. 따라서 해당 트리 중 하나에 파일을 복사하는 것만으로는 충분하지 않습니다. TeX는 데이터베이스를 업데이트하지 않는 한 이러한 파일을 찾지 않습니다. 물론, 데이터베이스를 업데이트하려면 반드시 슈퍼 사용자 권한(AKA super cow power :-))이 필요합니다. 클래식 Unix 시스템에서 이는 texhash명령이거나 mktexlsr"TeX ls-minus-R 데이터베이스 만들기"의 짧은 형식이었습니다. (사실: ls -R $TEXMFDIST데이터베이스에 추가하려는 TDS 트리 외에는 아무 것도 아닙니다. )

요약하자면, 다른 사람의 컴퓨터에 설치하기 위해 자신의 패키지를 출시하여 세상을 풍요롭게 만들 계획이라면 가장 좋은 방법은 TeXLive 관리자가 해당 패키지를 TeXLive에 포함하도록 설득하는 것입니다. 그러면 더 이상 걱정하지 않아도 됩니다. 패키지가 그다지 중요하지 않아 TeXLive 관리자가 패키지를 포함하도록 설득할 수 있다면 고객에게 TEXMFHOME시스템의 일부 에 패키지를 설치하도록 지시하는 것이 가장 좋습니다 . 그냥 달려오라고 하세요

tlmgr conf | grep TEXMFHOME

유닉스 계열 시스템에서. bash가 설치된 최신 Windows 시스템에서도 작동할 수 있습니다. 그 위치에서는 슈퍼카우 파워를 가질 필요도 없고 데이터베이스를 업데이트하기 위해 번거롭게 할 필요도 없습니다. 시스템 관리자에게 패키지를 제공하면 일반적으로 시스템 관리자는 패키지를 저장할 위치와 데이터베이스를 업데이트하는 방법을 알고 있습니다.

추신: CTAN의 최신 버전을 TeXLive 시스템에서 사용할 수 있는지 확인하려면 book.cls관리자가 이를 배포판에 통합하지 않았지만 이를 설치하거나 다음 방법으로 시스템을 구성해야 TEXMFLOCAL합니다 TEXMFHOME. temf.cnf이러한 방식으로 편집하면 TEXMFDIST주어진 세 개의 TDS 트리 중 마지막으로 검색됩니다.

답변2

명심해야 할 사항 중 하나는 Windows에서는 많은 구성 변수가 기본적으로 활성화되지 않고 이에 추가되어 관리자 권한으로 수행할 수 있는 작업과 일반 사용자로 수행할 수 있는 작업이 있다는 것입니다. 나는 단순 사용자 옵션을 선호합니다. 즉, 구성은 시스템의 현재 사용자에게만 영향을 미칩니다.

이 예에서 사용자 이름은 yourself다음과 같으며 명령줄을 시작할 때마다 cmd이를 수행합니다.관리자 권한 없이.

변수 및 디렉터리 구성

  1. 구성 TEXMFHOME 명령줄에서 실행하면 cmd다음을 얻게 됩니다.
C:\Users\yourself>kpsewhich -var-value=TEXMFHOME
C:/Users/yourself/texmf

그러나 실제로는 texmf디렉토리 자체가 존재하지 않으므로 구조에 따라 생성해야 합니다 TDS. 이 경우 경로 구분 기호에 주의하여 생성하겠습니다 \.

C:\Users\yourself>mkdir texmf\tex\latex
  1. 구성 TEXMFCNF 명령줄을 열고 cmd다음 줄을 실행합니다.
C:\Users\yourself>kpsewhich -all texmf.cnf
c:/texlive/2019/texmf.cnf
c:/texlive/2019/texmf-dist/web2c/texmf.cnf

출력은 변수가 사용자에 대해 구성되지 않았음을 나타냅니다. 우리는 다음과 같은 방법으로 구성합니다:

C:\Users\yourself>setx TEXMFCNF C:/Users/yourself/texmf;

CORRECTO: se guardó el valor especificado.

우리는 나갔다가 다시 들어가서 다음과 같이 달립니다.

C:\Users\yourself>reg query HKEY_CURRENT_USER\Environment

HKEY_CURRENT_USER\Environment
    Path    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Microsoft\WindowsApps;
    TEMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp
    TMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp
    OneDrive    REG_EXPAND_SZ    C:\Users\yourself\OneDrive
    TEXMFCNF    REG_SZ    C:/Users/yourself/texmf;

이 변수 설정이 완료되었습니다. 이 변수는 auxtrees예제의 명령 과 함께 사용됩니다 .

  1. 구성 TEXINPUTS 디렉토리 D:/transcripts섹션이나 이미지가 있지만 로컬에서만 사용할 수 있고 테스트용으로 원한다고 가정합니다. 이 경우 가장 좋은 방법은 TEXINPUTS변수를 사용하는 것이며 여기서는 구성을 영구적(항상 사용 가능)으로 할지 임시(현재 콘솔에서만)로 할지 여부에 따라 달라집니다.

ㅏ. 임시 구성 명령줄을 열고 cmd 다음을 실행합니다.

C:\Users\yourself>set TEXINPUTS=.;D:/transcripts//;

이는 명령줄을 닫을 때까지 작동합니다. 즉, 이를 실행해야 합니다.매번명령줄을 닫은 후.

비. 영구 구성 명령줄을 열고 cmd 다음을 실행합니다.

C:\Users\yourself>setx TEXINPUTS .;D:/transcripts//;

명령줄을 닫습니다. 이러한 방식으로 우리는 TEXINPUTS귀하의환경 변수이제는 그것이 스며들고 있습니다.

TEXINPUTS환경 변수에서 확인해야 하는 경우 다음을 사용하세요.

C:\Users\yourself>reg query HKEY_CURRENT_USER\Environment

TEXINPUTS환경 변수에서 삭제해야 하는 경우 다음을 사용하세요.

C:\Users\yourself>reg delete HKEY_CURRENT_USER\Environment /v TEXINPUTS /f

또는 그래픽 모드에서 이를 조정하여 수행할 수도 있습니다.환경 변수.

다음을 사용한 전체 예제auxtrees

github이것은 일부 패키지와 사용자 정의 클래스를 사용하여 호스팅된 프로젝트 (형식으로도 배포 ) 를 사용하여 내 작업에서 동료 그룹과 함께 사용하는 구성의 일부이며 .zip창과 관련된 부분을 기록합니다. 이해하세요, 제 모국어는 스페인어입니다). 이 예제의 폴더 TDS는 다음 위치에 있으며 D:/ltxcole/stycole/프로젝트 구조는 다음과 같습니다.

D:\ltxcole>tree
Listado de rutas de carpetas para el volumen driveD
El número de serie del volumen es FACD-A6DF
D:.
├───octavo
│   ├───diagnostico
│   ├───guias
│   ├───pruebas
│   ├───test
│   └───trabajos
├───produccion
├───septimo
│   ├───diagnostico
│   ├───guias
│   ├───pruebas
│   └───test
├───sintesis
└───stycole
    └───tex
        └───latex

핵심은 stycole다음과 같은 구조를 가지고 있다는 것 입니다 TDS.

└───stycole
    └───tex
        └───latex
               colegio-new2019.sty
               keyanswer.sty
               logoaurora.jpg
               tkz-custom.sty

Windows 구성에 대한 TeXLive 문서는 그다지 "설명적"이지는 않지만 포럼에는 좋은 정보가 있습니다. 를 사용하면 변수를 사용하여 전체 시스템에 영향을 주거나 모든 것을 에 로드하지 auxtrees않고도 여러 프로젝트를 유지 관리할 수 있습니다 .TEXMFLOCALTEXMFHOME

명령줄을 열고 cmd 다음을 실행합니다.

C:\Users\yourself>tlmgr conf auxtrees --conffile C:/Users/yourself/texmf/texmf.cnf show
tlmgr.pl: no auxiliary texmf trees defined.

출력에는 아무것도 구성되지 않았다고 표시됩니다. 이제 다음을 실행합니다.

C:\Users\yourself>tlmgr conf auxtrees --conffile C:/Users/yourself/texmf/texmf.cnf add D:/ltxcole/stycole/

모든 것이 올바른지 확인하기 위해 다음을 실행합니다.

C:\Users\yourself>tlmgr conf auxtrees --conffile C:/Users/yourself/texmf/texmf.cnf show
List of auxiliary texmf trees:
  D:/ltxcole/stycole/

이로써 프로젝트 구성이 완료되었으며, 배치된 파일을 D:/ltxcole/stycole/tex/latex/모든 파일에 사용할 수 있습니다. 파일에는 C: Users\yourself\texmf.cnf다음 줄이 포함되어 있습니다.

TEXMFAUXTREES = D:/ltxcole/stycole/,

구조 를 존중하는 한 원하는만큼 프로젝트를 추가할 수 있습니다 TDS.

물론, 직접 테스트만 하고 싶다면 를 사용하는 것이 더 간단합니다 . 하지만 를 사용하면 을 생성할 수 있다는 TEXMFHOME장점이 있습니다.auxtrees+git크로스 플랫폼구성스크립트README또는 공동 프로젝트에 대한 관련 지침이 포함된 간단한 문서입니다 .

관련 정보