python
sty文件编辑教程?
一、sty文件编辑教程?
文档编写的介绍从第三部分开始,文档的命令从第四部分开始,参数的传递从第五部分开始。
1.sty和cls文档简介
a.可以使用docstrip生成sty和cls文件
b.如果命令可以在其他tex文件中使用,应该写在sty文件中。
如果命令(排版格式)只适合某一文档,应该写在cls文件中。
2.编写sty和cls
a.tex命令包含三种格式
tex作者使用的,即一般tex文件包含的命令,
sty和cls作者使用的,如\RequirePackge,
tex内部命令,如\@temcnta。
您不可以在tex文件中使用后两种命令。
b.鲁棒性
为了增强文档鲁棒性,使用较为严谨的命令。
文件加载命令:
\LoadClass{cls file name} %加载cls文件
\LoadClassWithOptions
\RequirePackage{sty file name} %加载所需要的包
\RequirePackageWithOptions
\input{file name}
不建议使用最后一种,会导致多次加载。
命令定义
\newcommand
\renewcommand
\providecommand
\CheckCommand
\def
上面四个差别不大,不建议使用第四种,会导致意外定义新命令
环境定义
\newenvironment
\renewenvironment
\def\foo{…} \def\endfoo{…}
上面两个均可,不建议使用第三种
c.便携性
文档名尽量不要超过8字符,不包括3个字符的扩展名,
不能和已有的latex标准包重名,
尽量加上首字母前缀,比如XXX thesis.cls
d.重定义document
使用\AtBeginDocument和\AtEndDocument重定义docunment
3.cls和sty结构
一个完整的cls或者sty文件通常包含以下的结构。
a.文档介绍
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{包的名称}[时间及其他信息]
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{类名称}[时间及其他信息]
时间使用YYYY/MM/DD格式
b.引用cls或者sty文件
\RequirePackage[options]{package}[date]
\LoadClass[hoptionsi]{hclass-namei}[hdatei]
当载入的文件中options和当前文档相同,使用以下命令:
\LoadClassWithOptions{article}
\RequirePackageWithOptions{graphics}
c.定义选项
使用如下命令定义选项
\DeclareOption{option}{code}
如果出现了选项,则会执行选项中的代码。
使用如下代码,将error变为warning
\DeclareOption*{%
\PackageWarning{fred}{Unknown option ‘\CurrentOption’}%
}
使用如下命令使定义的选项被文档调用执行
\ProcessOptions\relax
d.最小文档
文档必须包括四个内容:
\normalsize,\textwidth, \textheight,页数的规范
一个最小文档如下例:
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{minimal}[1995/10/30 Standard LaTeX minimal class]
\renewcommand{\normalsize}{\fontsize{10pt}{12pt}\selectfont}
\setlength{\textwidth}{6.5in}
\setlength{\textheight}{8in}
\pagenumbering{arabic} % needed even though this class will
% not show page numbers
1
2
3
4
5
6
7
1
2
3
4
5
6
7
信件文档如下例:(文档名为neplet.cls)
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{neplet}[1995/04/01 NonExistent Press letter class]
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{letter}}
\ProcessOptions\relax
\LoadClass[a4paper]{letter}
\renewcommand{\ps@firstpage}{%
\renewcommand{\@oddhead}{letterhead goes here}%
\renewcommand{\@oddfoot}{letterfoot goes here}%
}
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
4.文档命令
\NeedsTeXFormat {format-name} [release-date] %文档的定义
\ProvidesClass {class-name} [release-info]%表示当前文档提供了XX类的定义
\ProvidesPackage {package-name} [release-info]%表示当前文档提供了XX包的定义
\ProvidesFile {file-name} [release-info]%表示当前文档提供了XX文件的定义
\RequirePackage [options-list] {package-name} [release-info]
\RequirePackageWithOptions {package-name} [release-info]%引用包
\LoadClass [hoptions-listi] {class-name} [release-info]
\LoadClassWithOptions {class-name} [release-info]%引用类
\DeclareOption {option-name} {code}%选项定义
\DeclareOption* {code}%对于所有选项都为执行
以下命令只在定义option的code中使用
\CurrentOption%引用当前选项
\OptionNotUsed%当前选项加入未使用选项列表
\PassOptionsToPackage {options-list} {package-name}
\PassOptionsToClass {options-list} {class-name}%意味着如果调用这个包,就会执行optionlist中的选项
\AtEndOfClass{code}
\AtEndOfPackage{code}%代码将在执行完整个包之后执行
\AtBeginDocument {code}
\AtEndDocument {code}%代码将在执行\begin{document}或者\end{docpment}时执行
\AtBeginDvi {specials}
\ProcessOptions%
\ProcessOptions*
\@options%
\ExecuteOptions {hoptions-listi}
以上只在code中使用
\IfFileExists {file-name} {true} {false}%定义文件不存在时如何操作,这个命令本身不会加载文件
\InputIfFileExists {file-name} {true} {false}%如果存在,执行True中代码,然后加载文件,否则执行faulse
\ClassError {class-name} {error-text} {help-text}
\PackageError {package-name} {error-text} {help-text}%如果在引入包中出现错误,将显示text的内容。
%\protect加在命令之前,使得其被打印而不是执行,\MessageBreak打印换行,\space打印空格。
\ClassWarning {class-name} {warning-text}
\PackageWarning {package-name} {warning-text}
\ClassWarningNoLine {class-name} {warning-text}
\PackageWarningNoLine {package-name} {warning-text}
\ClassInfo {class-name} {info-text}
\PackageInfo {package-name} {info-text}
\DeclareRobustCommand {cmd} [num] [default] {definition}
\DeclareRobustCommand* {cmd} [num] [default] {definition}%定义更加鲁棒的命令,和renewcommand类似。
\CheckCommand {cmd} [num] [default] {definition}
\CheckCommand* {cmd} [num] [default] {definition}%定义的同时会检查,如果不同则会产生warning
\paperheight
\paperwidth%设定页面大小
\MakeUppercase {text}
\MakeLowercase {text}%大小写转换
\ignorespacesafterend%取消空格
\normalsfcodes%恢复字间距
\if@compatibility
可能需要重新定义如下命令
\rm \sf \tt \bf \it \sl \sc
\normalsize
@normalsize
需要重新定义如下命令
\tiny \footnotesize \small \large
\Large \LARGE \huge \Huge
\tenrm \elvrm \twlrm . . .
\tenbf \elvbf \twlbf . . .
\tensf \elvsf \twlsf . . .
可能需要替换如下命令
\vpt \vipt \viipt . . .
\prm, \pbf, \ppounds, \pLaTeX . . .
以下命令被移除
\footheight
@maxsep
@dblmaxsep
5.参数传递
参数传递使得tex写作是不需要重复添加相同的信息。(比如页眉上方的标题)。遗憾的是原文中并没有介绍相关的内容。以下内容均来自于下方链接。
https://blog.csdn.net/RobertChenGuangzhi/article/details/50461514
在cls文件中,使用以下命令定义参数
\newcommand{\@ang-name}{默认值}
参数名通常为\@后跟tex文件中使用的名称
在cls文件中,使用以下命令关联cls参数和tex参数
\newcommand{\tex-cmd}[参数数目][默认值]{
\renewcommand{\@avg-name1}{#1}
\renewcommand{\@avg-name2}{#2}
\renewcommand{\@avg-name3}{#3}
…
}
命令名通常为\加上tex文件中引用的名称。
在cls文件中使用\@avg-name1…调用参数
在tex文件中使用如下代码获取参数:
\tex-cmd{参数1的值}{参数2的值}{参数3的值}…
二、怎样编辑python?
要编辑Python代码,你需要一个文本编辑器,如Sublime Text、Visual Studio Code或PyCharm。打开编辑器后,创建一个新文件并将代码粘贴到文件中。
然后,你可以使用编辑器的语法高亮功能来提高代码的可读性。
编辑完成后,保存文件并使用.py作为文件扩展名。
接下来,你可以使用Python解释器来运行代码。你可以在终端中输入"python 文件名.py"来执行代码。编辑Python代码需要熟悉Python语法和编码规范,以确保代码的正确性和可维护性。还可以使用调试器来帮助你找到和修复代码中的错误。
三、python使用教程?
没有其它python使用教程,只有以下答案。
python是一种脚本编程语言,支持的平台也比较全,win,linux,mac操作系统都支持,至于环境基本上按官网教材下载对应系统的安装包或者二进制文件设置好环境变量就可以了,py基础还需要你自己学习,最好是学好基础后再开始尝试写爬虫等等程序。爬虫通常是指的爬取特定数据的程序。
四、python 菜鸟教程?
简介
Python是一种动态解释型的编程语言。Python可以在Windows、UNIX、MAC等多种操作系统上使用,也可以在Java、.NET开发平台上使用。
特点
1 Python使用C语言开发,但是Python不再有C语言中的指针等复杂的数据类型。
2 Python具有很强的面向对象特性,而且简化了面向对象的实现。它消除了保护类型、抽象类、接口等面向对象的元素。
3 Python代码块使用空格或制表符缩进的方式分隔代码。
4 Python仅有31个保留字,而且没有分号、begin、end等标记。
5 Python是强类型语言,变量创建后会对应一种数据类型,出现在统一表达式中的不同类型的变量需要做类型转换。
搭建开发环境
1 可以到www.python.org下载安装包,然后通过configure、make、make install进行安装。
2 也可以到www.activestate.com去下载ActivePython组件包。(ActivePython是对Python核心和常用模块的二进制包装,它是ActiveState公司发布的Python开发环境。ActivePython使得Python的安装更加容易,并且可以应用在各种操作系统上。ActivePython包含了一些常用的Python扩展,以及Windows环境的编程接口)。对ActivePython来说,如果你是windows用户,下载msi包安装即可;如果你是Unix用户,下载tar.gz包直接解压即可。
3 Python的IDE,包括PythonWin、Eclipse+PyDev插件、Komodo、EditPlus
版本
python2与python3是目前主要的两个版本。
如下两种情况下,建议使用python2:
1 你无法完全控制你即将部署的环境时;
2 你需要使用一些特定的第三方包或扩展时;
python3是官方推荐的且是未来全力支持的版本,目前很多功能提升仅在python3版本上进行。
hello world
1 创建hello.py
2 编写程序:
if __name__ == \'__main__\':
print "hello word"
3 运行程序:
python ./hello.py
注释
1 无论是行注释还是段注释,均以#加一个空格来注释。
2 如果需要在代码中使用中文注释,必须在python文件的最前面加上如下注释说明:
# -* - coding: UTF-8 -* -
3 如下注释用于指定解释器
#! /usr/bin/python
文件类型】
1 Python的文件类型分为3种,即源代码、字节代码和优化代码。这些都可以直接运行,不需要进行编译或连接。
2 源代码以.py为扩展名,由python来负责解释;
3 源文件经过编译后生成扩展名为.pyc的文件,即编译过的字节文件。这种文件不能使用文本编辑器修改。pyc文件是和平台无关的,可以在大部分操作系统上运行。如下语句可以用来产生pyc文件:
import py_compile
py_compile.compile(‘hello.py’)
4 经过优化的源文件会以.pyo为后缀,即优化代码。它也不能直接用文本编辑器修改,如下命令可用来生成pyo文件:
python -O -m py_complie hello.py
变量
1 python中的变量不需要声明,变量的赋值操作即是变量声明和定义的过程。
2 python中一次新的赋值,将创建一个新的变量。即是变量的名称相同,变量的标识并不相同。用id()函数可以获取变量标识:
x = 1
print id(x)
x = 2
print id(x)
3 如果变量没有赋值,则python认为该变量不存在
4 在函数之外定义的变量都可以称为全局变量。全局变量可以被文件内部的任何函数和外部文件访问。
5 全局变量建议在文件的开头定义。
6 也可以把全局变量放到一个专门的文件中,然后通过import来引用:
gl.py文件中内容如下:
_a = 1
_b = 2
use_global.py中引用全局变量:
import gl
def fun():
print gl._a
print gl._b
fun()
常量
python中没有提供定义常量的保留字。可以自己定义一个常量类来实现常量的功能。
class _const:
class ConstError(TypeError): pass
def __setattr__(self,name,vlaue):
if self.__dict__.has_key(name):
raise self.ConstError, “Can’t rebind const(%s)”%name
self.__dict__[name]=value
import sys
sys.modules[__name__]=_const()
数据类型
1 python的数字类型分为整型、长整型、浮点型、布尔型、复数类型。
2 python没有字符类型
3 python内部没有普通类型,任何类型都是对象。
4 如果需要查看变量的类型,可以使用type类,该类可以返回变量的类型或创建一个新的类型。
5 python有3种表示字符串类型的方式,即单引号、双引号、三引号。单引号和双引号的作用是相同的。python程序员更喜欢用单引号,C/Java程序员则习惯使用双引号表示字符串。三引号中可以输入单引号、双引号或换行等字符。
运算符和表达式
1 python不支持自增运算符和自减运算符。例如i++/i-是错误的,但i+=1是可以的。
2 1/2在python2.5之前会等于0.5,在python2.5之后会等于0。
3 不等于为!=或<>
4 等于用==表示
5 逻辑表达式中and表示逻辑与,or表示逻辑或,not表示逻辑非
控制语句】
1 条件语句:
if (表达式) :
语句1
else :
语句2
2 条件语句:
if (表达式) :
语句1
elif (表达式) :
语句2
…
elif (表达式) :
语句n
else :
语句m
3 条件嵌套:
if (表达式1) :
if (表达式2) :
语句1
elif (表达式3) :
语句2
…
else:
语句3
elif (表达式n) :
…
else :
…
4 python本身没有switch语句。
5 循环语句:
while(表达式) :
…
else :
…
6 循环语句:
for 变量 in 集合 :
…
else :
…
7 python不支持类似c的for(i=0;i<5;i++)这样的循环语句,但可以借助range模拟:
for x in range(0,5,2):
print x
数组相关
1 元组(tuple):python中一种内置的数据结构。元组由不同的元素组成,每个元素可以存储不同类型的数据,如字符串、数字甚至元素。元组是写保护的,即元组创建之后不能再修改。元组往往代表一行数据,而元组中的元素代表不同的数据项。可以把元组看做不可修改的数组。创建元组示例如下:
tuple_name=(“apple”,”banana”,”grape”,”orange”)
2 列表(list):列表和元组相似,也由一组元素组成,列表可以实现添加、删除和查找操作,元素的值可以被修改。列表是传统意义上的数组。列表创建示例如下:
list=[“apple”,”banana”,”grage”,”orange”]
可以使用append方法来在尾部追加元素,使用remove来删除元素。
3 字典(dictionary):由键-值对组成的集合,字典中的值通过键来引用。键和值之间用冒号隔开,键-值对之间用逗号隔开,并且被包含在一对花括号中。创建示例如下:
dict={“a”:”apple”, “b”:”banana”, “g”:”grage”, “o”:”orange”}
4 序列:序列是具有索引和切片能力的集合。元组、列表和字符串都属于序列。
函数相关
1 python程序由包(package)、模块(module)和函数组成。包是由一系列模块组成的集合。模块是处理某一类问题的函数和类的集合。
2 包就是一个完成特定任务的工具箱。
3 包必须含有一个__init__.py文件,它用于标识当前文件夹是一个包。
4 python的程序是由一个个模块组成的。模块把一组相关的函数或代码组织到一个文件中,一个文件即是一个模块。模块由代码、函数和类组成。导入模块使用import语句。
5 包的作用是实现程序的重用。
6 函数是一段可以重复多次调用的代码,函数定义示例如下:
def arithmetic(x,y,operator):
result={
“+”:x+y,
“-“:x-y,
“*”:x*y,
“/”:x/y
}
7 函数返回值可以用return来控制。
字符串相关
1 格式化输出:
format=”%s%d” % (str1,num)
print format
2 用+进行字符串的合并:
str1=”hello”
str2=”world”
result=str1+str2
3 字符串截取可以通过索引/切片,也可以通过split函数。
4 通过切片截取字符串:
word=”world”
print word[0:3]
5 python使用==和!=来进行字符串比较。如果比较的两个变量的类型不相同,那么结果必然为不同。
文件处理
1 简单处理文件:
context=”hello,world”
f=file(“hello.txt”,’w’)
f.write(context);
f.close()
2 读取文件可以使用readline()函数、readlines()函数和read函数。
3 写入文件可以使用write()、writelines()函数
对象和类】
1 python用class保留字来定义一个类,类名的首字符要大写。当程序员需要创建的类型不能用简单类型来表示时,就需要定义类,然后利用定义的类创建对象。定义类示例:
class Fruit:
def grow(self):
print “Fruit grow”
2 当一个对象被创建后,包含了三方面的特性,即对象的句柄、属性和方法。创建对象的方法:
fruit = Fruit()
fruit.grow()
3 python没有保护类型的修饰符
4 类的方法也分为公有方法和私有方法。私有函数不能被该类之外的函数调用,私有的方法也不能被外部的类或函数调用。
5 python使用函数"staticmethod()"或"@ staticmethod"指令的方法把普通的函数转换为静态方法。静态方法相当于全局函数。
6 python的构造函数名为__init__,析构函数名为__del__
7 继承的使用方法:
class Apple(Fruit):
def …
连接mysql
1 用MySQLdb模块操作MySQL数据库非常方便。示例代码如下:
import os, sys
import MySQLdb
try:
conn MySQLdb.connect(host=’localhost’,user=’root’,passwd=’’,db=’address’
except Exception,e:
print e
sys.exit()
cursor=conn.cursor()
sql=’insert into address(name, address) values(%s, %s)’
value=((“zhangsan”,”haidian”),(“lisi”,”haidian”))
try
cursor.executemany(sql,values)
except Exception, e:
print e
sql=”select * from address”
cursor.execute(sql)
data=cursor.fetchall()
if data
for x in data:
print x[0],x[1]
cursor.close()
conn.close()
五、python安装教程?
1、首先,需要到python的官方网站下载python的安装包。
2、打开官方网站之后,点击“Downloads”一栏,然后在弹出的窗口选择“windows”。
3、然后根据不同的操作系统,选择不同版本的安装包。32位的操作系统请选择windows x86,64位操作系统选择windows x86-64,然后下载。
4、等待下载好之后,双击打开下载好的安装包。
5、然后勾选Add Python 3.7 to PATH,然后点击Customize installation(自定义安装)。
6、然后选择下载路径,Customize install location是自定义安装路径,由于默认的安装路径太深,因此改为较浅且好找的路径:D:\Python\Python37,然后点击Install(安装)。
7、安装进行中,大约需要两分钟。
8、安装完成,点击Close(关闭)即可。
六、用word2013编辑pdf文件操作教程?
word2013版本已经支持直接打开pdf文档,然后进行编辑。首先打开word2013q,然后点击文件>打开,然后选中需要编辑的pdf文件打开就可以了。 如果是扫描版的pdf文件,仍然不支持直接进行编辑的。
七、Python如何操作.dll文件?
动态链接库(Dynamic Link Library,DLL)是一种包含可被多个程序同时使用的代码和数据的文件类型。通过使用DLL,程序可以在不重复占用内存的情况下共享代码和功能,从而实现高效的资源利用和功能拓展。在本文中,我们将介绍如何使用Python对接DLL库,以实现功能的高效拓展。
1. DLL库的基本概念
DLL是一种用于存储可执行代码和资源的文件类型,其中包含了被调用程序所需的函数、数据和资源。通过将功能封装在DLL中,可以减小程序的体积,提高代码的重用性,并且可以动态地升级或替换功能。在Windows操作系统中,DLL是一种常见的组件,用于实现系统功能、第三方库等。
2. 使用Python对接DLL库
Python提供了一个称为ctypes的标准库模块,可以用来加载和调用DLL库中的函数。下面是一个简单的步骤来使用Python对接DLL库:
步骤1:导入ctypes模块
首先,您需要在Python脚本中导入ctypes模块,以便能够加载和调用DLL库中的函数。
import ctypes
步骤2:加载DLL库
使用ctypes的cdll
函数来加载DLL库。假设您有一个名为“mylibrary.dll”的DLL文件,您可以这样加载它:
dll = ctypes.CDLL("./mylibrary.dll") # 注意如果放在同级目录下 也需要使用 ./的方式
步骤3:调用DLL函数
一旦您加载了DLL库,就可以通过类似于函数调用的方式调用DLL中的函数。首先,您需要确定函数的参数和返回值类型,然后使用这些信息来定义Python函数的原型。
def func():
func_obj = dll.DLL_FUNC()#使用dll.函数的方式获取对象
func_obj.add.argtypes = [ctypes.c_int, ctypes.c_void_p] #设置当前对象需要传入的参数类型,c_int为整形,c_void_p为指针
result = func_obj(整形,指针)
参数类型:
- ctypes.c_int: 代表 C 语言中的 int 类型,通常用于表示整数。
- ctypes.c_float: 代表 C 语言中的 float 类型,通常用于表示单精度浮点数。
- ctypes.c_double: 代表 C 语言中的 double 类型,通常用于表示双精度浮点数。
- ctypes.c_char_p: 代表 C 语言中的 char* 类型,通常用于表示字符串。
- ctypes.c_void_p: 代表 C 语言中的 void* 类型,通常用于表示指针。
- 其他 ctypes 类型:除了上述常见的类型,ctypes 还支持其他的数据类型,例如 c_short、c_long、c_longlong 等,以及它们的无符号版本(例如 c_uint、c_ulonglong)
4. 总结
在调用 C 函数时,.argtypes
是一个必要的属性,它定义了函数的参数类型,以便在 Python 中正确地传递参数。如果参数类型不正确,可能会导致函数调用失败或返回不正确的结果。因此,在使用 ctypes 调用 DLL 函数时,务必正确设置 .argtypes
属性以匹配函数的参数类型。
八、python文本编辑添加,删除,编辑文字?
右击文本框,然后点右击出现的文字第一个就是转换成美工文字,然后文本框就没了。
九、python编辑误删如何返回?
这玩意应该跟shift+delete删除一样的吧, 下个恢复软件看看还有没有机会,最好还是搞个版本控制,就不怕误删了
十、python获得编辑区句柄?
你拿到的是主窗口句柄,还需要搜索遍历,找到子窗口或控件。
有些是自定义,只能通过位置定义。热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...