LaTeX教程(016)-LaTeX文档结构(16)

LaTeX教程(016)- LaTeX \LaTeX LATEX文档结构(16)

接上一讲

我们前面知道,\vref是对\ref的升级,而varioref包也提供了一个对\pageref升级的命令\vpageref。它和\vref的原理很相似,内置了一些判断。

\vpageref[same-page][other-page]{key}

在不指定选项的前提下,它所输出的内容就是\vref字符串去掉其中的\ref字符串。例如,如果\ref的输出是3.3,而\vref输出(我们假设引用和引用对象在彼此的对面)就是3.3 on the facing page,那么\vpageref的输出就是on the facing page,没有前面\ref生成的索引字符串。其它情形依此类推,分别是on the preceding page,on the following page以及on page x。只有引用和引用对象在同一页的时候和\vref不同,这种情况下,\vpageref会输出on the current page。该情形下的字符串被存储在命令\reftextcurrent中,重定义这个命令可以将"on the current page"改成其他你想要的字符串。

另外,\vpageref生成的字符串中,只有on page x中的x可以被自动转换为超链接。

注意,不管使用\vref还是\vpageref,最好在命令前后分别放置一个空格,否则它们生成的字符串很可能会和前后文本连在一起。当然,如果是在一个段落的开头,那么前面的空格就不需要了。

\vpageref\vref多了一个选项。其中same-page选项和\vrefsame-page选项作用相同,用来代替引用和引用对象在同一页时的输出字符串。而other-page用于其他情况,也就是引用和引用对象不在同一页的情况。这种情况下,other-page中内容会放置在原本的输出内容的前面。如"other-page+on the preceding page"等。我们可以做个测试:

\documentclass{book}
\usepackage[a5paper,margin=1.5in]{geometry}
\usepackage[nospace]{varioref}
\usepackage{kantlipsum}
\usepackage[colorlinks=true,linkcolor=blue]{hyperref}
\begin{document}\chapter{A chapter}
\vpageref[same][other]{test}\kant[1]\vpageref[same][other]{test}\kant[2]\label{test}\kant[3]\vpageref[same][other]{test}
\chapter{A chapter two}
\vpageref[same][other]{test}
\end{document}

这里不截图了,自行编译一下。因为有交叉引用,记得要编译两遍。

实际上,像"on the preceding page","on the following page"等文本,也有存储它们的命令,它们分别是

\reftextafter
\reftextafter
\reftextfacebefore
\reftextfaceafter

我们将在下文中讲解这些命令。

\vpageref的星号变体\vpageref*和其原型不同的是它不会生成超链接(注意,经笔者本人测试,该机制并不总是有效的)。

\vpagerefrange命令,其形式如下:

\vpagerefrange[same-page]{first}{last}
\vpagerefrange*[same-page]{first}{last}

它和\vpageref很像,不同的地方是它有两个必选参数,而只有一个选项。该命令用两个索引来确定一个范围,它可以生成如"on page 15-18"这样的索引字符串。我们用一个例子演示一下:

\documentclass{book}
\usepackage[a5paper,margin=1.5in]{geometry}
\usepackage[nospace]{varioref}
\usepackage{kantlipsum}
\usepackage[colorlinks=true,linkcolor=blue]{hyperref}
\begin{document}\chapter{A chapter}
\label{chap:one}\label{chap:oone}
\kant[1]\kant[2]\chapter{A chapter two}\label{chap:two}\label{chap:twoo}\dots some text \dots\vpagerefrange{chap:one}{chap:oone}\vpagerefrange{chap:two}{chap:twoo}\vpagerefrange{chap:one}{chap:two}\vpagerefrange[Customized text]{chap:two}{chap:twoo}\end{document}

编译(只截取部分,记得编译两遍):
在这里插入图片描述

如上面的例子所呈现的那样,如果两标签在同一页上,则只会显示一个页码。更特别地,如果两个标签都在当前页上,并且没有指定same-page选项时,则会显示"on the current page"。这句文本被存储在命令\reftextcurrent中,可以重定义它。而如果指定了该选项,那么此种情况下就会显示我们在选项中自定义的文本(注意,选项只对两个标签都在当前文件时有效)。其它的情况(两个标签在不同页时)则会显示"on pages x-xx"。如果你用了hyperref,那么两个页码都会生成单独的链接,可以跳转至各自的页码。

