![SyncTeX를 사용하여 부동 소수점 위치를 빠르게 지정하는 좋은 소스 코드 관리 기술은 무엇입니까?](https://rvso.com/image/348620/SyncTeX%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%B6%80%EB%8F%99%20%EC%86%8C%EC%88%98%EC%A0%90%20%EC%9C%84%EC%B9%98%EB%A5%BC%20%EB%B9%A0%EB%A5%B4%EA%B2%8C%20%EC%A7%80%EC%A0%95%ED%95%98%EB%8A%94%20%EC%A2%8B%EC%9D%80%20%EC%86%8C%EC%8A%A4%20%EC%BD%94%EB%93%9C%20%EA%B4%80%EB%A6%AC%20%EA%B8%B0%EC%88%A0%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
문서에서 부동 소수점 위치를 지정하는 것은 일반적으로 [t]
등과 같은 수정자를 변경하는 것뿐만 아니라 코드 주위를 이동하는 것도 포함합니다. 특히 실제로 표시되어야 하는 페이지 전에 컴파일러가 확인해야 하는 문서 figure*
의 환경입니다 .twocolumn
긴 플로트, 특히 테이블을 여러 번 이동하는 것은 상당히 성가실 수 있습니다. 또한 버전 관리 소프트웨어를 사용할 때 diff
실제로 큰 변화가 발생하지 않은 중요한 문제가 발생하고 blame
기능이 중단됩니다.
제가 시도한 방법 중 하나는
\newcommand{\figureImportantResult}{\begin{figure}...\end{figure}}
(예를 들어 서문에서) 주위에만 이동합니다 \figureImportantResult
. 이는 매우 훌륭하게 작동하여 위의 문제를 해결합니다(환경과 관련되지 않은 한 줄만 변경 figure
). 그러나 SyncTeX는 이를 잘 이해하지 못합니다. 각 부동 소수점은 \figure...
환경 정의가 아닌 해당 라인에만 연결되므로 환경에 변경 사항을 적용하는 것이 더 번거로워집니다. 패키지 를 사용한 구성에서도 마찬가지입니다 catchfilebetweentags
(참조:이 답변).
이 문제를 처리하는 좋은 방법은 무엇입니까? \include
/가 \input
작동할 수도 있지만 전체 문서를 하나의 파일에 보관하고 싶습니다(일부 출판사에서는 이를 선호/요구함). 제출하기 전에 각 파일의 내용을 프로그래밍 방식으로 \include
/ 로 바꿀 수 있다는 것을 알고 있지만 \input
이는 내가 선호하는 작업이 아닙니다. 해당 코드의 더 나은 위치에 SyncTeX를 암시할 수 있나요? SyncTeX가 이해 하는 대안이 있습니까 \newcommand
?
답변1
이것은 좋지 않을 수도 있지만 작동합니다. 어쩌면 누군가가 더 나은 답변을 게시하도록 영감을 줄 수도 있습니다.
% FIGURE DEFINITION
\ifdefined\whichfigure\begin{myfigures}
\definefigure{FigA}{%
AAA
}
\definefigure{FigB}{%
BBB
}
\definefigure{FigD}{%
DDD
}
\definefigure{FigE}{%
EEE
}
\end{myfigures}\fi
\documentclass{article}
% PREAMBLE CODE
\newenvironment{myfigures}{%
\let\shownfigure\relax%
}{%
\if\shownfigure\relax%
\PackageWarning{\string\showfigure}{Figure `\whichfigure' not defined}%
\fi%
\endinput%
}
\newcommand{\definefigure}[2]{%
\def\thisfigure{#1}%
\ifx\whichfigure\thisfigure%
\let\shownfigure\thisfigure%
#2%
\fi%
}
\newcommand{\showfigure}[1]{%
\def\whichfigure{#1}%
\input{\jobname}%
}
% END OF PREAMBLE CODE
\begin{document}
% FIGURE INCLUSION
\showfigure{FigA}
\showfigure{FigB}
\showfigure{FigC}
\showfigure{FigE}
\end{document}