不同文件之间的总数交叉引用

不同文件之间的总数交叉引用

假设我们在一个文件夹中有三个 .tex 文件,分别名为 PhDThesis.tex、Synopsis.tex 和 Conclusion.tex。还有一个名为 my_bibio.bib 的 bib 文件

在 Synopsis 中,我们对 PhDThesis 进行了简短描述。结论部分在 Synopsis 和 PhD_thesis 中均有添加。

我们需要在概要中引用 PhD_thesis 中的一些总数:

  1. 章节
  2. 参考文献(由 biber 生成)
  3. 人物
  4. 全文页数(博士论文最后一页)
  5. 附录页数(第一页和最后一页之间的差异)
  6. 不含附录的全文页数(结论部分最后一页)

同时,引用 PhDThesis 中的一些方程式和命题(来自 Synopsis)也是很好的。最好使用 Hyperref 包来引用来自 beamer 演示文稿的 PhDThesis。文中描述了一些问题这里

为了避免 hyperref 出现一些意想不到的进一步困难,我希望看到没有 hyperref 的变体和带有此包的变体。

我想我们可以以某种方式使用 xr 包。

这里是关于应用这个包来引用一些标记方程、命题等的链接,它在 MWE 中运行良好。

这里是关于 totalcount 和 totcount 的链接,分别用于计算表格和图表的总数以及参考文献的总数。

\ref{I-totalfigures}totalcount 包与 xr 配合良好,但是我无法引用像、\ref{I-totalpropositions}或 这样的总值\ref{I-totaltables}

xr 包根本不想与 totcount 包一起工作!xr-hyperref 也不想工作,请参阅这一页

描述了一种通用的解决方案这里然而我不喜欢创建大量的计数器并以复杂的方式使用它们。

此外,我无法想象如何保存两者的差异\pagerefs来形成附录中的总页数。

当前概要视图突出显示了计数器的理想值。如何填充这些值? 突出计数器的理想值

平均能量损失

博士论文.tex

    %\def\bibcite{\stepcounter{citenum}\oldcite}

    %total count of figures and tables
    % works good with xr package, however how to use this with xr package?!
    \usepackage[figure,table]{totalcount}
    % different from totcount, and not on CTAN. Found at
    % http://www.mrunix.de/forums/showpost.php?p=257537&postcount=10
    % Reference: http://www.latex-community.org/forum/viewtopic.php?f=5&t=9028

    \begin{document}


    \chapter{Approaches to the PhD problems} \label{chapt1}

    \begin{figure}[ht] 
      \caption{First thesis figure} 
      \label{thesis-fig-first}  
    \end{figure}

    \begin{figure}[ht] 
        \caption{Second thesis figure} 
        \label{thesis-fig-second}  
    \end{figure}


    \begin{table}[ht] 
        \caption{First thesis table} 
        \label{thesis-tab-first}  
    \end{table}

    \begin{table}[ht] 
        \caption{Second thesis table} 
        \label{thesis-tab-second}  
    \end{table}

    \chapter{The core of PhD thesis} \label{chapt2}


    \begin{propn}\label{thesis-prop-setminus}
        $A \setminus B = C$
    \end{propn}

    \begin{propn}\label{thesis-prop-cup}
        $A\cup B = C$
    \end{propn}

    \begin{equation}\label{thesis-eq-closure}
    A = \overline{\overline{A}}
    \end{equation}

    \begin{equation}\label{thesis-eq-cap}
    A\cap B = C
    \end{equation}


    Here we should mention two interesting papers \cite{firstPaper} and \cite{secondPaper}.


    This document contains \totalfigures{} figures, \totaltables{} tables, and
    %\total{citenum} reference (possibly with multiple citations). % does not want to work with xr package



    \newpage
    \include{conclusion}

    \printbibliography

    \newpage
    \chapter{Appendix} \label{AppendixRef}

    This is appendix
    \label{thesis-app-last-page}
    \end{document}

摘要.tex

    \documentclass[a5paper,10pt,twoside,openany,article]{memoir}

    \usepackage{amsmath, amsthm, amssymb}
    \newtheorem{prop}{Proposition}

    \usepackage{xr}
    \externaldocument[I-]{PhDThesis}

    %unfortunately hyperref variant does not want to work
    %this example is taken from: https://tex.stackexchange.com/questions/41539/does-hyperref-work-between-two-files
    %\usepackage{xr-hyper} 
    %\usepackage{hyperref} 
    %\externaldocument[I-]{docPhDThesis}[PhDThesis.pdf]% <- full or relative path 

    \begin{document}

    Here we need to mention that there are XXX chapters, XXX references, XXX figures, and XXX tables, XXX propositions in PhDThesis. PhDThesis consists of \ref{I-thesis-app-last-page} total pages, and XXX pages of Appendix, and \ref{I-common-concl-last-page} pages without Appendix.


    The following proposition has \ref{I-thesis-prop-cup} number in PhDThesis.

    \begin{prop} 
        $A\cup B = C$
    \end{prop}

    Here we need to mention, that \eqref{syn-eq-cap} equation is equal to equation, which has \eqref{I-common-concl-eq-cap}  number in common conclusion on page \pageref{I-common-concl-eq-cap} in PhDThesis. However the same equation has also \eqref{common-concl-eq-cap} number in common conclusion on page \pageref{common-concl-eq-cap} in Synopsis.


    \begin{equation}\label{syn-eq-cap}
    A\cap B = C
    \end{equation}

    \input{conclusion.tex}

    \end{document}

