Skip to main content

· 5 min read
黄京

应社长要求,我来简单写一写排版要求规范相關內容。主要围绕学生会关于社团招新所发推文中的排版问题展开。

中英混排之断行

第一眼看上去这张图的问题似乎在于知识的问号后面出现了极长的一段空白,造成了灰度的不平均。然而稍微仔细看看就会发现实际上是由于「Asclepius」无法被直接放入上一行。

然而,其实挤一挤就能放下了;如果挤不下也可以对单词应用断行算法,使它在中间断开。

\documentclass{standalone}
\makeatletter
\def\ltj@stdmcfont{STSong}
\def\ltj@stdyokojfm{eva/smpl,nstd}
\makeatother
\usepackage{luatexja}
\begin{document}
\vbox{\hsize=25\zw\parindent=0pt%
想要在危急时刻施予援手?想了解医学知识?
快来Asclepius急救医学社,我们旨在帮助更多的人提高急救意识,
科普有用的医学技巧,更有海龟汤,规则怪谈和定向越野赛,协助各位学以致用!
大量CAS时间和专业知识等你来领。我们诚邀你的加入!
}
\end{document}

另外一个隐藏的问题是,他在第一行第一个问号处使用了西文问号而非全角问号,这就导致若需占满行长只能对第二个全角问号插空。至于为什么这个排版引擎不调整kanjiskip我就不知道了。

挑战:窄行排版

这是另一个问题:超短行长導致的下饭效果。

实际上,对于如此小的行长,浏览器中的排版引擎基本上不可能在无人工干预下做的比较好,而即使是TeX也需要人工调整断行;特别是URL和西文长单词(因为Knuth-Plass算法是为了输出符合标准且人眼易读的断行结果設計的)。

