精华内容
下载资源
问答
  • Latex交叉引用

    万次阅读 2011-02-15 22:44:00
    需要引用, 则使用/ref{标号}, 这 里的"标号"应该是有/lable定义过的, 定义和引用的先后无关. 例如, 我们有 /subsection{Early Results} /label{sec-early} %这里定义子节标号 Euler's equation /begin{equation} e^...

    http://bbs.tongji.edu.cn/wForum/disparticle.php?boardName=Linux&ID=9524

     TeX使用/lable{标号}来定义标号, 这里的标号可以是字母,
    数字, 标点等组成的字符串. 需要引用, 则使用/ref{标号}, 这
    里的"标号"应该是有/lable定义过的, 定义和引用的先后无关.
    例如, 我们有
    /subsection{Early Results}
    /label{sec-early}                       %这里定义子节标号
    Euler's equation
    /begin{equation}
    e^{i/pi}+1=0 /label{eq:euler}           %这里定义方程标号
    /end{equation}
    /combines the five most important numbers in mathematics
    in a single euqtion.
    然后我们就可以如下地引用
    Equation~/ref{eq:euler} in Section~/ref{sec-early} ...
    不管这里方程或子节的标号是多少, 引用时都能准确地指出. 这
    就是我们要使用自动交叉引用的原因. 这里, /label会自动根据
    自己的位置, 得出标号, 如出现在equation, eqnarray, enumerate
    (项目), figure(图), table(表)环境中, 被引用的是公式号, 项
    目编号或图表号; 而出现在其它位置则是章节号.
     
        引用时除了/ref外还有一个/pageref{标号}, 它显示的是
    /label{标号}出现的页面位置.
     
        /cite和/bibitem我们在一开始的例子中就看到了, 我们这里
    更详细地说说这两条命令的完整格式:
    /cite[附加信息]{标号1, 标号2, ..., 标号n}
    /bibitem[名称]{标号}
    先看一个/cite加附加信息的例子(这个例子是在第5节例子的参考
    文献的基础上的):
    See /cite{texbook, companion} or /cite[page 20-22]{lamport} ..
    再看/bibitem的名称可选项:
    See /cite{kn:texbook} for more details.
    ...
    /begin{thebibliography}[lamport 86]     %[]中是最长文献编号
    /bibitem[Knuth 84]{kn:texbook} D. E. Knuth. {/sl The /TeX{}book}.
    Addison-Wesley, Reading.
    /end{thebibliography}
     
        这里再多说一句的是: 所有涉及交叉引用的文件, 在修改过与
    交叉引用有关的内容之后, 都需要对源文件进行两次编译才能得到
    正确的结果.

    展开全文
  • 目录 摘要 1. 简介 2. 指定标签或标记符 3. 标签的位置 4. 引用的生成和更新 5. 引用相关的警告信息 6. 扩展引用功能的宏包 6.1 varioref宏包 6.2 cleveref宏包 ...


    摘要

    交叉引用系统是LaTeX最强大的功能之一——可以在文档的任意地方引用带编号的结构,包括标题、图形、表格、公式等,并且更重要的是可以自动更新引用编号。本文概述了交叉引用系统,并介绍一些相关的扩展宏包。

    1. 简介

    LaTeX 实现了 \label\ref宏,进而可以引用同一文档内的绝大部分带编号对象。首先用\label赋予唯一标识符给某个带编号的对象,然后就可以使用\ref宏进行引用。此外,另一个不那么常用的命令是\pageref,它可以输出被引用对象所在的页码数。

    在下面的例子中,假设文档的第一节标题为“Introduction”,在该节添加了标记符sec:intro,之后就可以在接下来的章节中使用该标记符来指代之前的节:\ref{sec:intro}就会输出数字1。

    \section{Introduction}\label{sec:intro}
    % Content
    \section{Methods}
    In section \ref{sec:intro} on page
    \pageref{sec:intro} we introduced ...

    2. 指定标签或标记符

    引用的标记符并没有什么格式上的限制。不过,通用的做法是使用前缀+冒号作为标记符的开头。添加前缀可以帮助作者识别被引用对象的类型。例如,引用图形的标记符可以是\label{fig:schema}这样的形式。对于一些最常用的引用对象,下表给出了相应的前缀名建议。

    对象 前缀 对象 前缀
    Chapter ch Figure fig
    Section sec Table tab
    Subsection ssec List item itm
    Appendix app Equation eqn

    当然,使用前缀是个好习惯,不过这也仅仅是建议——作者完全可以使用另一套前缀或者根本不使用。

    3. 标签的位置

    理想情况下,应该在被引用的计数对象之后立即放置\label标记。而对于图形或表格这样的浮动环境,应在\caption宏内或之后放置\label,这是因为图形或表格的编号是由\caption生成的。如果在编号对象之前使用\label基本上都会导致引用错误。当然,在编号对象之后太久才使用\label也可能会有问题。

    4. 引用的生成和更新

    一般来说需要两次运行排版命令才能生成引用编号。背后的原理是这样的,第一次运行排版命令时,系统会收集所有标记符信息,并写入一个辅助文件内;而再次运行排版命令时,系统会读取该辅助文件并进而更新引用。只要系统不能正确生成引用,那么在输出文档的相应位置就会生成双问号??标记。如果再次排版后还不能更新正确的引用,可以看一下log日志文件确定问题。下一节将介绍引用相关的警告信息。

    5. 引用相关的警告信息

    log日志文件中出现与引用相关的警告并不少见。如果标识符的定义有问题,一般会出现两种警告:1. 未定义的引用(undefined references)2. 重复定义的标签(multiply-defined labels)

    第一种情况是由于引用的标识符没有定义,而第二种情况是由于多次定义了同一标识符。例如,如果作者复制一些代码片段(比如图形环境)而忘记重命名其中的标识符,那么就会出现重复定义标签的问题。

    6. 扩展引用功能的宏包

    很多宏包都扩展了LaTeX的交叉引用系统。这里简要介绍以下几个宏包:varioref, cleveref, hyperref, xr/xr-hyper。选择这些宏包的原因是每个宏包都在独特的方面扩展了原有的功能。大体上来说,这些宏包并没有重新定义标准引用命令的功能,而是定义了新命令。因此,标准的\label, \ref\pageref功能并不会受到影响。

    6.1 varioref宏包

    varioref宏包将基础的引用命令扩展为略微更加复杂的形式。其中,\vref命令合并了\ref\pageref的功能,会同时输出被引用对象的编号和所在的页码数。如果被引用对象位于同一页,那么会省略页码数。而\vpageref则增加了\pageref的功能:如果被引用对象位于同一页则输出“on this page”,否则输出所在页码数。最后,该宏包还提供了\vrefrange\vpagerefrange命令,用于多重引用时输出编号也页码范围。

    6.2 cleveref宏包

    很多情况下作者都会在文本中提及所引用对象的类型。例如,某个图形可以引用为“This is shown in figure 1”。而\ref宏只会输出所引用对象的编号,因此这就是cleveref宏包的作用。该宏包会自动识别引用对象的类型,并打印出对应的引用。为此,该宏包提供了\cref命令。类似于varioref宏包,本宏包也实现了输出引用对象所在页码的宏\cpageref和页码范围的宏\cpagerefrange

    6.3 hyperref宏包

    hyperref宏包中涉及交叉引用的主要功能是给引用加上链接:点击该引用会转到被引用对象所在的页面。只要在导言区导入该宏包即可实现相应功能。同时,该宏包还定义了\autoref宏,其功能类似于cleveref宏包中的\cref命令,即同时输出引用编号和引用类型。此外,该宏包实现了大量与交叉引用无关的其它功能,相关讨论已经超出了本文的主题范围。尽管如此,这里仍然推荐浏览一下该宏包的文档以了解该宏包的更多信息。

    6.4 xr/xr-hyper宏包

    xr宏包(eXternal References)可以引用其它文档中的对象。这在科技论文中特别有用,因为经常要在正文之外提供补充材料。使用该宏包就可以在正文中引用补充材料中的图形和表格。要实现此功能,必须在正文的导言区内使用\externaldocument{filename}来指定外部文档。如果外部的tex文件位于不同文件夹下,那么也要指定相应的路径。然后就可以在正文中引用外部文档中的标识符了。另外要注意的是外部文档每次修改引用标签后都要编译一下,这样正文中才能生成正确的编号。

    \documentclass{article}
    \usepackage{xr}
    \externaldocument{supplementary-materials}
    \begin{document}
    See supplementary figure \ref{fig:abc}.
    \end{document}

    对于这样指向外部文档的引用,如果还想要创建超链接,那么使用xr-hyper宏包代替xr

    6.5 宏包载入顺序

    由于这些宏包都会影响引用的行为,因此,载入多个宏包可能造成冲突。所以,宏包载入时需要按照正确的顺序,即:(1) xr/xr-hyper, (2) varioref, (3) hyperref, 最后是 (4) cleveref

    6.6 showlabels 宏包

    最后要提一下showlabels宏包,其功能是在输出的PDF文档的页边处显示标识符。因此,该宏包特别适用于在带有大量标签的长文档中追踪标识符的场合。

    参考文献


    说明:

    转载于:https://www.cnblogs.com/wenbosheng/p/9537774.html

    展开全文
  • 最近写report 遇到一个问题,就是在图片或表格的交叉引用时, 便已没有问题,正文中相应位置显示 ?? 或者不显示, 查了相关资料之后发现问题出在\label{}和\caption{} 的前后顺序上。 问题如下: \documentclass{...

    最近写report 遇到一个问题,就是在图片或表格的交叉引用时, 便已没有问题,正文中相应位置显示 ?? 或者不显示, 查了相关资料之后发现问题出在\label{}\caption{} 的前后顺序上。
    问题如下:

    \documentclass{article}
    \usepackage{booktabs}
    \begin{document}
    	The price of several fruits are in Table \ref{table1}:
    	\begin{table}[ht]
    		\centering
    		\begin{tabular}{cc}
    			\toprule
    			types    & Price  \\ 
    			\midrule
    			Apple & 10\\
    			Banana  & 9\\
    			Pear & 12   \\ 
    			\bottomrule
    		\end{tabular}
    	\label{table1}
    	\caption{The price table.}
    	\end{table}
    \end{document}
    

    相应的PDF文件如下: 没有显示 Table 后并没有出现1, 编译没有错误:
    在这里插入图片描述

    正确的顺序应该是:\label{}应该在\caption{}的后边,如下所示。

    \documentclass{article}
    \usepackage{booktabs}
    \begin{document}
    	The price of several fruits are in Table \ref{table1}:
    	\begin{table}[ht]
    		\centering
    		\begin{tabular}{cc}
    			\toprule
    			types    & Price  \\ 
    			\midrule
    			Apple & 10\\
    			Banana  & 9\\
    			Pear & 12   \\ 
    			\bottomrule
    		\end{tabular}
    	\caption{The price table.}
    	\label{table1}
    	\end{table}
    \end{document}
    

    生成的pdf 文件如下:
    在这里插入图片描述

    展开全文
  • LaTex正文排版与交叉引用
  • LaTeX 中可以通过交叉引用十分方便的解决该问题(ps: Word 里面也有交叉引用的功能,但用起来不是 那么方便)。在 LaTeX 中几乎可以实现对所有的自动编号内容引用的自动化管理。本篇文章是对 LaTeX 中的交...

    简介

    在用 Word 编辑文档时,遇见的最为烦恼的问题莫过于,在文中用到“如图 x-x 所示”的表示时,当修改文章时,换掉了整篇文章图表的编号,再去修改文中引用到的编号不胜其烦。在 LaTeX 中可以通过交叉引用十分方便的解决该问题(ps: Word 里面也有交叉引用的功能,但用起来不是 那么方便)。在 LaTeX 中几乎可以实现对所有的自动编号内容引用的自动化管理。本篇文章是对 LaTeX 中的交叉引用做一个简要的介绍。在 LaTeX 中的交叉引用可以通过下面一对命令实现,顾名思义,简单的意思就是在引用之前先标记。

    \label{marker}

    ??

    引用章节

    首先来做一个简单的章节应用示例:

    \section{交叉引用}

    \subsection{引用章节}\label{subsection1}

    \subsection{引用图表}

    在 \ref{subsection1} 小节中我们介绍了如何在\LaTeX 中引用章节,这节我们给出一个引用图表的示例。

    示例结果:

    引用图表

    引用图表示例:

    在 \ref{subsection1} 节中我们介绍了如何在 LaTeX 中引用章节,这节我们给出一个引用图表的示例。

    \begin{figure}[h]

    \centering

    \includegraphics[width=0.3\linewidth]{logo.png}

    \caption{ElegantLaTeX Logo}

    \label{fig:logo}

    \end{figure}

    图 \ref{fig:logo} 是 ElegantLaTeX 的 Logo。

    引用数学式

    \begin{equation}

    E = mc^{2}

    \label{eq:1}

    \end{equation}

    在式\ref{eq:1}的质能方程中$m$表示物体的质量。

    引用页

    引用页示例:

    通过\pageref{subsection1}页节\ref{subsection1}的介绍,能基本了解在\LaTeX中交叉引用的用法了。

    以上三个示例结果如图:

    相关宏包

    交叉引用作为\LaTeX中最为实用的功能之一,不少的宏包都对其进行了扩展其中最为常用的是amsmath, varioref, cleveref以及hyperref。在amsmath宏包中通过命令eref来实现引用varioref中有vref命令,cleveref中有cref命令,在hyperref则叫autoref,通过下面的例子可以简单比较不同宏包中引用命令在格式上的差异。

    \begin{equation}\label{eq:2}

    \sum_{i=0}^{\infty} a_i x^i

    \end{equation}

    首先通过vref命令来引用等式\vref{eq:2},eref也可以引用式\eqref{eq:2}, cref命令自然也行\cref{eq:2},最后我们再来试试autoref吧,召唤等式\autoref{eq:2}。

     在这里需要简要的提一下几个命令之间的不同:varioref宏包的vref命令可以通过宏包提供的 labelformat 命令来定义引用的格式,但是vref命令不能根据上下文来决定引用的格式,如通常在句子开头需要用“Equation 1”但在中间或者末尾用”eq.1″即可,autoref命令可以实现引用之间的跳转,但该命令使用的默认超链接格式有个红框,个人认为比较丑,cref命令在自定义格式方面功能更加强大,eqref只能用于数学式子。下面是从stackflow上面引用的一个例子,自定义cref不等式引用。

    \cref{ab,cd} and \cref{ab,cd,ef}

    \begin{equation}

    \label[ineqs]{ab}

    a>b

    \end{equation}

    and

    \begin{equation}

    \label[ineqs]{cd}

    c>b

    \end{equation}

    and

    \begin{equation}

    \label[ineqs]{ef}

    e>f

    \end{equation}

    运行结果如下图所示:

    文件之间的交叉引用

    通过上面的例子基本上能完成文章的交叉引用需要了,但在我们撰写长篇文章时,需要将tex文件分成好几个文件,此时,可以通过zr宏包来实现不同文件之间的交叉引用,示例:文件example.tex

    \documentclass{article}

    \usepackage{xr}

    \externaldocument{chapterI}

    \begin{document}

    this is section \ref{conclusion}

    \end{document}

    文件chapterI.tex

    \section{Conclusion}\label{conclusion}

    需要注意的是在使用中文测试时,编译完后生成的引用会是??,但是在英文中没有问题,具体解释有待进一步探索。

    选自:http://elegantlatex.org/2015/02/06/latex-cross-reference/

    展开全文
  • 最近在写response, 里面要不时地...\usepackage{hyperref} % 引用包 \hypersetup{ colorlinks=true, linkcolor=blue, % 设置链接的颜色 } XXXXXXXXXXXXXXXXX\label{ref} %加锚点 XXXXXXXXXXXX \hyperref[ref]{tex
  • 最近在学LaTeX,学到图表交叉引用的时候,发现不能正常显示图表的编号,显示的都是”??“,这让我有点苦恼呀!经过一系列的问题排查之后,确定了问题所在!!!造成这样的问题都是因为只编译了一次!!!有交叉...
  • LaTeX最方便的一点,我觉得就是正文交叉引用和参考文献引用了。 1. 正文交叉引用 正文的交叉引用,只需要对要交叉引用的地方,加上\label{***},其中***表示对要引用地方的引用方式。 然后在要引用的地方写入\ref{**...
  • 有时在引用latex表格时会出现引用标号不对的问题,如: \begin{table}[!ht] \label{tab:table2} \caption{表格示例2} \centering \begin{tabular}{ Ic|c|c|cI} \whline 一列& 两列& 三列& 四列 \\\hline 1 & 2 ...
  • WinEdt LaTeX参考文献的交叉引用

    千次阅读 2019-01-13 23:14:44
    colorlinks, linkcolor=blue, citecolor=blue 第二选项设置像定义图什么的变成蓝色(默认为红色),第三选项设置参考文献引用为蓝色(默认为绿色) 再加上: \usepackage[numbers,sort&compress]{natbib} ...
  • LaTex资料(页面设置与交叉引用),PDF格式
  • 在论文写作中,交叉引用很常见,方便读者快速找到你所指向的 文献,图片,表格,段落等。那么在latex如何快捷地实现呢? 1. 参考文献 1.1 参考文献的生成 有两种方法,一是使用 bibtex的方法,二是使用 item的...
  • 都要在引言区引用相应的package \documentclass[times,twocolumn,final,UTF8]{elsarticle} %% \usepackage{graphicx} %\usepackage{cite} % Following three lines are needed for this document. % If you ...
  • 首先,我们先区分一下几种公式交叉引用的区别:\ref, \cref, \eqref 以下面公式和定理为例 \begin{equation} \label{linear_model} Ax + By = 0 \end{equation} \begin{theorem} \label{pythagorean_theorem} In ...
  • 交叉引用 例如引用图片,在图片的名称(caption)后添加label{}标签,需要引用的部分使用\ref{} ,{}中填写label{}中的内容即可: \section{交叉引用} 从图\ref{师徒四人}中,可以看到师徒四人。 \begin{figure}...
  • hyperref宏包可算是LaTeX最为复杂的宏包之一,它提供了大量的选项和命令,完成各种设置和功能,这里主要记录以PDF格式输出时,hyperref有关标签和超链接的一些最基本的功能和设置。 hyperref最基本的用法非常简单,...
  • LaTeX学习摘记(八):交叉引用

    千次阅读 2013-05-20 09:56:57
    colorlinks, linkcolor=blue, citecolor=blue 第二选项设置像定义图什么的变成蓝色(默认为红色),第三选项设置参考文献引用为蓝色(默认为绿色) 再加上: \usepackage[numbers,sort&compress]{natbib} ...
  • %使用ref命令引入标签,实现交叉引用 \begin{figure}[htbp] %使用figure浮动体环境--对图片的 %参数指定排版位值默认(tbp) % h: 此处(here)--d代码所在的上下文位置 % t:页...
  • 交叉引用

    千次阅读 2012-09-13 22:48:03
    LaTeX提供了三条交叉引用命令、 \label{书签名} 书签命令,紧跟在被应用对象之后,如章节、插图、表格的标题之后,或文本之后,或插在各种环境中;书签名是专为该书签命令所起的名字, 以便区别于其他...
  • 将交叉引用转换为超链接,并扩展LaTeX交叉引用机制,使其不仅可以在文档内工作,而且可以在可能位于远程位置的文档之间工作, 在可能的情况下,将重音符号和特殊字符命令转换为等效HTML字符代码, 识别超文本链接...
  • 参考文献的提取: --bibliography=ref.bib ref.bib 是参考文献文件,放在跟.tex文件一个目录下 交叉引用的提取:--filter pandoc-crossref 为了处理数字、方程式、表格和交叉引用的编号,有一个名为pandoc-crossref...

空空如也

空空如也

1 2 3 4 5 6
收藏数 105
精华内容 42
热门标签
关键字:

latex交叉引用