具有轴对称平面的梁,当横向荷载作用于同一平面内时,梁也就在此平面内弯曲,这种弯曲形式被称为 对称弯曲;如果荷载作用不在对称平面内,将会发生非对称弯曲现象,这种弯曲形式被称为 斜弯曲;倘若梁截面本身就不对称,将会产生另一种非对称弯曲现象,如果忽视了这种非对称弯曲的影响,则结构分析的结果可能对弯曲应力水平估计不足,必须引起设计人员的重视。本文将对这种弯曲形式进行讨论。

阅读全文 »

在工程制图中,很多人认为通过平、立、侧面三个视图中的任意两个就可以确定建(构)筑物的外形和构造,另一个通常是用于校核,因此在工程制图中会偷懒只绘制其中两个视图的构造,而省略另外一个。事实上,这是受到了熟悉事物产生固化思维的影响。工程制图中,要求采用三视图不是没有道理的,只有平、立、侧三视图才能唯一确定一个物体的构造,以下将通过一个小小的例子进行说明。

阅读全文 »

MiKTeX 是 TeX 系统的主流发行版之一,由于其体积较小,编译过程中(on-the-fly)自动下载安装未安装宏包的特性,受到许多 LaTeXer 的青睐。很多中国的 LaTeXer 入门时使用的发行版 CTEX 套装即是封装 MiKTeX 而成。MiKTeX 最初是针对 Windows 系统开发,应该是考虑了 Windows 系统编码问题,因此,在被编译源文档中使用中文路径和文件名一般能够正常编译(前提是源文档 utf-8 编码,xelatex 编译),这对于英文词汇量不足的中文用户相当友好,因此受到众多中文用户的欢迎。不过,对于中国用户来说,由于网络环境的因素,中国大陆的 CTAN 镜像源在 MikTeX 的 Console 中经常无法找到,这使得 on-the-fly 安装宏包的功能受到了限制。这个问题可以通过制作本地仓库而得到解决。本文将简单介绍制作 MiKTeX 本地仓库源的方法。

阅读全文 »

Visual Studio Code(简称VS Code)是一个由微软开发,同时支持 Windows 、 Linux 和 macOS 等操作系统的免费编辑器,它支持测试,并内置了 Git 版本控制功能,同时也具有开发环境功能,例如代码补全、代码片段和代码重构等。该编辑器支持用户个性化配置,同时还在编辑器中内置了扩展程序管理的功能。Visual Studio Code 利用插件 LaTeX Workshop 可以配置成一个非常优秀的 LaTeX 前端,网上关于 LaTeX Workshop 配置的文章非常多,但这些配置方案多数都部署了多个 latex tools 和 多个 latex recipes,而多数 recipes 使用的机会都非常少,本文提供一个相对简洁的配置方案,省略那些很少使用的 toolsrecipes,并且提供偶尔需要用到时的调用方法。

阅读全文 »

我准备在过年期间把家里的老机器重新收拾一下,老伙计的硬件估计已经跑不动一般的 Windows 10 了,于是准备弄个 Win10 LTSC 跑跑看。系统安装完成以后还需要进行一些设置,这样自己才能用的更方便。这些设置以前都是重装系统后现上网查,从来没记录下来。现在把这些小 trick 记录在这里,等哪天又要重装系统时,就可以在自己的网页上查找了。当然,现在这篇文章是不完整的,正文中全是坑,等坑填完了,这句话自然就删掉了。

阅读全文 »

AutoCAD 2021 在 2020 年 3 月既已发布,新增加了一系列功能:其中两个功能是

  • 为 VisualStudio Code 提供了 AutoLisp 扩展,从而可以使用 VS Code 编辑和调试 AutoLisp 程序。
  • 为 AutoLisp 提供了 Unicode 支持。

这里,第二个新功能为从前编写的 AutoLisp 程序带来了一定的问题。

阅读全文 »

两天前,有道路专业的同事找我帮忙解决一个问题:

既有一个 *.dwg 文件,存储了大量片区管线资料,管线按实际位置以空间直线(LINE)而非空间多段线(POLYLINE)的形式存储,不同类型的管线分图层存储,现需要沿道路中心线按给定桩号间隔读取道路宽度范围内所有管线的标高或埋深,希望能有比较便捷的程序进行处理。

说实话,这个问题在 AutoCAD 中的解决方法并不是很困难,只是过程相对繁琐,并且算法处理不好时,时间复杂度会比较高,如果是 O(n2)O(n^2) 级别的时间复杂度则是不能接受的。就在我基本考虑好这个问题并准备编写代码时,需求 变了!!!用户希望自行在管线上选取一点读出管线在该位置的标高并标注在图中。这个需求大大降低了程序编制的难度(程序员碰到这种产品经理或用户真要开心死了)。当天吃完午饭后午休时间,用了二十分钟不到的时间,我写完了这段代码(主程序代码都不超过 20 行)。考虑到前面的需求已经进行了一定程度的思索,我在这里把程序编制的思路写下来,以便将来遇到类似的问题可以用得上,同时也测试一下 hexonext 主题下 markdownmermaid 图形生成静态网页的情况。

阅读全文 »

在使用 LaTeX 进行中文文档的撰写中,有一些中文的标点符号用普通输入法输入非常麻烦,比如,知乎 风格的直角引号 「 」 『 』U+300CU+300F),科技文献特别是数学文献中为了避免与下标 0o 混淆而使用的实心句号 U+FF0E),以及书名中再次使用书名的单书名号 〈 〉U+3008U+3009),党政机关公文文号中使用的六角形括号〔 〕U+3014U+3015)等等。有些符号尚可以在 LaTeX 中利用相近符号替代,比如 可以直接使用西文的 .〈 〉 则使用西文的 < > 或使用数学公式中的尖括号 \langle \rangle (这两个符号长这样:\langle \rangle)等替代,但这些替代方案的字形(glyph)及其与其他字符之间的字偶间距都是不合适,实际上是一种错误的表达方法,就好像用 x 来表示 ×\times,用“日”字来表示“曰”字 一样。当然,这些符号都有对应的 Unicode 编码,不过,使用 \symbol + Unicode 编码可不是一种合适的解决方案,毕竟,谁脑子里能记得住这么多Unicode 编码呢? xeCJK 宏包为字体设置提供了 Mapping 选项,在一定程度上可以解决这些问题。本文简单介绍一下实现方法。

阅读全文 »

Notepad++ 是一款轻量化的开源文本编辑器,它启动速度快,具有强大的编辑功能,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码,支持众多计算机程序语言。Notepad++ 不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的扩展模块。利用 Notepad++ 的插件 NppExec、Customize Toolbar 并配合 SumatraPdf,可将 Notepad++ 打造成一款优秀的 LaTeX 前端。本文将对这几款软件的配置方法做一个简要的介绍。

阅读全文 »