Forgot password?
 Register account
View 6381|Reply 2

include时,能不能传递进去一个参数?

[Copy link]

411

Threads

1623

Posts

110K

Credits

Credits
11833

Show all posts

abababa Posted 2020-6-30 10:34 |Read mode
如题,主要是想解决编号问题。我的想法是这样的:
首先在一个目录文件myindex.tex里如下写:
\renewcommand{\dir}{射影几何问题}
\include{\dir/四边形中的调和}
\renewcommand{\dir}{初等代数}
\include{\dir/复数模问题}

就表示文件夹“射影几何问题”里有一堆单独的文件,每个文件都属于某一类问题。
然后“射影几何问题\四边形中的调和.tex”这个文件里就都是关于四边形调和的,这里想用一些公式,但又怕编号编重复了。不过因为引用时,主要还是在同一个文件夹里去引用,比如“四边形中的调和”文件里的编号,一般就只在射影几何问题里去引用,不会在初等代数的问题里引用。

所以我想在include时,传递进去一个参数,比如叫 mypre1和mypre2,这个参数可以自动根据include的内容来定。比如\include{\dir/四边形中的调和},就让“mypre1=射影几何问题, mypre2=四边形中的调和”这样。如果能把中文转成拼音就更好了。然后在“四边形中的调和.tex”里需要编号时就这样写:
\label{\mypre1_\mypre2_001}
这样就把不同文件夹里的编号区分开了,编号时也不用写一堆前缀,只要统一加一个mypre就行,引用时也觉得好引用一点,因为主要还是在同一个文件夹里互相引用,mypre1都是统一的,然后mypre2的位置就直接找到那个文件名来引用就行。

请问这个能做到吗?

3159

Threads

7941

Posts

610K

Credits

Credits
63770
QQ

Show all posts

hbghlyj Posted 2025-5-18 21:26
借助 xr 包,在主文档里为每个子文档指定一个前缀
主文档:
\documentclass{article}
\usepackage{xr}
\usepackage{hyperref}

% 为“射影几何问题/四边形中的调和.tex”指定前缀 proj-quad-
\externaldocument[proj-quad-]{射影几何问题/四边形中的调和}

% 为“初等代数/复数模问题.tex”指定前缀 alg-cplx-
\externaldocument[alg-cplx-]{初等代数/复数模问题}

\begin{document}

\ref{proj-quad-thm:harmonic},\ref{alg-cplx-lem:modulus}

\end{document}
子文档:
% 射影几何问题/四边形中的调和.tex
\section{调和四边形}
\label{thm:harmonic}
% ……

% 初等代数/复数模问题.tex
\section{复数的模}
\label{lem:modulus}
% ……
编译主文档时 xr 会自动把外部 .aux 里的\label{thm:harmonic}重命名为\label{proj-quad-thm:harmonic},从而保证不同子文档的标签不会冲突。

411

Threads

1623

Posts

110K

Credits

Credits
11833

Show all posts

 Author| abababa Posted 2025-5-19 08:57
hbghlyj 发表于 2025-5-18 21:26
借助 xr 包,在主文档里为每个子文档指定一个前缀
主文档:
[precode]\documentclass{article}
这些东西加label时都容易,引用时如果在当前文档内部引用也容易,在其它文档里引用就麻烦了,得知道前缀,还要明确地打出来才行,不然去找被引用的文档,会发现文档里的label根本没有那个前缀,还要去找前缀。如果忘了有这个加前缀的操作,引用就变成问号了,明明看着是和label一样,又不知道错在哪。

Mobile version|Discuz Math Forum

2025-5-31 11:00 GMT+8

Powered by Discuz!

× Quick Reply To Top Edit