Apr 5, 2006
命令
命令的分类
命令包括单独命令(命令单独使用)、环境命令(成对使用,如\begin{..}和\end{..})
,以及宏命令。
命令的参数
\documentclass[11pt]{jbook}
,{}表示必须参数,[]表示可选参数。
命令的作用范围
某些命令一旦声明,则对其后的所有文字均有效,称为声明型命令,例如斜体\itshape
,字号增大\Large
等。将这一类命令用{}
括起来可以规定其作用范围,例如
aaaa{\itshape bbbb{\Large ijkl}bbbb}aaaa
将显示为 aaaabbbbijklbbbbaaaa。
其他
由文字结束的命令之后的空白将被忽视。
一些命令
\itshape | 斜体 |
\normalfont | 正常字体 |
\sffamily | 黑体? |
\Large | 字号增大 |
\LaTeXe | 显示LaTeX2e的logo |
\\ | 换行 |
宏命令
定义方法:
\newcommand{cmd}[arg]{def}
其中cmd
为命令名,以\
开头,区分大小写,可以使用汉字;arg
为参数个数,最大为9;def
为命令内容,其中可以使用#1
、#2
…#9
的方式使用参数。
\newcommand{\mytest}[4]{$#1#4^2+#2#4+#3=0$}
\mytest{a}{b}{c}{x}
使用 \renewcommand{cmd}[arg]{def} 可以重新定义命令。
包
包相当于外挂插件。用下面的命令调用:
(Read More)
Apr 3, 2006
安装
参考:http://www.nsknet.or.jp/~tony/TeX/install/win/tex.htm
最简单的例子
\documentclass[11pt]{jarticle}
\textwidth=50mm
\begin{document}
あああああああああああああ
\end{document}
如何将tex文件转化为pdf文档(日语):
platex xyz.tex
dvipdfmx xyz.dvi
如何将dvi文件转化为gif/png:
dvipng --gif -T tight -D 200 xyz.dvi
dvipng -T tight -D 200 xyz.dvi
省略 --gif
参数则输出为png格式。-D
为放大百分比。
\documentclass
: 文档类型
[11pt]
:文档类型参数
{jarticle}
:文档类型的值。两列分栏显示,则指定文档类型参数为[twocolumn,11pt]
。
页面布局
页面基准点:从纸的左上角算起,向右向下各移动 1inch(2.54cm) 处的点。通过该点的水平线称为上基准线,垂直线称为左基准线。
各种布局参数
\topmargin | 页眉上端到上基准线的距离。 |
\headheight | 页眉高度。 |
\headsep | 页眉下端到正文上端的距离。 |
\topskip | 正文上端到正文第一行的距离。 |
\textheight | 正文的高度。 |
\textwidth | 正文的宽度。 |
\evensidemargin | 偶数页(左页)中,正文的左端到左基准线的距离。 |
\oddsidemargin | 奇数页(右页)中,正文的左端到左基准线的距离。 |
\footskip | 正文下端到页脚下端的距离。 |
\marginparwidth | 页面右侧脚注的宽度。 |
\marginparpush | 页面右侧脚注之间的距离。 |
\marginparsep | 页面右侧脚注到正文的距离。 |
\columnsep | 二分栏时左右栏之间的距离。 |
\columnseprule | 二分栏时左右栏之间分隔线的宽度。 |
页码
页码格式
通过 \pagestyle{格式}
来指定页码格式。格式有以下几种:
empty | 空白页眉、页脚 |
plain | 空白页眉,但是在页脚的中央输出页码 |
headings | 空白页脚,但是在页眉输出页码、章节编号以及标题 |
myheadings | 自定义 |
通过 \renewcommand{\thepage}{\roman{page}}
命令可以改变页码的格式。其中\roman部分为定义格式的命令,包括如下几种:
\arabic | 阿拉伯数字 | 1, 2, 3, ... |
\roman | 罗马数字(小写) | i, ii, iii, ... |
\Roman | 罗马数字(大写) | I, II, III, ... |
\alph | 英文字母(小写) | a, b, c, ... |
\Alph | 英文字母(大写) | A, B, C, ... |
通过 \setcounter{page}{10}
可以将页码设置为10。
多个文档的结合
通过 \input{文档名}
命令可以结合多个文档。文档名不用带扩展名.tex。
(Read More)
Apr 3, 2006
本人使用的一台笔记本曾经由于安装软件不当而中木马,一般的清除方法均对其无效,后判明原来是木马驻留在Windows的Socket协议栈中。下面是清除方法。
本文中所提到的命令及其选项的使用方法请查阅相关资料。
(Read More)
Apr 2, 2006
以Fedora Core 5中yum的配置方法为例,讲解一下如何设置yum使其选择最快的镜像进行升级。
首先建立 /etc/yum.repos.d/local-core 文件,内容如下:
http://ftp.riken.jp/Linux/fedora/core/5/$ARCH/os
http://ftp.kddilabs.jp/Linux/packages/fedora/core/5/$ARCH/os
http://ftp.sfc.wide.ad.jp/pub/Linux/Fedora/5/$ARCH/os
http://ftp.nara.wide.ad.jp/pub/Linux/fedora/core/5/$ARCH/os
http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/5/$ARCH/os
然后修改 /etc/yum.repos.d/fedora-core.repo 文件的mirrorlist一行如下:
#mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-$releasever
mirrorlist=file:///etc/yum.repos.d/local-core
再建立 /etc/yum.repos.d/local-updates 文件,内容如下:
http://ftp.riken.jp/Linux/fedora/core/updates/5/$ARCH/
http://ftp.kddilabs.jp/Linux/packages/fedora/core/updates/5/$ARCH/
http://ftp.sfc.wide.ad.jp/pub/Linux/Fedora/updates/5/$ARCH/
http://ftp.nara.wide.ad.jp/pub/Linux/fedora/core/updates/5/$ARCH/
http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/updates/5/$ARCH/
然后修改 /etc/yum.repos.d/fedora-updates.repo 文件的mirrorlist一行如下:
#mirrorlist=http://fedora.redhat.com/download/mirrors/updates-released-fc$releasever
mirrorlist=file:///etc/yum.repos.d/local-updates
最后建立 /etc/yum.repos.d/local-extras 文件,内容如下:
http://ftp.riken.jp/Linux/fedora/extras/5/$ARCH/
http://ftp.kddilabs.jp/Linux/packages/fedora/extras/5/$ARCH/
http://ftp.nara.wide.ad.jp/pub/Linux/fedora/extras/5/$ARCH/
http://ftp.jaist.ac.jp/pub/Linux/Fedora/extras/5/$ARCH/
修改 /etc/yum.repos.d/fedora-extras 文件的mirrorlist一行如下:
#mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-extras-$releasever
mirrorlist=file:///etc/yum.repos.d/local-extras
(Read More)
Mar 31, 2006
这一阵子使用了基于Ajax的PHP-MVC框架Zephyr。官方主页为 http://zephyr-php.sourceforge.net/。
该框架的Ajax通信机制使用第三方软件 cpaint (http://cpaint.booleansystems.com/)实现,而视图则使用PHP的官方模板 smarty (http://smarty.php.net/)实现。
基本的开发思想很简单:利用javascript通过Ajax来调用远程的php代码,然后自动地将返回结果显示在某个指定的div元素中。实现了以下的目标:
1. 业务逻辑和画面显示的分离。
业务逻辑完全在php代码中实现,而画面显示则完全由smarty提供的模板语言写成。
2. 完全封装了ajax操作。
利用cpaint完全封装了ajax操作,开发时完全不必考虑ajax的复杂性,而可以像开发windows程序那样进行ajax程序的开发。
3. 解决了动态装入js代码的执行问题。
Ajax应用中有一个很重要的问题,就是通过Ajax动态读入的javascript代码不会被自动执行。而zephyr解决了这个问题。
不过,我也同时发现zephyr的一个缺点。
1. 同时读取多个div的内容会引起冲突。
如果试图同时读取画面上多个div,则会导致显示混乱。这是因为,zephyr使用一个全局变量来保存div的名称,因此同时读取多个div时,仅有最后一个div的名字被保存,导致本应读入到各个div中的内容全部都被装入最后一个div。为解决此问题,应当在zephyr的核心javascript/function.js中增加信号量互斥的操作:仅有得到信号量的更新操作才允许进行,如果获取信号量失败,则等待一定时间之后再次尝试,直到成功为止。这样就能够保证各个更新操作依次执行,而不会引起冲突。
(Read More)
Mar 30, 2006
Windows XP/Linux双启动的机器一般都使用grub作为引导程序。如果不小心在Windows中删除了Linux分区,grub就会因为找不到配置文件而造成无法启动。此时有两个解决办法。
- 手动启动Windows
系统启动后将进入grub的控制台,这时输入以下命令:
rootnoverify (hd0,0)
chainloader +1
boot
即可成功启动进入Windows。参数(hd0,0)表示Windows安装在第一块硬盘的第一个分区,即C盘。但是使用此方法,每次重新启动机器时都要输入上述命令,因此只能作为应急手段。
- 使用Windows故障恢复控制台进行修复
插入Windows XP安装光盘,从光盘启动,之后选择 R 键启动故障恢复控制台。选择要登录的Windows(一般是 1),输入密码。然后输入以下命令:
系统会提示说“可能会损坏分区表”,不要理会,回答Y,片刻之后则提示修复完毕。然后重新启动计算机即可。
(Read More)
Mar 29, 2006
0. 前言
所谓IE地址栏表达式,就是在IE的地址栏中输入 javascript:<代码>,执行某些功能,来动态改变原有页面的参数以达到某些目的,例如开放被禁止的按钮、显示原本隐藏的图片等等。本文将就IE地址栏的使用方法做一个详细的说明。代码>
(Read More)
Mar 27, 2006
MinGW: Minimalist GNU for Windows,是GNU开发环境在Windows下的一个移植。而MSYS则是与MinGW配套的一个shell环境以及相关的工具程序。
(Read More)
Mar 27, 2006
环境: VC++, ActivePerl
-
下载openssl源代码: http://www.openssl.org/
-
配置
D:\openssl-0.9.8a>perl Configure VC-WIN32
D:\openssl-0.9.8a>ms\do_ms.bat
运行时会出现找不到%OSVERSION%环境变量的错误,不必理会。
-
编译
(ntdll.mak编译成动态dll。如需要静态dll则使用nt.mak)
D:\openssl-0.9.8a>"C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"
Setting environment for using Microsoft Visual C++ tools.
D:\openssl-0.9.8a>nmake -f ms\ntdll.mak
-
测试
D:\openssl-0.9.8a>cd out32dll
D:\openssl-0.9.8a\out32dll>..\ms\test
-
安装
D:\openssl-0.9.8a>md c:\lib\openssl
D:\openssl-0.9.8a>md c:\lib\openssl\bin
D:\openssl-0.9.8a>md c:\lib\openssl\lib
D:\openssl-0.9.8a>md c:\lib\openssl\include
D:\openssl-0.9.8a>md c:\lib\openssl\include\openssl
D:\openssl-0.9.8a>copy /b inc32\openssl\* c:\lib\openssl\lib
D:\openssl-0.9.8a>copy /b out32dll\ssleay32.lib c:\lib\openssl\lib
D:\openssl-0.9.8a>copy /b out32dll\libeay32.lib c:\lib\openssl\lib
D:\openssl-0.9.8a>copy /b out32dll\ssleay32.dll c:\lib\openssl\bin
D:\openssl-0.9.8a>copy /b out32dll\libeay32.dll c:\lib\openssl\bin
D:\openssl-0.9.8a>copy /b out32dll\openssl.exe c:\lib\openssl\bin
D:\openssl-0.9.8a>copy README c:\lib\openssl
D:\openssl-0.9.8a>copy LICENSE c:\lib\openssl
(Read More)
Mar 27, 2006
DOM对象event仅在事件发生的期间内存在。因此下面这种写法是错误的:
<a href="javascript:alert(window.event.x)">
而应当写成
<a href="#" onclick="alert(window.event.x); return false">
(Read More)