通过命令行输入文件(忽略文件主体)

通过命令行输入文件(忽略文件主体)

这个问题与以下问题相关:提取浮点数并读取外部辅助文件以获取字幕中的超链接信息

简单来说,我想使用文档文件来编译外部文件。在我的例子中,该文件preamble由包创建。.aux.fffendfloat

从此代码开始:

\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,但仅包含外部文件内容(在本例中是带有标题的图形)。

相关内容