每章分别\input同一个含有\label的文件使得每章的引用是独立的

发布于 2022-03-22 16:01:56

a.tex文件中有个表格,有个\label{tab},并在a.tex\ref{tab}。现在第一章1.tex和第二章2.tex\input{a.tex}。我想要的效果是第一章和第二章对这个表的引用是单独的(当然文字和表本身也是单独的),例如一个是表1,一个是表2。但是由于直接\input,应该还会报label重复定义的警告,有什么小技巧可以解决掉这个问题。
最后的效果相当于:我手动把a.tex的内容分别粘贴至1.tex2.tex里,然后将1.tex2.tex里的\label\ref里的tab分别改成tab1tab2

主要是a.tex被调用多次,可能还需要反复改,不想复制粘贴,容易出错。

目前的解决思路是\CatchFileDef1.tex中将a.tex的内容定义在\filei中,然后替换\filei中出现的tab为其他的内容;在2.tex中将a.tex的内容定义在\fileii中,然后替换\fileii中出现的tab为其他的内容。但是目前没有找到可以替换命令里的内容的方法,替换普通文本是可以用\StrSubstitute的。

查看更多

关注者
0
被浏览
1.3k
1 个回答
Beatrice
Beatrice 2022-03-22
这家伙很懒,什么也没写!
\documentclass{article}

\usepackage{filecontents}

\begin{filecontents}{testa.tex}
  \section{test section}
    \begin{table}
      \centering
      \begin{tabular}{c|c}
      a & a \\
      a & a
      \end{tabular}
      \caption{Caption}
      \label{\lpre:XXXX}
    \end{table}

  test \ref{\lpre:XXXX}
\end{filecontents}

\newcommand{\lpre}{\Alph{section}\alph{subsection}}

\begin{document}
\input{testa.tex}
\input{testa.tex}
\end{document}

感谢群内大佬的指点,我这边的需求是被重复导入的子文件一定在某个subsection下,所以使用subsection的计数器来避免重复,大家可以根据自己的需求自行选择合适的计数器。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览