和前面讲过的命令一样,星号形式的命令可以抑制hyperref包生成链接(注意,该机制也并不总是有效的)。

\vrefrange,它的命令形或如下:

\vrefrange[same-page]{first}{last}

它可以简单地表示成一个由代码:

\ref{first} to \ref{last} \vrefpagerange[same-page]{first}{last}

定义而成的命令。我们在期望表示"chapter 2 to chapter 4 on pages 11-28"这样的索引字符串时,才需要使用它。我们用一个例子演示:

\documentclass{book}
\usepackage[a5paper,margin=1.5in]{geometry}
\usepackage[nospace]{varioref}
\usepackage{kantlipsum}
\usepackage[colorlinks=true,linkcolor=blue]{hyperref}
\begin{document}
% 回忆一下上一篇,\labelformat是用来定制索引字符串的
\labelformat{chapter}{chapter~#1}\chapter{A chapter}
\label{chap:one}\kant[1]\kant[2]\chapter{A chapter two}\label{chap:two}\dots some text \dots\vrefrange{chap:one}{chap:two}\end{document}

编译:

在这里插入图片描述

定义你自己的索引命令

有时候你可能会想用varioref包的内部特性来定义你自己的索引命令,该包为此提供了三个辅助命令。

\vpagerefcompare{key1}{key2}{true-code}{false-code}

该命令比较key1key2处的页码,并且根据比较结果,决定执行true-code还是false-code。如果两个标签的页码相等,就执行true-code,否则执行false-code

\vpagerefnearby{key}{true-code}{false-code}

该命令会判断标签\labek{key}是不是在附近,通过判断它生成的页索引是文本的(如previous, current, next等)还是一个带有数字页码的字符串。如果是前者,执行true-code,否则(后者)执行false-code

\vrefpagenum{cmd}{key}

该命令允许我们定义自己的小命令,以实现类似于前面两个命令所提供的功能。第二个命令是一个标签,也就是我们用在\label中的东西。第一个参数是任意一个命令(注意必须是自定义的,不能和已有的命令重复),在使用了上述命令之后,cmd就会存储key的页码。我们用一个例子演示一下:

\documentclass{book}
\usepackage[a5paper,margin=1.5in]{geometry}
\usepackage[nospace]{varioref}
\begin{document}\chapter{A chapter}
\label{chap:one}\vrefpagenum{\mycmd}{chap:one} %使用\mycmd存储chap:one的页码\mycmd\end{document}

编译:
在这里插入图片描述

这些命令几乎不会用到,这里不详细展开。

语言选项

该包支持由babel系统(第13章会讲到)定义的选项,因此,像`\usepackage[ngerman]{varioref},这样正文中的标签就会生成符合德语的索引字符串。如果你的文档是多语言的,那么就要指定所有的语言。如果你所用的语言不在选项中,那么你就需要定制自己的索引字符串,定制的方法我们后面讲。

个性化的定制

为了更进一步的定制,生成的索引字符串都是由宏来定义的,也就是说,它们存储在一些命令中。在默认情况下(没有设置其他语言的情况下),如果标签在索引的前一页,但不在对面,索引就会生成字符串"on the preceding page"。该文本存储在命令\reftextbefore。而如果标签在索引的前一页,并且它们相互在对方的对面一页,即,标签在左手页,索引在右手页,那么索引就会生成字符串"on the facing page"。该文本存储在命令\reftextfacebefore中。

类似的,如果如果标签在索引的后面一页,但不在对面,索引就会生成字符串"on the following page"。这段文本存储在命令\reftextafter中。而如果标签在索引后面一页,并且在对面,那么就会生成"on the facing page"。该文本存储在命令\reftextfaceafter中。

如上一篇所说,\reftextfacebefore\reftextfaceafter只在双页模式的文档类中才会生效。

而标签和索引在同一页时,生成的索引字符串被存储在命令\reftextcurrent中。

这些命令都可以被重定义,用你想用的语言。

我们作个演示:

\documentclass{ctexbook} % 注意我们要使用到中文
% 因此将文档类改为ctexbook,并且记得使用xelatex引擎编译
\usepackage[a5paper,margin=1.5in]{geometry}
\usepackage[nospace]{varioref}
\usepackage{kantlipsum}
\usepackage[colorlinks=true,linkcolor=blue]{hyperref}
\begin{document}
\chapter{Chapter one}\renewcommand{\reftextbefore}{在上一页}
\renewcommand{\reftextafter}{在下一页}
\renewcommand{\reftextfacebefore}{在左手页}
\renewcommand{\reftextfaceafter}{在右手页}
\renewcommand{\reftextcurrent}{在当前页}\label{test01}\vpageref{test01}\vpageref{test02}\kant[1]
\label{test02}\vpageref{test01}\vpageref{test03}\kant[2]
\label{test03}\vpageref{test02}\end{document}

使用中文时记得使用xelatex引擎编译,并且编译两遍。这里不截图了,读者自行编译。

当标签和索引相距较远时,索引就会调用\reftextfaraway命令。该命令和前面那些命令不同,它有一个参数。默认情况下,它存储的是"on page x"这样的字符串,我们在重定义它的时候可以使用\pageref来生成页码。例如,我们在前面的例子中加上一行重定义命令:

\renewcommand\reftextfaraway[1]{在第~\pageref{#1}~页}

然后在最后的\vpageref{test02}代码后面加上一行\vpageref{test01},再编译就会生成索引字符串"在第 1 页"。

\reftextpagerange\reftextlabelrange的内部定义都非常简单,它们分别通过两个\pageref\ref来表示从一个标签到另一个标签的范围。

如果前面的例子你都自己编译过,那么你可能会发现这样的现象: 不会连续出现两个相同的文本型索引(像on the current page, on the previous page这种)。我们用一个例子演示一下:

\documentclass{book}
\usepackage[a5paper,margin=1.5in]{geometry}
\usepackage[nospace]{varioref}
\begin{document}
\chapter{Chapter one}\label{test01}sometext\dots\vpageref{test01}\vpageref{test01}\vpageref{test01}\vpageref{test01}\end{document}

编译:

在这里插入图片描述

哪怕相邻索引对应的是两个不同的标签的key,只要调用了同一个\reftext...命令,就会显示不同的文本,中间隔着一些内容也不影响:

\documentclass{book}
\usepackage[a5paper,margin=1.5in]{geometry}
\usepackage[nospace]{varioref}
\usepackage{kantlipsum}
\begin{document}\chapter{Chapter one}\label{test01}sometext\dots\vpageref{test01}\kant[1]
\label{test02}\vpageref{test02}\end{document}

内容较多,请读者自行编译。

如果同一个\reftext...命令连续出现多次,则会有两个字符串轮流出现的现象,如前面的例子所示。

但是,如果两个相同的\reftext...命令之间,隔着一个不同的\reftext...命令,就会打破这种限制,也就是说,这两个相同的\reftext...命令生成的文本也可能是相同的。我们演示一下:

\documentclass{book}
\usepackage[a5paper,margin=1.5in]{geometry}
\usepackage[nospace]{varioref}
\usepackage{kantlipsum}
\begin{document}\chapter{Chapter one}\label{test01}sometext\dots\vpageref{test01}\vpageref{test02}\vpageref{test01}\kant[1]
\label{test02}\vpageref{test01}\vpageref{test02}\end{document}

请读者自行编译。

会出现这种现象的不仅仅是\reftextcurrent,文本型索引的那几个命令都有这样的特性。

这是因为varioref包想要将索引文本插入到日常用语中,而为了避免语言上的重复,给每一个\reftext...命令准备了两个不同的字符串,使它们轮流出现。varioref包通过调用\reftextvario命令实现这一特性。该命令有两个参数,它使得这两个参数中的内容轮流出现。我们用一个例子演示:

\documentclass{book}
\usepackage[a5paper,margin=1.5in]{geometry}
\usepackage[nospace]{varioref}
\usepackage{kantlipsum}
\begin{document}\chapter{Chapter one}sometext\dots\reftextvario{test01}{test02}\reftextvario{test01}{test02}\reftextvario{test01}{test02}\end{document}

编译:
在这里插入图片描述

而默认情况下,varioref是像如下这种方式定义这些索引命令的:

\newcommand\reftextfaceafter{on the \reftextvario{facing}{next} page}
\newcommand\reftextfacebefore{on the \reftextvario{facing}{preceding} page}
\newcommand\reftextafter {on the \reftextvario{following}{next} page}
\newcommand\reftextbefore{on the \reftextvario{preceding page}{page before}}
\newcommand\reftextcurrent {on \reftextvario{this}{the current} page}
\newcommand\reftextfaraway [1]{on page~\pageref{#1}}
\newcommand\reftextpagerange [2]{on pages~\pageref{#1}--\pageref{#2}}
\newcommand\reftextlabelrange[2]{\ref{#1} to~\ref{#2}}

这些命令你都可以根据自己的需求自定义它们。

有些用户可能不喜欢文本型的索引,那么我们可以将这些\reftext...命令定义为on page~\thevpagerefnum\thevpagerefnum会获取到当前索引的页码。例如:

\documentclass{book}
\usepackage[a5paper,margin=1.5in]{geometry}
\usepackage[nospace]{varioref}
\usepackage{kantlipsum}
\begin{document}\renewcommand\reftextcurrent {on page~\thevpagerefnum}
\renewcommand\reftextbefore {on page~\thevpagerefnum}\chapter{Chapter one}sometext\dots
\label{test01}\vpageref{test01}\kant[1]\vpageref{test01}\end{document}

自行编译一下,两处索引都会显示为"on page 1"。

如果你想让所有的文本型索引都不显示(被忽略,而不是变成页码),只显示那些页码索引,那么就把\reftext...命令定义成{\unskip}。例如:

\documentclass{book}
\usepackage[a5paper,margin=1.5in]{geometry}
\usepackage[nospace]{varioref}
\usepackage{kantlipsum}\begin{document}\renewcommand\reftextcurrent {\unskip}
\renewcommand\reftextbefore {\unskip}\chapter{Chapter one}sometext\dots
\label{test01}\vpageref{test01}\vpageref{test02}\kant[1]\vpageref{test01}\label{test02}\end{document}

编译完你会发现,只有一个\vpageref{test02}生成的"on the next page",其他的都被忽略了。这是因为\reftextbefore没有被重定义。

注意,这里的{\unskip}是必要的,否则会生成一段空白间距。

有些语言具有完全不同的句子结构,以至于仅调整个别的字词和短语是不够的。为解决这样的问题,varioref包还提供了四个命令,它们分别是\vrefformat\Vrefformat, \vrefrangeformat\fullrefformat。我们很少用到,这里不再详述。感兴趣的读者可以查阅包文档。

一些要小心的问题

考虑这样一种情形,如果文本型索引在换页时从中间断开,会怎么样呢?例如:

table 5 on the current

<换页>

page

这表示"表格5"在哪一页呢?varioref以索引的末尾为参考点,也就是说,这种情形下,"表格5"在"page"那一页,而不在"table 5 on the current"那一页。如果table 5在上面一页,则索引则会这样显示:

table 5 on the following<换页>page

LaTeX \LaTeX LATEX有时候会因为索引的断页产生一些错误,例如,考虑这样一种情形:

table 5 on the following<换页>page"表格5"

此时 LaTeX \LaTeX LATEX发现标签文本是错的,因为"表格5"和page在同一页,系统会将标签文本换成"table 5 on this page"。不幸的是,该文本比"table 5 on the following page"要短,情形就变成了这样:

table 5 on this page<换页>"表格5"

现在标签和索引又不在同一页了,标签文本又是错的了,而前一种却是对的。 LaTeX \LaTeX LATEX会因此进入死循环。无论使用哪种算法,都很难令人满意。出现这样的问题时,需要用户手动调整标签的索引的位置。

在编辑文档时,可以在导言区放置一个\vrefwarning命令,它可以将这类错误转换为警告,而在调用varioref包时,指定draft选项,也有同样的效果。

在导言区放置\vrefshowerrors可以让varioref包在检测到可能的循环时停止,而在调用varioref包时,指定final选项,也有同样的效果。这实际上也是默认设置。

如果你希望在文档的某些地方仅禁用错误,这些命令也可以在文档内部使用。

另外,如果你不想要我们前面演示的那种轮流切换的文本型索引,又不想重定义每个\reftext...命令,那么就可以重定义\reftextvario命令,使得它只显示第一个参数或者第二个参数(两个备用文本中的一个):

\renewcommand\reftextvario[2]{#1}
不指定nospace选项时,该包会有何表现

varioref包设计之初,它有一个特殊的行为: 它的命令会移除前面的空格,并且会增加一个自己的空格。因此,你可以就算不在\vpageref前面放置空格,包也会将索引放置合适的位置。但是这样有一个问题,如果我不想要索引前面的空格呢? 例如,我们想要将索引放在一个括号里(如(\vpageref{xxx})),多一个空格就不合适了。宏包提供了星号形式的命令来取消前面的空格,也就是说,如果我们不想在前面加一个空格,就使用\vpageref*{xxx}

但这种方法和其他包的配合不太好,因此我们总是建议指定nospace选项。如果指定了nospace选项,那么常规的索引命令(\vpageref{xxx})前面都不会自动增加空格,需要的时候,要手动添加(一般情况下都需要)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/882446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】C++当中的复合类型——引用和指针

C当中的复合类型 最近开始系统地学习 C 的语法&#xff0c;参考的主要资料来自于 C Primer 第五版&#xff0c;对于学习过程中所遇到的较难理解的点&#xff0c;我会以blog的形式对问题和内容进行记录&#xff0c;并进行进一步地探讨。 这一部分的内容对应于参考资料 C Prime…

spring-cloud-alibaba-nacos-config2023.0.1.*启动打印配置文件内容

**背景&#xff1a;**在开发测试过程中如果可以打印出配置文件的内容&#xff0c;方便确认配置是否准确&#xff1b;那么如何才可以打印出来呢&#xff1b; spring-cloud-alibaba-nacos-config 调整日志级别 logging:level:com.alibaba.cloud.nacos.configdata.NacosConfigD…

Linux操作系统与windows无法相互复制问题

请先看完此文在进行操作&#xff01;&#xff01;&#xff01; 对于无法复制我们逐层分析&#xff1a; 1.为什么无法复制是不是少了什么工具(open-vm-tools-destop) 上网查阅可以看到如下 2.在此之前我的虚拟机装完Ubuntu 16.04的linux系统无法进行apt update(参考一下) li…

华三服务器R4900 G5在图形界面使用PMC阵列卡(P460-B4)创建RAID,并安装系统(中文教程)

环境以用户需求安装Centos7.9&#xff0c;服务器使用9块900G硬盘&#xff0c;创建RAID1和RAID6&#xff0c;留一块作为热备盘。 使用笔记本通过HDM管理口&#xff08;&#xff09;登录 使用VGA&#xff08;&#xff09;线连接显示器和使用usb线连接键盘鼠标&#xff0c;进行窗…

excel判断某一列(A列)中的数据是否在另一列(B列)中

如B列如果有7个元素&#xff0c;在A列右边的空白列中&#xff0c;输入如下公式&#xff1a; COUNTIF($B$1:$B$7,A1), 其中&#xff0c;$B$1:$B$7代表A列中的所有数据即绝对范围&#xff0c;A1代表B列中的一个单元格.

Servlet(一)

一.什么是servlet Servlet 是一种实现动态页面的技术。 是一组 Tomcat 提供给程序猿的 API, 帮助程序猿简单高效的开发一个 web app。 1.回顾 动态页面 vs 静态页面 静态页面也就是内容始终固定的页面。即使 用户不同/时间不同/输入的参数不同 , 页面内容也不会发生变化。(除…

从 Microsoft 官网下载 Windows 10

方法一&#xff1a; 打开 Microsoft 官网&#xff1a; 打开开发人员工具&#xff08;按 F12 或右键点击“检查”&#xff09;。 点击“电脑模拟手机”按钮&#xff0c;即下图&#xff1a; 点击后重新加载此网页&#xff0c;即可看到下载选项。

Palo Alto Networks Expedition 未授权SQL注入漏洞复现(CVE-2024-9465)

0x01 产品介绍&#xff1a; Palo Alto Networks Expedition 是一款强大的工具&#xff0c;帮助用户有效地迁移和优化网络安全策略&#xff0c;提升安全管理的效率和效果。它的自动化功能、策略分析和可视化报告使其在网络安全领域中成为一个重要的解决方案。 0x02 漏洞描述&am…

windows下安装、配置neo4j并服务化启动

第一步&#xff1a;下载Neo4j压缩包 官网下载地址&#xff1a;https://neo4j.com/download-center/ &#xff08;官网下载真的非常慢&#xff0c;而且会自己中断&#xff0c;建议从以下链接下载&#xff09; 百度网盘下载地址&#xff1a;链接&#xff1a;https://pan.baid…

周易解读:八卦02,八卦所代表的基本事物

八 卦02 上一节&#xff0c;我是讲完了八卦的卦象的画法的问题。这一节&#xff0c;我来尝试着去讲解八卦所代表的自然事物。 八卦是谁发明的呢&#xff1f;根据《周易说卦传》的说法&#xff0c;八卦是伏羲发明的。伏羲氏仰观天文&#xff0c;俯察地理&#xff0c;从中提取…

项目模块二:日志宏

一、代码展示 二、补充知识 1、LOG(level, format, ...) format 是用于宏识别格式化&#xff0c;类似于 printf("%s", str); 里面的 "%s" ... 不定参&#xff0c;传入宏的参数除了 level, format, 还有不确定个数的参数。 2、红色 \ 由于宏只能写在一…

链上相遇,节点之间的悸动与牵连

公主请阅 1. 返回倒数第 k 个节点1.1 题目说明1.2 题目分析1.3 解法一代码以及解释1.3 解法二代码以及解释 2.相交链表2.1 题目说明示例 1示例 2示例 3 2.2 题目分析2.3 代码部分2.4 代码分析 1. 返回倒数第 k 个节点 题目传送门 1.1 题目说明 题目名称&#xff1a; 面试题 02…

15分钟学 Go 第 10 天:函数参数和返回值

第10天&#xff1a;函数参数和返回值 目标&#xff1a;理解函数如何传递参数 在Go语言中&#xff0c;函数是程序的基本构建块。了解如何传递参数和返回值是编写高效、可复用代码的重要步骤。本文将详细讲解函数参数的类型、传递方式以及如何处理返回值&#xff0c;辅以代码示…

DP—子数组,子串系列 第一弹 -最大子数组和 -环形子数组的最大和 力扣

你好&#xff0c;欢迎阅读我的文章~ 个人主页&#xff1a;Mike 所属专栏&#xff1a;动态规划 ​ 53. 最大子数组和 最大子数组和 ​ 分析: 使用动态规划解决 状态表示: 1.以某个位置为结尾 2.以某个位置为起点 这里使用以某个位置为结尾&#xff0c;结合题目要求&#…

MySQL8.0主从同步报ERROR 13121错误解决方法

由于平台虚拟机宿主机迁移&#xff0c;导致一套MySQL主从库从节点故障&#xff0c;从节点服务终止&#xff0c;在服务启动后&#xff0c;恢复从节点同步服务&#xff0c;发现了如下报错&#xff1a; mysql> show slave status\G; *************************** 1. row *****…

GDAL+C#实现矢量多边形转栅格

1. 开发环境测试 参考C#配置GDAL环境&#xff0c;确保GDAL能使用&#xff0c;步骤简述如下&#xff1a; 创建.NET Framework 4.7.2的控制台应用 注意&#xff1a; 项目路径中不要有中文&#xff0c;否则可能报错&#xff1a;can not find proj.db 在NuGet中安装GDAL 3.9.1和G…

无人机之自主飞行关键技术篇

无人机自主飞行指的是无人机利用先进的算法和传感器&#xff0c;实现自我导航、路径规划、环境感知和自动避障等能力。这种飞行模式大大提升了无人机的智能化水平和操作的自动化程度。 一、传感器技术 传感器是无人机实现自主飞行和数据采集的关键组件&#xff0c;主要包括&a…

C语言复习第3章 函数

目录 一、函数介绍1.1 函数是什么1.2 C语言中函数的分类1.3 函数原型1.4 高内聚 低耦合1.5 C语言main函数的位置 二、函数的参数2.1 实参和形参2.2 函数的参数(实参)可以是表达式2.3 传值与传址(swap函数)2.4 明确形参是实参的临时拷贝2.5 void(如果不写函数返回值 默认是int)2…

python 爬虫 入门 三、登录以及代理。

目录 一、登录 &#xff08;一&#xff09;、登录4399 1.直接使用Cookie 2.使用账号密码进行登录 可选观看内容&#xff0c;使用python对密码进行加密&#xff08;无结果代码&#xff0c;只有过程分析&#xff09; 二、代理 免费代理 后续&#xff1a;协程&#xff0c;…

企业级调度器 LVS

集群和分布式基础知识 系统性能的扩展方式 当一个系统&#xff0c;或一个服务的请求量达到一定的数量级的时候&#xff0c;运行该服务的服务器的性能和资源上限&#xff0c; 很容易成为其性能瓶颈。除了性能问题之外&#xff0c;如果只部署在单台服务器上&#xff0c;在此服务…