如何用 LaTeX 排版高中数学试卷(转)_Simplelife_新浪博客

原文: http://bbs.pep.com.cn/forum.php?mod=viewthread&tid=2512217

 (1)关于试卷纸张选择及页面设置
关于纸张的写上
\documentclass[10pt,a4paper]{ctexart}
       上面的 10pt 是全篇正文的字号大小,只有 10, 11, 12 三种选择,个人建议使用 10。
好了,下面看页边距,一般设为 2cm, 只要写上
\usepackage[margin=2cm]{geometry}
       这样,上下左右的边距都是 2cm,也可以分开指定right, top, ... ,也可以在此处
用 paperwidth 和 paperheight 指定纸张大小等。
(2) 试卷标题的设计
\begin{document}
\title{2012年某某中学高三数学测试题}
\author{总分:150分and 时间120分钟}
\date{命题人: 某某某}
\maketitle
(3) 大题、小题题号的排版
       高中数学试卷一般有三道大题、21道左右的小题。我开始排版大题的时候,就自己写了一个
计数器。后来发现,模式都是固定的,没有变化,可以直接写一、二、三就行了。
\begin{enumerate} 
        \item[一、] 选择题请把......
        \item 等下写选择题小题内容 
        \item 等下写选择题小题内容 
        \item 等下写选择题小题内容 
        \item 等下写选择题小题内容 
        \item 等下写选择题小题内容 
        \item 等下写选择题小题内容 
        \item 等下写选择题小题内容 
        \item 等下写选择题小题内容 
        \item 等下写选择题小题内容 
        \item 等下写选择题小题内容 

        \item[二、] 填空题  ......
        \item 等下写填空题小题内容 
        \item 等下写填空题小题内容 
        \item 等下写填空题小题内容 
        \item 等下写填空题小题内容 
        \item 等下写填空题小题内容 

        \item[三、] 解答题  ......
        \item 等下写解答题小题内容 
        \item 等下写解答题小题内容 
        \item 等下写解答题小题内容 
        \item 等下写解答题小题内容 
        \item 等下写解答题小题内容 
        \item 等下写解答题小题内容 
\end{enumerate} 
\end{document}
(4) 选择题括号的排版
       我们来想一想,这个括号应该怎样排版呢?
       首先想到的是直接用括号(       )。当然,直接这样写是不行的。当我们按照我前面说的
设计下来的话,第一道小题的 1. 后面可以排下 45 个中文汉字。 如果你的第一题的内容的最后一行
恰好有 43 个汉字的话,那么很不幸的是你将看到你的一半括号在上行,另一半在下行,这个不是你
希望的,怎么办呢?很简单,改为
\mbox{(      )}
       现在,你的一对儿括号肯定是出现在同一行了。但是,问题还没解决,你如果按照我写的排版
的话,你一定看到的是两个括号挨着的,就像 ( ) 一样。因为 LaTeX 是吃掉多余空格的。怎么办?
你可能会想到在中间加上 (~~~~)或者 (\qquad\qquad)等等。我开始也是这么想的,后来
发现这个办法不能使括号真正对齐(想想为什么?  具体原因等我有时间讲到 TeX 排版原理的时候,
可以来解释)。我的解决办法是
\mbox{(\hspace{1cm})}
       我们一般希望在选择题的括号前面加上前导符,所以修改为
\dotfill\mbox{(\hspace{1cm})}
       这样一般不会出问题了,你也会感觉比较漂亮,括号基本出现在右侧。但是,如果选择题的最后
一行恰好是 43-45 个汉字的话,你将看不到前导符,而且括号也跑到下一行的行首去了。所以,我们将
禁止在前导符的前面断行,修改为
\nolinebreak\dotfill\mbox{(\hspace{1cm})}
       这样基本美观了,唯一的一个遗憾是,如果最后一行有42个汉字的话,你将看不到前导符,就是
文字后面紧跟括号。如果你不想出现这样的话,可以修改为
\nolinebreak\dotfill\mbox{\raisebox{-1.8pt}{$\cdots$}(\hspace{1cm})}
       最后,我们将它设定为一个自定义命令,放到 \begin{document} 之前
\newcommand{\xz}{\nolinebreak\dotfill\mbox{\raisebox{-1.8pt}
   {$\cdots$}(\hspace{1cm})}}
       这样,以后你只需要在选择题的题干写完后加上 \xz, 就可以看到漂亮的前导符和括号了。如
