UVA 272 - TEX Quotes

本文介绍如何在TeX排版系统中正确地使用双引号,通过将普通的双引号替换为特定位向的双引号``和''来提高文档美观度。文章包含输入输出示例,并提供了一个简单的C语言程序实现这一转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

TeX is a typesetting language developed by Donald Knuth. It takes source text together with a few typesetting instructions and produces, one hopes, a beautiful document. Beautiful documents use `` and " to delimit quotations, rather than the mundane"which is what is provided by most keyboards. Keyboards typically do not have an oriented double-quote, but they do have a left-single-quote`and a right-single-quote'. Check your keyboard now to locate the left-single-quote key`(sometimes called the ``backquote key") and the right-single-quote key'(sometimes called the ``apostrophe" or just ``quote"). Be careful not to confuse the left-single-quote`with the ``backslash" key\. TeX lets the user type two left-single-quotes``to create a left-double-quote `` and two right-single-quotes''to create a right-double-quote ''. Most typists, however, are accustomed to delimiting their quotations with the un-oriented double-quote".

 

If the source contained

"To be or not to be," quoth the bard, "that is the question."

then the typeset document produced by TeX would not contain the desired form:

 

 

``To be or not to be," quoth the bard, ``that is the question."

 

In order to produce the desired form, the source file must contain the sequence:

``To be or not to be,'' quoth the bard, ``that is the question.''

 

You are to write a program which converts text containing double-quote (") characters into text that is identical except that double-quotes have been replaced by the two-character sequences required by TeX for delimiting quotations with oriented double-quotes. The double-quote (") characters should be replaced appropriately by either``if the"opens a quotation and by''if the"closes a quotation. Notice that the question of nested quotations does not arise: The first"must be replaced by``, the next by'', the next by``, the next by'', the next by``, the next by'', and so on.

 

Input and Output

Input will consist of several lines of text containing an even number of double-quote (") characters. Input is ended with an end-of-file character. The text must be output exactly as it was input except that:

 

  • the first"in each pair is replaced by two`characters:``and
  • the second"in each pair is replaced by two'characters:''.

Sample Input

 

"To be or not to be," quoth the Bard, "that
is the question".
The programming contestant replied: "I must disagree.
To `C' or not to `C', that is The Question!"

 

Sample Output

 

``To be or not to be,'' quoth the Bard, ``that
is the question''.
The programming contestant replied: ``I must disagree.
To `C' or not to `C', that is The Question!''

 

 

 

#define RUN
#ifdef RUN


#include <stdio.h>
int main() {
  int c, q = 1;

  while((c= getchar()) != EOF) {
    if(c == '"') {
		printf("%s", q ? "``" : "''");
		q = !q;
    }
    else
		printf("%c", c);
  }
  return 0;
}


#endif



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值