\catcode`@=11
\def\ltj@stdmcfont{STSong}
\def\ltj@stdyokojfm{eva/smpl,nstd}
\catcode`@=12
\input luatexja.sty
\pagewidth=13\zw
\pageheight=\numexpr 16*16\relax pt
\hoffset=-2.54cm
\voffset=-2.54cm
\vbox{\hsize=13\zw\parindent=0pt\baselineskip=16pt%
我们是世外信息化社,我们是一个长期在幕后工作的,以面向社团的知识性服务为主的,
一个小而精的CS社团。我们是世外唯一计算机工程相关的社团。
我们眼中的程序,不仅仅只是作为形式载体的代码,而是其背后的程序逻辑和思想;
是Algorithms造就了Compu\-ter Scientists,而不是代码,这是我们坚定的信念,
也是我们自称CS社团而不是编程社团的原因。也正是因此,我们有着程序设计交流的社团文化。\par
\bgroup\setbox0\hbox{官网\enspace}%
\hbox to\hsize{\baselineskip=10pt\box0\vtop{\tt{https://computeriza{\break}tion.io}}}%
\egroup\vskip3.6pt
GitHub\enspace\tt{@Computerization}
}
\bye

注意因为LaTeX2e格式改动了很多东西,为了能干净地微调,我使用了plain-TeX。若有需要请使用LuaTeX编译之。

可见效果还是比较勉强。建议不要使用如此短的边距。

最后:争议

众所周知,如果中英混排的时候,在汉字(kanji)和西文之间插入适当大小的铅空效果才好。这在TeX中大部分的CJK支持宏集会自动帮你做这件事,然而直到目前,除支援Text Module Level 4的Google Chrome和Safari之外的浏览器还是不能自动插入xkanjiskip。

于是就有一些人认为在写作时,应手动插入一个空格。但这是一种错误的妥协。这些东西理应是由负责最终渲染的浏览器处理的。手动加空格不但是对浏览器中本就不成熟的排版引擎的纵容,更是对空格的滥用。

不过和这一篇学生会推文中体现出的种种问题比起来,加不加空格似乎也不算什么了。

· 5 min read
杨其臻

我们是一个长期在幕后工作的,以面向社团的知识性服务为主的,一个小而精的 CS 社团。我们的全称是 Computerization,世外信息化社;不过我们更喜欢被称之为 C 社。

作为一个有九年悠久历史的老社团,在 2024 年的今天,我们继续开启今年招新的大门,欢迎加入我们,和我们共同打造辉煌的第十年!

校内活动

作为一个「全能」的 CS 社团,我们把日常的活动分为了 Web, AI, OI 三个部门。

Web 部是许多社团大项目的基石,在这里你可以学习到丰富的前端知识,在维护项目时也能接触到大量运维和后端的知识。这个部门将会负责 Enspire 平台 (学生会社团部官方合作) 的后续开发维护,以及大部分社团联动的活动。

AI 部,你能与社团成员一起研讨最前沿的人工智能论文,探索技术,并一起开发相关的小项目。AI 部同样也有着与其它社团丰富的合作机会。

OI 部经过一年的静默于今年全新重启,你可以与我们 USACO 金牌而且特别能装的副社一同讨论算法竞赛,并和成员一起备战各类信息奥赛。

Enspire 是由世外信息化社领导的开源项目,旨在为学校的 CAS 活动与社团管理提供技术支持平台,可让同学们的 CAS 生活更加便捷高效。Enspire 的目标很简单: Make CAS Life Easier for Everyone! 这是一个依照 MIT License 完全开源的项目。

我们同时也于今年推出我们社团的社刊 c13n,向更多的人分享技术、普及技术。

校外及国际关系

作为高中生,我们深知在计算机科学领域,一个高中社团的影响力也仍然十分局限。因此,我们也在不断寻求跨校以及国际上的往来。

CS Clubs 是一个由世外信息化社发起、一群热爱计算机科学的高中生共同组建的全球联盟。联盟的初创成员由来自 2 个国家的 6 个计算机相关社团组成。

通过各种形式的合作,我们力求让更多高中的 CS 社团得到更丰富的机会、得到互相的资源整合,将最先进的技术理念引入高中生的学习生活。

还有

我们的领导层以及社员有着上述活动之外远远丰富的多的技能 ,尤其是一位精通 LaTeX / TeX 的副社

在这里,你不光能得到技术的提升,认识一群志同道合的人,还是一个极为优秀的个人展示平台:你可以向同学讲解你所熟知的计算机原理,在公众号、blog、社刊上大展身手,与其它社团联动,或是在 Web 部项目协作中为学校的信息化贡献自己的力量。

我们是世外信息化社。
我们是服务类社团。

加入我们!一起见证我们的十年!

· 2 min read
杨其臻

CS Clubs 成立了!

CS Clubs 是一个由世外信息化社发起、一群热爱计算机科学的高中生共同组建的全球联盟。联盟的初创成员由来自 2 个国家的 6 个计算机相关社团组成。

作为高中生,我们深知在计算机科学领域,一个人的力量是非常有限的,而一个高中社团的影响力也仍然十分局限。因此,我们决定联合起来,跨越地理和文化的障碍,共同学习、交流互鉴。

通过各种形式的合作,我们力求让更多高中的 CS 社团得到更丰富的机会、得到互相的资源整合,将最先进的技术理念引入高中生的学习生活。

官网 https://csclubs.org (现由 C 社运营维护)
GitHub @csclubs

成员

CS Clubs 由来自 2 个国家的 6 个高中计算机科学社团联合创立。

Computerization
世界外国语中学 📍Shanghai
https://computerization.io
GitHub @Computerization

星河湾 CS 社
上海星河湾双语学校 📍Shanghai

Lady.Coder
YK Pao School 📍Shanghai

Pomelo Bay 柚学湾
YK Pao School 📍Shanghai

PHCS
上海民办平和学校 📍Shanghai

CyberDragons
Dana Hall School 📍Wellesley, MA

· 13 min read
顾淇元 Alex

在今天 C 社 OI 部的活动中,我们先进行了破冰活动——自我介绍并交流有趣的算法知识。通过这独特的形式我们得以增进对彼此的了解,并为之后的合作打下基础。

之后,我们挑选了最感兴趣的网络流这一类算法问题进行详细的讲解。我们从网络流图的基本概念开始,例如源,汇点剩余容量最大流最小割 等等。其中最为趣味的是最小割,其定义为删去若干条边使得某两点 (u,v)(u,v) 不互通,这若干条边边权和的最小值。

接下来通过不断优化算法,例如灵活运用 Edmond-Karp 动能算法(复杂度 O(nm2)O(nm^2) ), Dinic 算法(复杂度 O(n2m)O(n^2m) )和 ISAP 算法(复杂度 O(n2m)O(n^2m) ,不需 BFS 多次)。此外还讲解了一个优美的定理:最大流最小割定理。这一定理在一些图论问题中有着有趣的应用:

· 5 min read
Josh Cena

This is the fifth activity of Computerization algorithm team. Because the December USACO contest is almost there, we had some targeted practicing, starting with Bronze problems. Because members already have decent understanding, we chose a tough one. Bronze division problems only require mastery of loops, so a brute-force enumaration will always work, with no requirement of algorithms or data structures.

· 4 min read
DoremySwee

This is the first activity of Computerization algorithm team. We discussed a problem from Shanghai NOI regional selection, which leverages state compression dynamic programming. The mathematics is beyond our capacity to be rigorously proven.

· 3 min read
Josh Cena

This is the first activity of Computerization algorithm team. We introduced the method to find the nnth term of the Fibonacci sequence, which mainly uses matrix exponentiation.

· 8 min read
Josh Cena

This article is migrated from the first section of the README.md file in the new member practice commit repo.

You can either add a file via Graphical-User-Interface(GUI)-powered GitHub Desktop or command line. You may begin with GUI, but you will someday get into command lines since they offer better control over your repo. Furthermore, Visual Studio Code users can try out the built-in source control.

We find it necessary to tell you what you are actually doing each step instead of having you follow the written instructions mechanically. This especially helps since things hardly go as beautifully as the tutorial expects. This section assumes no prior knowledge of any git operations.

· One min read
Josh Cena

Computerization welcome all new members of class 2020!

At Computerization, you can:

  • Join in the development of the new platform Enspire;
  • Research on artificial intelligence (e.g. neural networks, machine learning);
  • Take part in algorithm contests (e.g. LeetCode weekly contest);
  • Learn front-end / back-end technology and web designing, experience web development in the real world;
  • ...

We hope that all new members can learn with joy, self-improve, and meet peers with the same interest.