果你还要修改的话,也可以改为
\newcommand{\xz}[1][1]{\nolinebreak\dotfill\mbox{\raisebox{-1.8pt}
   {$\cdots$}(\hspace{#1 cm})}\\ }
       我为什么加两个 [1] ? 我在最后加了一个换行 \\, 千万注意后面的空格不能省略,想想,
为什么? 这两个问题留给大家自己思考吧。
(5)选择题选项的排版
       这个可能是整个试卷排版最难的一个地方了。敲的太累了,我就不写编写过程了。写下代码,大家
慢慢看吧。
       首先在 \begin{document} 之前加上
\usepackage{ifthen}
\newlength{\la}
\newlength{\lb}
\newlength{\lc}
\newlength{\ld}
\newlength{\lhalf}
\newlength{\lquarter}
\newlength{\lmax}
\newcommand{\xx}[4]{\\[.5pt]%
  \settowidth{\la}{A.~#1~~~}
  \settowidth{\lb}{B.~#2~~~}
  \settowidth{\lc}{C.~#3~~~}
  \settowidth{\ld}{D.~#4~~~}
  \ifthenelse{\lengthtest{\la > \lb}}  {\setlength{\lmax}{\la}}  {\setlength{\lmax}{\lb}}
  \ifthenelse{\lengthtest{\lmax < \lc}}  {\setlength{\lmax}{\lc}}  {}
  \ifthenelse{\lengthtest{\lmax < \ld}}  {\setlength{\lmax}{\ld}}  {}
  \setlength{\lhalf}{0.5\linewidth}
  \setlength{\lquarter}{0.25\linewidth}
  \ifthenelse{\lengthtest{\lmax > \lhalf}}  {\noindent{}A.~#1 \\ B.~#2 \\ C.~#3 \\ D.~#4 }  {
  \ifthenelse{\lengthtest{\lmax > \lquarter}}  {\noindent\makebox[\lhalf][l]{A.~#1~~~}%
    \makebox[\lhalf][l]{B.~#2~~~}%
    \makebox[\lhalf][l]{C.~#3~~~}%
    \makebox[\lhalf][l]{D.~#4~~~}}%
    {\noindent\makebox[\lquarter][l]{A.~#1~~~}%
      \makebox[\lquarter][l]{B.~#2~~~}%
      \makebox[\lquarter][l]{C.~#3~~~}%
      \makebox[\lquarter][l]{D.~#4~~~}}}}
       当你排版选择题的时候,你只需输入
\xx{选项 A 的内容}{选项 B 的内容}{选项 C 的内容}{选项 D 的内容}
       上面代码的意思是取四个选项的最长宽度,加上 “A.” 以及左右留空,作为选项的最长宽度。将
它和行宽的 1/2 以及 1/4 作比较, 来决定把 4 个选项排成一行、两行或者四行及以上。
(6) 填空题横线的排版
       这个比较简单,直接在 \begin{document} 之前加上
\newcommand{\tk}[1][2.5]{\,\underline{\mbox{\hspace{#1 cm}}}\,}
       当编写到填空题的时候,加上 \tk 即可,可以加在一句话中间,也可以加到一句话末尾,当在
末尾的时候,可以在后面加上句号。
       横线的默认长度是 2.5cm, 可以使用
\tk[3]
将横线改为 3cm。
(7) 插图的排版
       这个说来就话长了,相关教程很多。象 Metapost, tikz, pstrics, asymptote,...
我都用过,不过,还是用 tikz 比较多,对付高中数学作图来说基本够用了。等有空的时候,写几个
用 tikz 作函数图像, 立体几何,算法流程图的例子吧。


  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
LaTeX是一种专业的排版系统,非常适合用于排版数学试卷。下面是一些介绍latex排版数学试卷的步骤: 1. 首先,你需要安装LaTeX系统。LaTeX有多个发行版可供选择,比如TeX Live、MiKTeX等。你可以根据自己的操作系统选择合适的发行版进行安装。 2. 创建一个新的LaTeX文档。你可以使用任何文本编辑器来创建LaTeX文档,比如TeXworks、TeXstudio等。在文档的开头,使用\documentclass命令指定文档类型为exam,例如:\documentclass{exam}。 3. 在文档的导言区(preamble)中,你可以设置试卷的标题、作者、日期等信息。例如,使用\title命令设置试卷标题,使用\author命令设置作者,使用\date命令设置日期。 4. 在文档的正文部分,你可以使用LaTeX提供的丰富的数学排版功能来编写数学题目。LaTeX支持各种数学符号、公式、矩阵等。你可以使用\(\)或者\[ \]来插入行内或者独立的数学公式。 5. 使用题目环境来创建题目。LaTeX提供了多个题目环境,比如question、parts、subparts等。你可以根据试卷的需要选择合适的题目环境,并在其中编写题目内容。 6. 使用LaTeX提供的数学环境来排版数学公式。LaTeX提供了多个数学环境,比如equation、align、matrix等。你可以使用这些环境来编写数学公式,并使用编号或者对齐功能。 7. 使用LaTeX提供的命令来设置试卷的格式。你可以使用\pointsinmargin命令将分数显示在页边,使用\qformat命令设置题目的格式,使用\bonuspoint命令设置奖励分数等。 8. 编译LaTeX文档。你可以使用LaTeX编译器将LaTeX源文件编译成PDF文件。通常需要多次编译才能正确生成目标文件。 以上是一些基本的步骤,你可以根据自己的需求和LaTeX的语法规则进行更详细的排版。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值