结论.tex

    This is a short description of PhDThesis results. The current part of the text is from the common conclusion of  PhDThesis and Synopsis.

    \begin{equation}\label{common-concl-eq-cap}
    A\cap B = C
    \end{equation}

    \label{common-concl-last-page}

我的书目目录

    @INCOLLECTION{firstPaper,
        author = {FirstAuthor, Name},
        title = {Interesting first paper}
    }

    @INCOLLECTION{secondPaper,
        author = {FirstAuthor, Name},
        title = {Interesting second paper}
    }

尿素转移酶终于,我解决了现实生活中复杂的 tex 文件中的问题!非常感谢海科·奥伯迪克沃纳皮特·范奥斯特鲁姆乌尔里希·迪茨

除了这个问题之外,我们还讨论了关于总文献计数器,关于将 zref 计数器的值保存在客户端 tex 文件中,以及关于附录和章节计数

答案1

zref支持用户定义的属性,可以将其添加到标签中。模块在文档末尾zref-lastpage创建一个标签。此标签的属性在属性列表中进行管理。它包含最后一页的页码。模块将属性(绝对页码)添加到。这用作总页数。LastPageLastPagezref-abspageabspageLastPage

此外,以下示例定义了一个counter包含当前章节号的新属性。该属性被添加到属性列表中LastPage,使最后一个章节号可供交叉引用。

% mybook.tex
\documentclass{book}
\usepackage{zref-abspage, zref-lastpage}

\makeatletter
\zref@newprop{chapter}[0]{\thechapter}
\zref@addprops{LastPage}{chapter}
\makeatother

% Label "LastPage" contains the following properties:
% * page: page number of last page
% * abspage: absolute page number
% * chapter: last chapter number

\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\chapter{Introduction}
\chapter{Summary}
\end{document}

mybook.aux文件包含标签数据,如上所述:

\zref@newlabel{LastPage}{\default{2}\page{3}\abspage{5}\chapter{2}}

引用其他文档

软件包包含用于文档间交叉引用的zref模块。使用可选参数作为导入标签名称的前缀来读取文件,以避免标签名称冲突。zref-xr.aux\zexternaldocument

\documentclass{article}
\usepackage{zref-xr, zref-user}

\zexternaldocument[book-]{test}

\begin{document}
The book has \zref[chapter]{book-LastPage} chapters
and \zref[abspage]{book-LastPage} pages.
\end{document}

结果

更多属性

这个问题包含一长串需要记住的属性。示例草图:

  • 數字數量。这在很大程度上取决于文档中如何指定图形,每个图形是否包含编号的标题,它们如何编号,环境中是否有多个标题figure。最简单的情况是连续的简单编号图形,以便最后一个图形编号也是图形的数量。这如上chapter例所示。

    否则,可以创建一个新的图形计数器。然后通过挂接到环境figure或宏\caption或任何取决于文档的程序来对图形进行计数。新属性采用此计数器的值作为标签的图形数量LastPage

  • 页面范围。zref在感兴趣的文档部分的开始和结束处设置标签。

    \usepackage{zref-abspage, zref-user}
    
    \zlabel{page-range-begin}
    ...
    \zlabel{page-range-end}
    

    确保标签指向正确的页面。如果部分以章节开始,则在后面立即添加开始标签,\chapter以避免标签移动到上一页。如果后面没有浮动对象,则可以在最后一段的末尾添加结束标签,或者在最后一个浮动对象中或下一页的开头添加结束标签。

    计算可按以下方式进行:

    \makeatletter
    % Mark labels as used to get LaTeX warnings for changed label values.
    \zref@refused{page-range-begin}
    \zref@refused{page-range-end}
    % Calculation, which can be used as property value
    \the\numexpr\zref@extract@default{page-range-end}{abspage}{0}
      - \zref@extract@default{page-range-begin}{abspage}{0}
      + 1 % if the begin label is on the first and the end label on the last page
    \relax
    \makeatother
    

如果您对某些文档元素的计数有疑问,我建议您提出不同的问题。可以将后续问题的链接添加到此问题的相应项目中。恕我直言,这会使问题和答案更加清晰。

相关内容