这个问题与以下问题相关:提取浮点数并读取外部辅助文件以获取字幕中的超链接信息。
简单来说,我想使用文档文件来编译外部文件。在我的例子中,该文件preamble
由包创建。.aux
.fff
endfloat
从此代码开始:
\documentclass[11pt]{article}
\pagestyle{empty}
\usepackage{graphicx}
\usepackage{blindtext}
\usepackage[colorlinks=true,
,citecolor=blue
,linkcolor=blue]{hyperref}
\begin{document}
\section{Section 1}
\label{section1}
\blindtext
\begin{figure}[t]
\centering
\includegraphics[width=.49\columnwidth]{example-image-a}
\caption{Dummy caption \cite{1} (see figure~\ref{fig3} in
section~\ref{section3}).\label{fig1}}
\end{figure}
\section{Section 2}
\label{section2}
\blindtext
\begin{figure}[t]
\centering
\includegraphics[width=.49\columnwidth]{example-image-b}
\caption{Dummy caption \cite{2} (see figure~\ref{fig1} in
section~\ref{section1}).\label{fig2}}
\end{figure}
\section{Section 3}
\label{section3}
\blindtext
\blindtext
\begin{figure}[t]
\centering
\includegraphics[width=.49\columnwidth]{example-image-c}
\caption{Dummy caption \cite{3} (see figure~\ref{fig2}
section~\ref{section2}).\label{fig3}}
\end{figure}
\begin{thebibliography}{9}
\bibitem{1}
Dummy bibibtem
\bibitem{2}
Dummy bibibtem
\bibitem{3}
Dummy bibibtem
\end{thebibliography}
\end{document}
然后使用endfloat
包生成文件。我通过命令行.fff
传递包和选项:endfloat
pdflatex "\nofiles"\
"\AtBeginDocument{\usepackage[figuresonly,nolists]{endfloat}}"\
"\nonstopmode"\
"\input{mydoc.tex}"
现在我想做类似的事情:
\documentclass[11pt]{article}
\pagestyle{empty}
\usepackage{graphicx}
\usepackage{blindtext}
\usepackage[colorlinks=true,
,citecolor=blue
,linkcolor=blue]{hyperref}
\usepackage{comment}
\nofiles
\def\efloatseparator{\clearpage}
\begin{document}
\input{mydoc.fff}
\begin{comment}
...
\end{comment}
\end{document}
但是通过命令行!(我不想创建单独的.tex
文件)我已经足够接近解决方案了,因为这个命令字符串有效:
pdflatex "\def\efloatseparator{\clearpage}"\
"\nofiles"\
"\AtBeginDocument{\usepackage{comment}}"\
"\let\olddocument\document"\
"\let\oldenddocument\enddocument\"
"\renewenvironment{document}{\olddocument\input{mydoc.fff}}{\oldenddocument}"\
"\input{mydoc.tex}"
但我无法评论文档内容。
我也收到此警告:
Package auxhook Warning: Cannot patch \document,
(auxhook) using \AtBeginDocument instead.
这让我怀疑我做得很糟糕... :(
答案1
我不知道我找到的解决方案有多么“邪恶”,但它对我的目的有用:
pdflatex "\def\efloatseparator{\clearpage}"\
"\nofiles"\
"\let\olddocument\document"\
"\renewcommand{\document}{\olddocument\input{\jobname.fff}\enddocument}"\
"\nonstopmode\input{mydoc.tex}"
确实,我得到了一个.pdf
使用序言和.aux
我的主文件的文件生成的文件.tex
,但仅包含外部文件内容(在本例中是带有标题的图形)。