我有两个文件,分别是 file1 和 file2
假设在file1中
...bla bla bla,我是文件 1 中的文本...,我想在文件 2 中重复它...bla bla bla...
我想在文件2中重复文件1中的某些文本(我是文件1中的文本......,我想在文件2中重复它......)。
预期文件 2 中的内容:
一些文本,一些文本...文件 1 中的以下句子“我是文件 1 中的文本...,我想在文件 2 中重复它...”已被修改。更多文本,更多文本
这只是为了避免在两个文件中重复修改这些文本。
可以自动完成吗?
就在几秒钟前,我发现下面的代码适用于一个文件,但如何改进它以适应两个文件的情况?
\documentclass{minimal}
\makeatletter
\newcommand{\customlabel}[2]{%
\protected@write \@auxout {}{\string \newlabel {#1}{{#2}{}}}#2}
\makeatother
\begin{document}
Here is some text. \customlabel{foobar}{asdasd asdfasdf asdfasdf}
Here is some more text \ref{foobar}.
\end{document}
答案1
迄今为止最简单的方法是
(I am text in file1..., I want to repeat it in file2...)
在一个文件中,然后让file-shared.tex
每个file1
都说file2
\input{file-shared}
在文中的相关点。
答案2
以下是仅使用一个文件来保存要重复的内容的策略的伪代码。您必须记住各个部分的名称,但这对于 ref 命令也是必要的。
大纲太长,无法发表评论。
我现在没有足够的时间(或知识)来弄清楚细节。也许你可以做到,也许使用你在问题中添加的代码,或者其他人可以做到。如果有人提供有效的代码,我可以删除这个答案。
文件1
% file1.tex
\documentclass[12pt]{article}
%first argument is the name of the stuff to repeat
%second argument is the content
\newcommand{\stufftorepeat}[2]{%
% write to stufftorepeat.tex, expanding just the right
% amount of input (not something I know how to do)
% \newcommand{\#1}{#2}
%
% now just put stuff here
#2
}
% open file stufftorepeat.tex
\begin{document}
Some normal text
\stufftorepeat{firstbatch}{blah, blah, blah}
More text.
\stufftorepeat{secondbatch}{whatever}
% close stufftorepeat.tex
\end{document}
这是文件2
# file2.tex
\documentclass[12pt]{article}
\input{stufftorepeat}
\begin{document}
Repeated from file1:
\firstbatch{}
More text from file1:
\secondbatch{}
\end{document}