![목록에 대해 \graphicspath에 해당하는 항목이 있나요?](https://rvso.com/image/286965/%EB%AA%A9%EB%A1%9D%EC%97%90%20%EB%8C%80%ED%95%B4%20%5Cgraphicspath%EC%97%90%20%ED%95%B4%EB%8B%B9%ED%95%98%EB%8A%94%20%ED%95%AD%EB%AA%A9%EC%9D%B4%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
\lstinputlisting
특정 디렉토리에서 파일을 검색하도록 하려면 어떻게 해야 합니까 ? 나는 솔루션의 라인을 따라 솔루션을 생각하고 있습니다.이 질문.
나는 다음과 같은 해결책을 갖고 싶습니다.
\lstinputpath{/some/path/in/the/system}
\lstinputlisting{file.ext}
file.ext
에 거주하는 곳입니다 /some/path/in/the/system
. 나는 운 좋게도 그러한 해결책을 찾으려고 노력했습니다. \lstinputlistings
저자 정의 내에서 \lst@inputpath
. 그러나 이 매크로를 단순하게 수정하면 어떤 결과도 나오지 않습니다.
답변1
패키지 는 소스 파일을 검색해야 하는 경로를 지정하기 위해 listings
호출되는 키를 제공합니다 . 개발자 가이드 에만 문서화되어 있습니다 .inputpath
\lstinputlisting
inputpath
listings
~ 아니다사용자 설명서에서; 개발자 가이드를 컴파일하지 않은 경우 다음에서 "inputpath"를 검색하세요.목록.dtx키 정의로 연결됩니다 inputpath
. 후자를 사용하려면 간단히 작성하십시오.
\lstset{inputpath=<path-in-question>}
문서의 어딘가에(반드시 서문에 있을 필요는 없지만, listings
물론 를 로드한 후에). 와 유사한 매크로를 꼭 사용해야 한다면 다음과 같이 직접 매크로를 \graphicspath
정의할 수 있습니다.\lstinputpath
\newcommand*\lstinputpath[1]{\lstset{inputpath=#1}}
아래 코드에서는 파일이 작업 디렉터리의 sample.c
하위 디렉터리에 있다고 가정합니다.test
\documentclass{article}
\usepackage{listings}
\newcommand*\lstinputpath[1]{\lstset{inputpath=#1}}
\lstinputpath{test}
\begin{document}
\lstinputlisting[
language = C,
basicstyle = \ttfamily,
frame = single,
caption = {Hello world in C},
]{sample.c}
\end{document}
답변2
대안에는 \input@path
LaTeX 내부 매크로를 사용하는 것이 포함됩니다.
또한보십시오https://tex.stackexchange.com/a/24827/250119,\graphicspath{...}와 유사하게 \input{...}에 대해 전역적으로 기본 경로를 설정할 수 있습니까?.
예를 들어
\documentclass{article}
\usepackage{listings}
\makeatletter
\def\input@path{{SubFolder/}}
\makeatother
\begin{document}
\lstinputlisting[
language = C,
basicstyle = \ttfamily,
frame = single,
caption = {Hello world in C},
]{SubTest.tex}
\end{document}
이점: 작동하고 다중 경로를 지원하며 앞서 언급한 단점을 겪지 않습니다.위의 댓글
여기서 주목해야 할 한 가지 중요한 단점은 제공된 인수에 슬래시가 포함되어 있어도(그리고 슬래시로 시작하더라도, 즉 절대 경로인 경우에도) 입력 경로가 항상 앞에 추가된다는 것입니다.
불리:
- 내가 볼 수 있는 한
\input@path
LaTeX의 내부 매크로는 다음과 같습니다.원래의목적은 사용자가 ...에 대한 가능한 위치를 확장하도록 허용하는 것도 아닙니다\input
. (자세한 내용은 나중에) - 이것은
listings
패키지 문서 때문에 작동합니다.그냥 우연히내부적으로\input
파일을 내부적으로 처리하는 데 사용됩니다. 그렇지 않으면 작동하지 않습니다.
(그런데 \active
상수 13 for를 표현하기 위해 사용하는 것은 \endlinechar
자체 문서화된 코드와 반대입니다.)