免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: linux_c_py_php
打印 上一主题 下一主题

[其他] 边玩WOW, 边和大家一起聊聊C/C++编码风格. [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-11-01 21:28 |只看该作者
pmerofc 发表于 2012-11-01 17:39
我有时喜欢先写注释
写完注释代码就是小菜一碟了



我用的工具是noweb。这玩意分两个工具其实,用于生成ltx文件的noweave和用于抽代码的notangle。

文学编程里面一个很重要的概念就是“chunk”,其实就是代码片段。
代码片段之间可以像函数调用那样相互引用,然后可以放置在文章中的任意地方。这样你就可以根据你的思路来写文章。
然后可以用notangle来把你想要的代码块从文章里面抽取出来,形成源文件什么的。

具体的例子可以看这个网站:http://en.literateprograms.org/LiteratePrograms:Welcome

论坛徽章:
0
12 [报告]
发表于 2012-11-01 21:29 |只看该作者
pandaiam 发表于 2012-11-01 17:15
WEB,
对应c语言的有cweb.

中文不是问题吧?除非是给老外的文档,不然我都是用中文的。latex本身对中文支持就还可以吧?

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
13 [报告]
发表于 2012-11-01 21:30 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
14 [报告]
发表于 2012-11-01 21:32 |只看该作者
hellioncu 发表于 2012-11-01 17:03
好神奇,能给个实例么?

大项目也都放在一个文本文件?图形之类的怎么处理?


理论上确实可以,不过很蛋疼……你想一个文本文档几百万行……图形什么的理论上来说可以弄成数组什么的写到源码里去不是?
我比较喜欢一个模块一份文件这样的做法,避免多人同时编辑一份文件。

论坛徽章:
3
巳蛇
日期:2013-10-03 10:41:48申猴
日期:2014-07-29 16:12:04天蝎座
日期:2014-08-21 09:24:52
15 [报告]
发表于 2012-11-02 09:22 |只看该作者
qinggeng 发表于 2012-11-01 21:29
中文不是问题吧?除非是给老外的文档,不然我都是用中文的。latex本身对中文支持就还可以吧?


搜了下..打算试试noweb
以前一直用的cweb,写小东西. cweb好像生成的是原始的tex吧,不能用latex直接编译(记得是这样..)

论坛徽章:
0
16 [报告]
发表于 2012-11-02 10:45 |只看该作者
我很想用英文写注释,但。。。。。。。

论坛徽章:
3
巳蛇
日期:2013-10-03 10:41:48申猴
日期:2014-07-29 16:12:04天蝎座
日期:2014-08-21 09:24:52
17 [报告]
发表于 2012-11-02 11:52 |只看该作者
@qinggeng
你的noweb是在linux下还是windows下编译的啊.
貌似windows下还比较复杂..

论坛徽章:
0
18 [报告]
发表于 2012-11-02 15:41 |只看该作者
pandaiam 发表于 2012-11-02 11:52
@qinggeng
你的noweb是在linux下还是windows下编译的啊.
貌似windows下还比较复杂..

在windows下用noweb……我曾经试过,装了perl、icon什么的,还改了noweb的perl脚本,最终也就能弄好notangle的部分,noweave还是用不起来。
现在我在windows下是在虚拟机上装ubuntu,里面配置好latex和noweb环境,在windows下tangle一个shell script,然后用ssh到虚拟机上运行这个脚本来做剩下的tangle 和 weave的工作。

我在evernote上有关于如何在win32下安装noweb的步骤和修改好的文件:
https://www.evernote.com/shard/s ... b520c510f25ae70fefd
还有关于如何让latex支持noweb:
https://www.evernote.com/shard/s ... c1f6011c9e0d2b0251d

这些都是针对windows下面的,在ubuntu下面apt-get 相关的内容就好,在OS X下面无脑port install也就好了,就windows最烂。

论坛徽章:
3
巳蛇
日期:2013-10-03 10:41:48申猴
日期:2014-07-29 16:12:04天蝎座
日期:2014-08-21 09:24:52
19 [报告]
发表于 2012-11-07 18:11 |只看该作者
qinggeng 发表于 2012-11-02 15:41
在windows下用noweb……我曾经试过,装了perl、icon什么的,还改了noweb的perl脚本,最终也就能弄好notan ...

我在linux下装了noweb,
这东西确实简单但很好用,pdf中生成的代码也比cweb的好看.
但中文还是不行..
noweave生成的tex要手动加上些 cjk的设置?
我自己加些东西,latex编译的时候就报错了,估计和我的texlive安装的有关..

论坛徽章:
0
20 [报告]
发表于 2012-11-08 10:29 |只看该作者
本帖最后由 qinggeng 于 2012-11-08 10:37 编辑
pandaiam 发表于 2012-11-07 18:11
我在linux下装了noweb,
这东西确实简单但很好用,pdf中生成的代码也比cweb的好看.
但中文还是不行..

用xelatex和系统字体吧……cjk太蛋疼……我以前也是用cjk的,后来发现xelatex比latex聪明多了。不过好像也需要手工指定一些环境什么的,我一般是用sed直接在noweave里添加了,下面是我用的sed命令:

  1. noweave -option shift $file|\
  2. sed 's/\\usepackage{noweb}/\\usepackage[top=1.2in,bottom=1.2in,left=1.2in,right=1in]{geometry}&/g'|\
  3. sed 's/\\usepackage{noweb}/\\usepackage{fontspec, xunicode, xltxtra}&/g'|\
  4. sed 's/\\usepackage{noweb}/\\usepackage{listings}&/g'|\
  5. sed 's/\\usepackage{noweb}/\\usepackage[120, ampersand]{easylist}&/g'|\
  6. sed 's/\\usepackage{noweb}/\\usepackage{paralist}&/g'|\
  7. sed 's/\\usepackage{noweb}/\\usepackage{color}&/g'|\
  8. sed 's/\\usepackage{noweb}/&\\XeTeXlinebreaklocale "zh-cn"/g'|\
  9. sed 's/\\usepackage{noweb}/&\\pagecolor{grayyellow}/g'|\
  10. sed 's/\\usepackage{noweb}/&\\definecolor{grayyellow}{RGB}{255, 255, 200}/g'|\
  11. sed 's/\\usepackage{noweb}/&\\XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt/g'|\
  12. sed 's/\\usepackage{noweb}/&\\setmainfont[BoldFont={Adobe Heiti Std}]{SimSun}/g'|\
  13. sed 's/\\begin{document}/&\\tableofcontents/g'|\
  14. sed 's/\\documentclass/&[11pt]/g'> $ltx_file
复制代码
里面的Adobe Heiti Std是我在新浪爱问上面下的Adobe 字体,生成PDF挺好看的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP