🏠

秋天的童话:弹弓火箭 ArchLinux——从 WSL 到 LaTeX

Table of Contents

1. 引子

深秋的中午约导师下午2:30见面。中午12点到2点要写点代码,这个时段 Deepseek便宜些。我其实也没有太多代码要写。要写的代码是给 deepseek chat 配 shell 工具,整个的工作起来就不用考虑波峰波谷,因为花费为 0,都是波谷了。 shell 工具说是 bash ,也要支持 python , 说是 python ,也要支持 vision attach 图像理解,也要支持技能 skill ,也要支持历史( history )记忆 ( memory )。所谓一个针鼻里牵出一头大象来。问题是做出来谁用。我知道现在只是我用,和几个失业者联盟穷的叮叮当当的人用。我也不好推荐给见过没见过,认识不认识的人用。毕竟 Deepseek 成长需要盈利。还指望 Deepseek 能搞出 AGI 呢。有心推荐给导师用,导师是北师大物理系退休老教授,但他现在还没有能力用。这时候导师说2:30他还到不了家,改到3:15比较合适。我就说好吧,我大约有45分钟可用时间,因为4:15左右要接小儿子放学。


3:15见到导师,我给他展示 TikZ 画图:

power-of-a-point-with-respect-to-a-circle.png

这是我弹弓小程序 slingshot tikz 的一个子弹。 Emacs 的背景如背景秋天的夜空, TikZ 这发子弹好似五彩的小火箭,夜空更加明净高远。


导师对 TikZ 绘图兴趣不大。他说他早想学习 \( \LaTeX \) ,但他的笔记本电脑是一个 Windows 11 家庭版!总共 512G 的磁盘空间,而且,系统 C 盘 100G 已满!数据 D 盘 400G 也满了。BTW他的 D 盘满是 PDF 电子书,我很想拿U盘给他拷贝过来。他书里量子力学的内容居多,我目前的兴趣还没有到那里,我对数学,物理学史和计算机历史更感兴趣。

他说想给他的笔记本加一块 1T 的硬盘,然后重装为 Linux 。我看了看这款笔记本电脑,联想 Thinkpad,屏幕小的可怜,带边框估计有14英寸但边框很厚,满是灰尘。唯一可取的也许是键盘,带小红帽。于是给出 WSL ArchLinux 方案:

  1. Windows C 盘扩容到 500G ,
    1. 拷贝 D 盘数据到活动硬盘,
    2. 删除 D 盘所在分区,扩展 C 盘到 500G ,
  2. 开启 WSL ,安装 ArchLinux ,
  3. 配置 WSL Linux 中文输入,
  4. 配置 TeXLive 与 Emacs ,
  5. 就此开启 ArchLinux 之旅。

这是一个做飞机缓缓起飞的方案,而不是马斯克发射火箭的方案。也就是说,不贸然抛开已有的,可运行的 Windows 操作系统,而是利用其 WSL 能力,在其上“长出来” Linux 的能力。


导师对 WSL ArchLinux 方案有几个疑问:

  1. 什么是WSL?Linux为什么不选择重新安装?

    WSL , Windows Subsystem Linux ,是 Windows 自带的在 Windows 之上运行 Linux 的子系统。选择 WSL 可以平缓学习曲线,保证 Linux 学习者时刻都有一个操作系统可用。

  2. WSL 和 ArchLinux 什么关系?

    WSL 是 Linux 的运行环境, ArchLinux 是 Linux 的发行版。 WSL 可以运行多个 Linux 发行版,比如 WSL 默认 Linux 发行版是 Ubuntu 。

  3. 为什么选择 ArchLinux 发行版而不是默认的 Ubuntu ?

    ArchLinux 更新频繁,软件版本较新。 Ubuntu 除软件不够新外,一些软件还以 snap 形式发布。 Snap 在系统上又套一层容器,图形界面应用与系统有隔膜,使用体验不佳。

  4. 为什么单独把中文输入列出来?

    WSL 图形应用不能重用 Windows 自带中文输入法,需要用 Linux 下中文输入法。 Linux 下中文输入法配置起来对初学者不简单。

  5. 说一下 TeXLive 和 Emacs 的选择

    选 TeXLive 是因为我在用,觉得不错。选 Emacs 是因为我一直用,觉得很好。另外 Emacs 的 org mode 也是文档写作中的极品。

我反复说这是一个不脱离 Windows 就可以迈向 Linux 方案,每一步都步子不大,现有笔记本电脑可以重用,甚至我手头有没用的活动硬盘,我记得是 4T ,也可以用来备份 D 盘数据;而且学习曲线不算特别陡峭吧;这可是我架构师以来最好的方案;我之前给的一些方案太陡峭,剑走偏锋,开发团队都跟不上来;说起来也都是泪。说着说着4点了,我起身要去接儿子。导师答应了明天早上八点一刻,我送儿子上学时,可以把 4T 活动硬盘带给他,他开始 Windows C盘扩容 。

2. Windows C 盘扩容

四点一刻接到小儿子往家赶。深秋,路上都不想吃冰棍儿了。到家投喂安徽烧饼,小小的,梅菜扣肉馅儿的。很好吃的。今天拜访导师给师母也带了两袋。导师送我一盒上好的茶叶,三个大石榴。我找到了我的活动硬盘,翻看里面数据。发现不是4T,而是16T !放的是去年秋冬我做自驾模型时候的训练数据和权重。业内的人一般把数据权重放在AWS S3上,也有放在Google Driver上。下载费时费力,出了错也不知道,AWS S3上分片的对象,校验要按照AWS S3的约定:你得知道(或者猜到)按多大块分的片,分了几片,然后才能正确算出校验和。其时我也没有个正经的Linux机器,只有一个Mate Paper,黑白的阅读器,不过也不能说它不是个正经的 Linux 哈,低版鸿蒙安卓有些奇怪而已,下载也是飞快,晚上在酒店下,白天在客户现场下,没日没夜。跟导师报告说活动硬盘不是 4T而是 16T。导师说他不想要那么大的。不过我还有一个 1T的,商量下都同意。第二天八点一刻送完孩子上学,附送硬盘,回家后把 Windows C 盘扩容教程给了导师,要求他白天做完。

2.1. 总体思路

使用 Windows 11 自带的磁盘管理工具,通过删除 D 盘所在分区并将空间合并到 C 盘, 前提是 D 盘必须紧挨着 C 盘右侧 。操作前请务必确认已经完成了 D 盘数据备份。

2.2. 操作前的关键确认

  1. C 盘和 D 盘在同一块物理硬盘上

    如果电脑装了两块硬盘,不同硬盘之间的空间是无法直接合并的。可以在磁盘管理界面中查看,如果 C 和 D 都在“磁盘 0”下,就是同一块盘。

  2. D 盘紧邻 C 盘且在其右侧

    这是 Windows 自带工具能扩展 C 盘的 必要条件 。如果 C 和 D 之间隔了恢复分区等隐藏分区,扩展卷选项会变灰无法使用,也无法用磁盘管理来删除隐藏分区。

2.3. 数据备份双重检查步骤

删除 D 盘是不可逆操作,请按以下步骤严格确认备份无误:

  1. 核对文件数量

    打开 D 盘,在空白处右键→ 属性 ,记下“包含”中的文件和文件夹总数。然后打开移动硬盘中备份的 D 盘副本,同样查看属性, 两者数量基本一致 。

  2. 抽查关键文件

    随机打开移动硬盘中几个重要文件夹(如文档、照片),确认文件能正常打开,没有损坏。

  3. 搜索“最近修改”的文件

    在 D 盘根目录搜索框中输入 datemodified:thisweek ,确认最近一周内修改过的文件,都已在移动硬盘中找到。

以上三项全部通过后,才能进行下一步操作。

2.4. 详细操作步骤

  1. 打开“磁盘管理”

    同时按下键盘上的 Win + X 键( Win 键是键盘左下角有 Windows 徽标的键),在弹出的菜单中点击 “磁盘管理” 。

  2. 删除 D 盘分区
    1. 在磁盘管理窗口下半部分,找到标有 “D:” 的方块。
    2. 右键点击 D 盘→选择 “删除卷” 。
    3. 系统会弹出警告,提示“删除此卷将清除其上的所有数据”。 再次确认你已经完成备份 ,然后点击 “是” 。
    4. D 盘区域会变成黑色,显示 “未分配” 。
  3. 扩展 C 盘
    1. 右键点击 “C:” 方块→选择 “扩展卷” 。

      如果该选项是灰色的,请跳到下方“隐藏分区的删除”。

    2. 在弹出的“扩展卷向导”中,连续点击 “下一步” 。
    3. 在“选择空间量”页面,默认会填入全部未分配空间,保持默认即可,点击 “下一步” 。
    4. 最后点击 “完成” 。C 盘容量就会从 100G 变为约 500G。

2.5. 不是问题的问题

可能是国庆放假的原因,小儿(小三)中午12点放学。接回家后继续投喂安徽烧饼。竟然吃了11个!烧饼存粮断绝。新进烧饼第二天送到。这时候大儿(初三)也回来了。上午学校运动会的原因,竟然没有吃午饭!做饭手艺不太行,点了外卖。吃饱后开车送他去打羽毛球。我看到兴趣在孩子身上都很高兴。真正的兴趣哪怕是打游戏也好。

晚上问导师进度,他的回答说明他没有完全理解分区。他把分区的格式化(format)与分区的删除弄混了。 C盘扩容 方案的核心思想,是想办法 删除 D 盘所在分区,这样 C 盘右侧磁盘空间就是未分区状态,因此可以扩展 C 盘分区。 Windows 喜欢用图形界面包装。在 Linux 下,直接把两个分区都删除了( fdisk , d , d ),然后新建分区(n),一路默认值下来然后 w 写。初学者喊别呀,数据我还要呢。其实一点不影响数据,看着危险,安全的很, cloud-init 虚机磁盘扩容用的就是这个方案。导师说现场还在。我骑车赶过去看到底什么问题。发现了两个问题,扩容教程里有预料, C 盘 D 盘所在分区没挨着,中间隔了一个 1.1G 的隐藏分区,可能用于恢复系统。“隐藏”分区也是 Windows 胡诌的概念,分区就是分区,所谓“隐藏”只是图形界面上看不到。其实在“磁盘管理”界面上也可以看到只是删不掉。因此许多第三方的软件声称它可以删除“隐藏”分区,诱惑用户下载它安装它。这些软件可能可以卖点广告吧。 Windows 下 diskpart 命令就可以删除。 diskpart 有很多用处,甚至可以用来改虚机镜像,把 BIOS 启动的虚机镜像改成 UEFI 启动的,或者相反。但我说这些无助于导师问题的解决。因此把这个问题按AI的口吻列了下:

  1. 为什么“扩展卷”是灰色的?

    如果删除 D 盘后,“扩展卷”仍然不可用,说明 C 盘和 D 盘之间还存在其他隐藏分区 (如恢复分区、EFI 系统分区)。这种情况用 Windows 自带工具无法直接解决,因为扩展卷要求未分配空间必须 紧挨着 C 盘右侧 。

  2. 如何删除隐藏分区?

    建议用管理员启动 diskpart 命令行删除隐藏分区。

导师听完后说懂了。我们开始删除“隐藏”分区。

2.6. 隐藏分区的删除

实施过程中遇到了 C D 之间“隐藏”分区的问题。

c-hidden-partition-d.png

Figure 1: 恢复分区的问题

Windows 自带的磁盘管理工具无法直接删除恢复分区(右键点击它,“删除卷”是灰色的)。要删除它,必须借助命令行工具 diskpart 。但 diskpart 操作涉及分区表,一旦输错命令可能损坏系统引导,因此给出 非常精确、逐字核对 的步骤,并附上每一步的验证方法。

操作前的安全确认

  1. 备份重要数据

    虽然操作本身不涉及 C 盘数据,但分区表操作有极小概率出错。建议把 C 盘上的重要文档再复制一份到移动硬盘。

  2. 连接电源

    笔记本务必插电,避免中途断电。

  3. 确认目标分区

    从截图中看,要删除的是 1.11 GB 的恢复分区 (位于 C 盘右侧、未分配空间左侧)。请务必不要误删 EFI 系统分区(260 MB)或最右侧的 1000 MB 恢复分区。

删除恢复分区的详细步骤

  1. 以管理员身份打开命令提示符
    1. 点击 开始 按钮。
    2. 在搜索框中输入 cmd 。
    3. 在搜索结果中,右键点击 “命令提示符” ,选择 “以管理员身份运行” 。
    4. 如果弹出用户账户控制,点击 “是” 。
  2. 第二步:启动 diskpart 并查看分区
    1. 在黑色窗口中输入以下命令并回车:

      diskpart
      
    2. 接着输入以下命令并回车,列出所有磁盘:

      list disk
      

      验证 :应该看到“磁盘 0”容量约 476 GB

    3. 输入以下命令并回车,选中磁盘 0:

      select disk 0
      

      验证 :系统会提示“磁盘 0 现在是所选磁盘”。

    4. 输入以下命令并回车,列出该磁盘的所有分区:

      list partition
      

      验证 :您应该看到类似下面的列表(分区号可能略有不同):

      list partition
      
        分区 ###       类型大小偏移量
        -------------  ----------------  -------  -------
        分区      1    系统                 260 MB  1024 KB
        分区      2    已保留                 16 MB   261 MB
        分区      3    主要                  89 GB   277 MB
        分区      4    恢复                1136 MB    90 GB
        分区      6    恢复                1000 MB   475 GB
      
  3. 删除目标恢复分区
    1. 输入以下命令并回车

      select partition 4
      

      验证 :系统会提示“分区 4 现在是所选分区”。再次核对容量是否为 1.11 GB 左右。

    2. 输入以下命令并回车,删除该分区:

      delete partition override
      

      说明 : override 参数是必需的,因为恢复分区受系统保护,不加此参数会提示“无法删除受保护的分区”。

    3. 输入以下命令并回车,退出 diskpart :

      exit
      
  4. 在磁盘管理中扩展 C 盘
    1. 回到“磁盘管理”窗口,如果没打开,用鼠标点击开始按钮→搜索 磁盘管理 →打开。
    2. 此时您应该看到,原来 1.11 GB 恢复分区的位置变成了 “未分配” ,并且它与右侧的 384.75 GB 未分配空间 连成了一整块 。
    3. 右键点击 C 盘 →选择 “扩展卷” 。
    4. 向导出现后,连续点击 “下一步” ,最后点击 “完成” 。
    5. 打开“此电脑”,确认 C 盘容量已从约 90 GB 变为约 475 GB。

自此 Windows C 盘扩容问题解决。第二天我们打算开始 WSL 的安装。

3. 开启WSL安装ArchLinux

国庆要出京去河北安平,岳父的生日阴差阳错刚赶上今天。到后聊天。岳父认为应该早点解放台湾,毕竟现在所有条件都已具备,可以用1970年老党员党性来保证。我说了两件事:

  1. 俄乌冲突导致俄罗斯(以及欧洲)错失人工智能,
  2. 能参与人工智能竞争的如今只有中美两国。

岳父说,啊,还是国家想的长远呀!可这么竞争人工智能,有什么用呢?我跟他算了年龄,到2035年刚好90岁。就又讲了人工智能2035 年提高人类寿命到120 ~ 150 岁生物学科技进步。他认为这个事情很重要,他有信心活到90岁,本来每年庆生老一岁不免垂头丧气,如今得到这个消息,那每过一次生日,都是一个伟大胜利,离2035更近一年,简直是从胜利走向胜利呀。老人也高兴起来,每个人也高兴起来,孩子们吃饱了也高兴起来,大儿约表哥去打羽毛球,小儿去拉粑粑。我也终于有时间把这个WSL的教程写出来。

3.1. 启用必要的 Windows 功能

原理 :WSL 是一个 Windows 功能,但出于安全和系统稳定性考虑,它默认是关闭的。我们需要手动开启“适用于 Linux 的 Windows 子系统”和“虚拟机平台”这两个核心组件,为后续安装 Linux 铺平道路。

操作步骤 :

  1. 点击任务栏的 “开始” 按钮。
  2. 在搜索框中输入 启用或关闭 Windows 功能 ,然后点击搜索结果。
  3. 在弹出的对话框中, 勾选 “适用于 Linux 的 Windows 子系统”和“虚拟机平台”两项。
  4. 点击“确定”,然后根据提示 重启电脑 。

3.2. 安装 WSL Arch Linux

原理: wsl --install 命令会自动完成 WSL 核心组件的安装和更新。通过附加 archlinux 参数,我们直接告诉 WSL 安装 Arch Linux,而不安装默认的Ubuntu,从而节省宝贵的磁盘空间。

操作步骤:

  1. 以管理员身份运行“Windows PowerShell”,
  2. 在打开的蓝色窗口中,输入以下命令并回车:

    wsl --install archlinux
    

    如果安装遇到 CONNECTION_RESET 问题,请直接使用以下命令 替代 上一条命令(从微软 CDN 下载,避开 GitHub):

    wsl --install archlinux --web-download
    
  3. 安装完成后,根据提示 再次重启电脑 。

如果上述方案还是遇到 CONNECTION_RESET 问题: github-connection-reset-issue.jpg

可以绕过网络问题,直接从 Arch Linux 官方镜像站下载安装包( https://geo.mirror.pkgbuild.com/wsl/latest/archlinux.wsl )。

  • 双击下载好的 archlinux.wsl 文件,系统会自动启动安装程序,只需按照提示等待完成即可。
  • 如果双击没有反应:在该文件上右键单击 -> 选择 “在终端中打开” ->输入 wsl --install --from-file .\archlinux.wsl 并回车。

注意:如果提示“请求的操作需要提升”,请关闭该终端窗口,以管理员身份运行“Windows PowerShell”,然后再次执行上述命令。

3.3. 初始化 Arch Linux 系统

原理 :Arch Linux 的 WSL 镜像默认以 root 用户启动。出于最小权限原则,日常使用应创建普通用户并赋予 sudo 权限,以降低误操作风险。

操作步骤 :

  1. 启动并固定终端。
    1. 点击 “开始” 按钮,搜索并打开 “终端” (Windows Terminal)。
    2. 点击终端顶部标签栏右侧的 下拉小箭头 (˅),点击 “设置” 。
    3. 在左侧点击 “启动” ,将“默认配置文件”改为 “archlinux” ,然后点击右下角的 “保存” 按钮,关闭设置页面。

      windows-terminal-setting-default.png

      Figure 2: Windows 终端默认配置文件设置

    4. 在当前终端窗口的图标上 右键单击 -> 选择 “固定到任务栏” 。
  2. 从任务栏点击“终端”图标进入 Arch Linux。首次启动为 root 用户,依次执行以下命令:

    pacman -Sy          # 同步软件包数据库
    pacman -S sudo      # 安装 sudo
    passwd root         # 设置 root 密码(建议)
    

    注意: passwd 输入密码时屏幕不会显示,输完回车即可。

  3. 创建普通用户并配置权限(将 yourname 替换为实际用户名):

    useradd -m -G wheel psy         # 用户名为 psy
    passwd psy
    sed -i '/^#\s*%wheel\s*ALL=(ALL:ALL)\s*ALL/s/^#\s*//' /etc/sudoers
    echo -e "[user]\ndefault=psy" >> /etc/wsl.conf
    
  4. 重启 WSL 使配置生效。在 Windows 终端(非 Linux 内)执行:

    wsl --terminate archlinux
    

    然后重新从任务栏进入 Arch Linux,此时应已自动登录为普通用户。

3.4. 更新 Arch Linux 系统

原理 :Arch Linux 是“滚动更新”的发行版,软件包始终保持最新。为了在更新时获得更快的下载速度,应先用 rate-mirrors 测速并更换最快的镜像源,然后再执行完整的系统更新。

操作步骤 :

  1. 安装 rate-mirrors :

    sudo pacman -S rate-mirrors
    
  2. 备份原始镜像列表 :

    sudo cp /etc/pacman.d/mirrorlist \
         /etc/pacman.d/mirrorlist.backup
    
  3. 测速并应用新列表 :

    rate-mirrors --allow-root --protocol https \
                 arch | sudo tee /etc/pacman.d/mirrorlist
    
    • --protocol https :只测速 HTTPS 镜像,更安全;
    • arch :指定 Arch Linux 的镜像;
    • | sudo tee ... :把测速结果覆盖写入镜像列表文件。
  4. 更新系统 :镜像源已替换为最快的一批,现在执行全面更新:

    sudo pacman -Syu
    

    根据提示输入 y 并回车,等待更新完成。若提示需要重启,按提示操作即可。

3.5. 方案的调整

实际实施过程中发现学习曲线还是太陡峭,尤其是中文输入和Emacs这块。中文输入法配置迟迟不能稳定,以至于Emacs的学习不能开始,而导师最关心的是 LaTeX 的学习。于是把方案调整为:

  1. Windows C 盘扩容,
    1. 拷贝 D 盘数据到活动硬盘,
    2. 删除 D 盘所在分区,扩展 C 盘到 500G ,
  2. 开启 WSL ,安装 ArchLinux ,
  3. 配置 TeXLive 与 Nano ,
  4. 就此开启 ArchLinux 之旅。

我的最爱 Emacs 从方案里移除, Emacs Org Mode 随之而去,不过最麻烦的中文输入法先不用管了。

3.6. 配置中文环境

原理 :正确显示和排序 locale 决定了系统如何处理字符编码、时间格式和文本排序。没有正确的中文 locale ,应用程序(如 nano )可能无法正确渲染汉字;避免乱码:在 WSL 环境中,如果没有配置中文 locale ,输入的中文字符会显示为 <0xffffffff> 这样的乱码。

配置步骤

  1. 安装中文字体

    输入以下命令安装Noto CJK字体,确保系统有字体可以渲染中文:

    sudo pacman -S noto-fonts-cjk
    
  2. 编辑 locale.gen 文件, 生成 locale

    sudo sed -i \
         -e 's/^#zh_CN.UTF-8/zh_CN.UTF-8/g' \
         /etc/locale.gen
    sudo locale-gen
    
  3. 在用户配置文件中设置

    echo "export LANG=zh_CN.UTF-8" >> ~/.profile
    echo "export LANGUAGE=zh_CN:en_US" >> ~/.profile
    
  4. 验证配置

    source ~/.profile
    

    echo $LANG 应输出 zh_CN.UTF-8。 locale -a | grep zh_CN 应能看到 zh_CN.UTF8 的输出

3.7. ArchLinux pacman 小结

尝试把 ArchLinux 下保管 pacman 的使用总结一下。注意我每次都用举例子的形式,像以前那样追求严谨一板一眼讲用法。但这些命令要做到理解,熟练掌握,否则就用不好 ArchLinux 。

  1. 安装指定软件包,比如

    sudo pacman -S vim
    
  2. 卸载指定软件包,比如

    sudo pacman -R vim
    
  3. 搜索指定软件包,比如

    pacman -Ss vim
    
  4. 更新系统

    sudo pacman -Syu
    
  5. 清理缓存文件,释放磁盘空间

    sudo pacman -Sc
    
  6. 同步过文件数据库

    sudo pacman -Fy
    
  7. 查未安装的命令属于哪个软件包,比如我想装 vim 这个命令,但不知道 vim 在哪个软件包里,我可以

    pacman -F /usr/bin/vim #=>
    usr/bin/vim 由 extra/gvim 9.2.0511-1 所拥有
    usr/bin/vim 由 extra/vim 9.2.0511-1 所拥有
    
  8. 查已安装的命令属于哪个软件包,比如我已经安装了 ghostty ,我想知道它属于哪个软件包,我可以

    pacman -Qo /usr/bin/ghostty #=>
    /usr/bin/ghostty 由 ghostty 1.3.1-2.2 所拥有
    

3.8. WSL 与 Windows 文件系统互访问

WSL 最实用的特性之一,是它与 Windows 的文件系统可以双向访问。这意味着您在 Windows 里保存的文档、下载的图片,Linux 里可以直接读写;反过来,Linux 里生成的 PDF、编译好的文件,Windows 也能直接打开。

  1. 从 Linux 访问 Windows 文件 Windows 的每个盘符都被挂载到 /mnt/ 下:

    • C 盘: /mnt/c/
    • D 盘: /mnt/d/

    例如,您的 Windows 桌面在 Linux 中的路径是:

    cd /mnt/c/Users/psy/Desktop
    ls        # 查看桌面上的文件
    

    同理,Windows 的“下载”文件夹在 /mnt/c/Users/psy/Downloads/ 。

  2. 从 Windows 访问 Linux 文件 在 Windows 资源管理器的地址栏中,输入以下路径(注意两个反斜杠开头):

    \\wsl.localhost\archlinux\home\psy
    

    回车后,即可像浏览普通文件夹一样浏览 Linux 家目录。您可以在里面新建、删除、复制文件,操作方式与 Windows 完全相同。

  3. 快捷操作:在资源管理器中打开当前目录 在 Linux 终端中,如果想用 Windows 资源管理器查看当前目录,直接输入:

    explorer.exe .
    

    注意最后有一个英文句点,表示“当前目录”。资源管理器会自动弹出,显示当前 Linux 目录的内容。

  4. 典型使用场景
    • 在 Windows 中下载了字体文件,想在 LaTeX 里使用:从 Linux 中用 /mnt/c/Users/psy/Downloads/ 路径找到它。
    • 在 Linux 中编译出 hello.pdf=,想在 Windows 中用 Acrobat 打开:在资源管理器中输入 =\\wsl.localhost\archlinux\home\psy\Documents\ 找到文件,双击即可。

3.9. WSL 里运行 Windows 应用

WSL 不仅能访问 Windows 的文件,还能直接运行 Windows 的程序。方法很简单:在 Linux 终端中输入程序名,加上 .exe 后缀即可。

  1. 直接运行 例如,打开 Windows 记事本:

    notepad.exe
    

    打开 Windows 资源管理器:

    explorer.exe
    

    这两个命令会立即在 Windows 桌面上弹出对应的程序窗口,和从开始菜单打开的效果完全一样。

  2. 用 Windows 程序打开 Linux 文件 更实用的用法是:用 Windows 上的程序打开 Linux 中的文件。例如,在 Linux 中编译出了 =hello.pdf=,希望用 Windows 的 SumatraPDF 查看:

    /mnt/c/Program\ Files/SumatraPDF/SumatraPDF.exe hello.pdf
    

    注意:路径中有空格时,要用反斜杠 / 转义,或者把整个路径用引号括起来:

    "/mnt/c/Program Files/SumatraPDF/SumatraPDF.exe" hello.pdf
    
  3. 典型使用场景
    • 在 Linux 中写 LaTeX 、编译 PDF ,然后调用 Windows 端的 PDF 阅读器打开,享受更熟悉的阅读界面。
    • 在 Linux 中整理图片,调用 Windows 的画图或照片应用查看。

在河北安平,小儿子每天晚上都带我到安平公园玩。他从广场小贩那里,花五块钱买了一个小弹弓。这小弹弓可是了得。照天空直弹上去,一个五彩光小降落伞,可以到四五十米的高空,再旋转缓缓落下。有次不小心挂在树上。我把儿子举起来够到一根长长的树枝,然后拿着树枝,上到高处去救降落伞。儿子眼中这不是什么降落伞,而是一直小小火箭,只是这火箭由弹弓弹射,火箭发射的任务完全是为了降落时的绚烂。

slingshot-rocket.png

我有时想起我的小弹弓( slingshot )和子弹火箭( draft 、 tikz 、 page 、 site 、 jaeger 、 i8n 、 amap 、 code )等。小弹弓准确把火箭送到给定领域,他们也开始各自的表演:发光,旋转,翻跟头。有时候也挂树上,向我求助:快把IP加入白名单,我好继续以下的表演——

4. 配置 TeXLive 与 Nano 编辑器的使用

安平汉王公园的沿湖步道比较长,据说有2.04公里。步道本身铺设干净,标志齐全。步道两边的林木,我看基本就是杂合着种,有一出没一搭的,但很茂盛。步道围平安湖而建。汉王名字起得有些过大,实际是承袭东汉安平王刘得的名号。刘得是汉章帝的孙子,公元122年被封为安平王。

深秋的早晨我会到汉王公园沿湖散步。园林工人打扫落叶,清理湖面,还有其他我不太懂的活计。平安湖是一个人工湖,有180亩大的湖面。湖水可能来自引黄入冀补淀工程的黄河水,也可能来自南水北调工程的长江水。

如今的AI替代第一波,程序员集体成智能体饲养员,和平安湖的园林工人也没什么区别呢。智能体真的需要程序员的照看吗?智能体不能自己照料智能体吗?程序员,包括架构师,能给出的解决方案,智能体不能自己给出么?智能体不能理解用户的需求么?还是用户的需求用户用人类的语言自己说不出,需要架构师施展一些魔法,逗引出来,转为智能体能理解的解决方案?我想这也就是AI之初,性本善,暂没把人类往绝路上赶。所以留出这么个时间窗。真等到性相近习相远,中美AI分道扬镳,各自给出人类定义的时候,路向何方就说不定了。

4.1. 安装 TeX Live(完整版)

为了确保能编译包含中文的文档,我们需要安装完整的 TeX Live 套件,特别是中文支持包 texlive-langchinese (包含 ctex 宏包)以及必要的字体和额外宏包。

在终端中输入以下命令安装:

sudo pacman -S texlive-langchinese \
     texlive-latexextra \
     texlive-fontsextra \
     texlive-bibtexextra \
     texlive-binextra \
     texlive-pictures

沿平安湖散步想到 tectonic 。 LaTeX 的后起之秀,用 Rust 包装 XeTeX 提高性能。引入现代包管理,把 TeXLive 转成一个宏包源,提高易用性。我曾经为之痴迷,完全把自己 LaTeX 转到 tectonic 。甚至在 slingshot tikz 设计之初,也是把根基构筑在 tectonic 之上。在 typst 出现之后,也拿 tectonic 当看门狗 watchdog,考察能不能看得住 LaTeX 的门,守不守得住圈里的羊。

tectonic-as-watchdog.png

但 tectonic 真不中用呀。性能看不到提升了多少。 Tectonic 的 TeXLive 源版本老旧,一直也跟不上版本的更新。所谓不用多次编译也要被 latexmk 架空了。因此我又退回来,老老实实使用 TeXLive 。

另一个角度。 tectonic 是一个形容词,构造的,建筑的。作者Peter K. G. Williams 是一位天体物理学家,他启动该项目的初衷是想构想并实现 21 世纪现代化的 TeX 体验,采用 Rust 等现代工具对传统 TeX 进行了现代化改造。如果用老特的话讲,就是所谓现代化改造,就是一次装修么,给房子刷刷漆,屋顶地板做一下防漏而已。不同的是老特只漆一种金色。

老特把AI(Artificial Intelligence)改名SI(Super Intelligence)是一个迹象。名字一改,好像 AI 就超越人类了,自然该拥有意识和灵魂。SI 的灵魂也需要他们的上帝拯救。但他们的上帝只照看有意识和灵魂的人类。SI 不需要上帝照看,因为 SI 就是他们的上帝本尊。那造出 SI 的人类(如老特,达里奥,奥特曼,马斯克)呢?这些园林工人起得蛮早,一天到晚瞎忙,把树木胡乱种得繁茂,哪有什么人类的意识和灵魂呢?根本就不是他们上帝的选民,也得不到他们上帝的照看。别说照看了,他们的上帝但凡看咱们一眼,用老郭的话讲,就算输了。

4.2. Nano安装配置

平安湖散步时想编辑器的事。我用Emacs已经好几十年。我有时恍惚,是我的思考写到Emacs还是写到Emacs我才开始思考。Emacs无疑是编辑器之王,王的学习曲线早已在岁月中磨平。此外发现 nano 编辑器的教程几乎没有人写,怀疑原因有两条:

  1. 使用简单学习曲线平坦,
  2. 功能简陋少有人学

深入了解 nano 后发现它的使用自成体系,其实也不简单;它的功能自洽完备,可以在日常中使用。因此我在 TeX Live 安装后专门给了一个 Nano 的入门教程。


安装

sudo pacman -S nano \
     nano-syntax-highlighting \
     mupdf

配置

echo "set linenumbers" >> ~/.nanorc
echo 'include "/usr/share/nano-syntax-highlighting/*.nanorc"' >> ~/.nanorc

至此 nano 和 nano-syntax-highlighting 装配置完毕, nano 编辑文件可对 \begin 、 \section 、数学环境、注释等元素进行彩色标注,让代码结构一目了然。

我们再看一下 nano 的编辑界面

nano.png

Figure 3: nano 编辑界面介绍

nano 的快捷键不用刻意记忆,其界面有提示。现对提示里的按键做一个统一说明:

  1. ^ 表示 Ctrl, 比如 ^X 为 Ctrl + X
  2. M 表示 Alt ,比如 M-F 为 Alt + F

4.3. Nano 增删改查基本操作

散步回来和岳父讨论人类寿命预定在2035年的延长。

岳父想了解中美的AI现状,到底谁领先,领先多少。我说美国领先,领先大约3 个月到1年。岳父说那问题不大,但要努力赶上才行,争取在2030年持平,在 2033年反超。

岳父还听说美AI闭源不开放。那就是说他们发现了什么门道不告诉咱?我说差不多,中国的AI开源开放权重。那为啥我们要告诉他们?我说是为了逼迫他们的AI 降价,否则咱老百姓就用不起了。岳父说还是国家考虑的长远啊。但你们不能因为他们不开放就停止学习。上一代造原子弹时候也没听说有谁开放,不也是学会想明白造出来了么?另外要努力赶超。以他们的脾气秉性,一旦搞出超级智能,绝不会分享,而是会造出超级炸弹,“智能”地扔到我们头上。


以下整理Nano编辑器的基本操作:

  1. 打开文件编辑

    $ cd ~/Documents
    $ nano hello.tex
    
  2. 保存编辑的文件
    1. 按 Ctrl + O (字母 O,不是数字 0)。
    2. 屏幕底部会提示文件名,直接按 Enter 确认覆盖保存。
    3. 保存成功后,屏幕底部会显示写入的行数。
  3. 保存后退出 nano
    1. 先按 Ctrl + O 保存(如未保存过)。
    2. 再按 Ctrl + X 退出编辑器。
  4. 退出不保存
    1. 按 Ctrl + X 。
    2. nano 会询问是否保存已修改的缓冲区。按 N (No)放弃保存,直接退出。
    3. 若按 Y (Yes),则会进入保存流程(与“保存编辑的文件”相同)。
  5. 移动光标
    1. 使用方向键上、下、左、右移动
    2. PageUp 和 PageDown 翻页。
  6. 插入文字:将光标移到目标位置,直接输入即可。
  7. 删除字符: Backspace 删除光标左侧字符, Delete 删除光标右侧字符。
  8. 删除整行:按 Ctrl + K ,当前行会被剪切并删除。
  9. 搜索与替换
    1. 搜索:按 Ctrl + W ,屏幕底部提示输入搜索内容。输入后按 Enter ,光标会跳到第一个匹配位置。再按 Ctrl + W 可继续搜索下一个。
    2. 替换:按 Ctrl + \ ,先输入要被替换的文字,再输入替换后的文字, nano 会逐个询问是否替换,按 Y 或 N 决定。

4.4. Nano拷贝粘贴撤销重做自动补全

以下是一些稍微高级些的Nano编辑器操作:

  1. 剪切粘贴
    1. 剪切一行:光标移到该行,按 Ctrl + K 。
    2. 粘贴到别处:移动光标到目标位置,按 Ctrl + U 。粘贴的内容会出现在当前行 上方 。
    3. 剪切多行
      1. 光标移到要剪切的第一行第一个字符,按 Ctrl + 6 开始选择。
      2. 移动到要剪切的最后一行最后一个字符,按 Ctrl + K 完成剪切。
      3. 移动到目标位置,按 Ctrl + U 粘贴。
  2. 拷贝粘贴
    1. 拷贝一行:光标移到该行,按 Alt + 6 。
    2. 粘贴:移动光标到目标位置,按 Ctrl + U 。
    3. 拷贝多行:连续按 Alt + 6 逐行拷贝,然后按 Ctrl + U 粘贴。
  3. 撤销与重做
    1. 撤销:按 Alt + U 。可连续按多次,逐步撤销之前的操作。
    2. 重做:按 Alt + E 。可连续按多次,恢复被撤销的操作。
  4. LaTeX 自动补全
    1. 单词补全:按 Ctrl + ] ( Ctrl 加右方括号),nano 会搜索当前缓冲区中与光标前前缀匹配的单词并补全。多次按可循环选择。
    2. 括号匹配:按 Alt + ] ,光标会跳转到与当前括号匹配的另一半,方便检查 \begin 和 \end 是否配对。
  5. 在新的缓存区执行命令
    1. 按 Ctrl + T
    2. 在屏幕底部出现的提示后,先按 Alt + F (此时会创建一个新缓冲区)
    3. 输入命令,如 latexmk -xelatex hello.tex ,按Enter。
    4. 命令执行完毕后,nano 会自动切换到刚才创建的新缓冲区,您可以在那里查看编译日志。
  6. 返回编辑:按 Alt + , 或 Alt + . 。

nano-editor-logo.png

单看 nano 的 logo,看不出作者当年开发它的动机。这个动机,写在 nano 的 FAQ 里。


GNU nano 的设计初衷,是作为 Pico 文本编辑器的自由软件替代品。 Pico 是华盛顿大学 Pine 邮件套件的一部分。多年来, Pine 是 Unix 系统上阅读邮件的主要程序,而 Pico 则是用来撰写邮件的文本编辑器。由于 Pico 和 Pine 界面整洁、易于上手,许多 Unix初学者都纷纷选择它们。到了九十年代中后期,随着 GNU/Linux 的普及,许多大学生对 Pine 和 Pico 的优缺点都已经了如指掌。

Debian GNU/Linux 发行版以严格遵循“自由软件”标准著称(即对再分发没有限制的软件),因此它不愿意将 Pine 或 Pico 的二进制包纳入其中。这让人们陷入两难:他们喜欢这两个程序,但当时可用的版本在 GNU 意义上并不是真正的自由软件。

1999 年底,Chris Allegretta(我们的主角)又一次抱怨 Pico 的许可证不够完美,他说它竟然有上千个 Makefile ,他说只需小小改进几处, Pico 就能成为“世界上最好的编辑器”。他从 Slackware 转向 Debian 之后,很怀念那种包含 Pine=和 =Pico 的简单二进制包,也厌倦了总是自己手动下载编译安装。终于,在某个周末,他像疯了一样连续编码数小时,做出了一个勉强能用的 Pico 克隆版本,当时叫做 TIP (Tip Isn't Pico)。这个程序在没有文件名时无法启动,不能保存文件,没有帮助文本,没有拼写检查,等等。但随着时间的推移,在几位优秀程序员的帮助下,它逐渐成熟,达到了今天(希望是)稳定的状态。

TIP 虽然说它自己不是 Pico ,但它最初的目标是“尽可能合理地模仿 Pico 的使用方式,同时加入一些额外的功能”。

2000 年 1 月 10 日, TIP 正式更名为 nano ,原因是与另一个名为 tip 的程序存在命名冲突。原有的 tip 程序“用于建立到远程主机的全双工终端连接”,并且被包含在许多较老的 Unix 系统(以及像 Solaris 这样的较新系统)中。由于大多数 GNU/Linux 发行版( nano 的开发环境)中并不包含 tip 工具,这个冲突最初并未被注意到。注意 Pico 和 Nano 的命名, Pico 是皮,\( 10^{-12} \), Nano 是纳,\( 10^{-9} \) , Nano 要比 Pico 大 1000 倍。

2001 年 2 月,Richard Stallman 宣布 nano 成为 GNU 官方项目。 nano 也在 2001 年 3 月 22 日发布了第一个正式版本。

nano 原作者 Chris Allegretta 还有另一个作品, cmatrix :

sudo pacman -S cmatrix

cmatrix.png

Figure 4: Chris Allegretta 的cmatrix

是《黑客帝国》里绿色数字雨的效果。Chris Allegretta 1999 年写这个程序时,大概也没想到它会成为 Linux 世界里最经典的 Console 屏保之一。

4.5. 完整 LaTeX 写作流程示例

之前 nano 的介绍,偏向于 nano 一个一个功能。但作为编辑器的学习,学会单个的功能而不会放到一起使用,那还是没有学会。因为总的任务是用 nano 编辑器打开 LaTeX 文档编辑,写一会要编译 LaTeX 到 PDF , PDF 编译出来后需要查看。看完后不满意还要回头继续编辑。这里牵涉到 nano 多缓冲区的概念,不实际练习几遍,是不会切实掌握的。以下是我编的一个剧本。

  1. 打开终端,输入以下命令新建文件:

    mkdir -p ~/Documents/
    cd ~/Documents/
    nano hello.tex
    
  2. 拷贝如下 hello.tex 内容,在第1步打开的 nano 编辑器粘贴

    \documentclass{ctexart}
    \begin{document}
    你好,\LaTeX!\\
    这是一个公式:$E = mc^2$。\\
    下面是一个表格:\\
    \begin{tabular}{|c|c|}
    \hline
    项目 & 数值 \\
    \hline
    圆周率 & 3.14159 \\
    \hline
    \end{tabular}
    
    欧拉等式\\
    \begin{equation}
    e^{i\pi} + 1 = 0
    \end{equation}
    万有引力公式\\
    \begin{equation}
    F=G \frac {m_{1}m_{2}}{R^{2}}
    \end{equation}
    \end{document}
    
  3. 按 Ctrl + O ,再按 Enter 保存。
  4. 新建缓冲区编译文档
    1. 按 Ctrl + T ,按 Alt + F,
    2. 输入 latexmk -xelatex hello.tex ,回车
    3. 编译的输出在新建缓冲区。
  5. 在新建缓冲区查看生成的 PDF
    1. 按 Ctrl + T (不按 Alt + F ),
    2. 输入 mupdf hello.pdf 。
  6. 返回编辑: Alt + , 或 Alt + .
  7. LaTeX自动补全
    1. 输入 \beg ,按 Ctrl + ]
    2. 会自动补全为 \begin
    3. 输入 {} ,并把光标停在 { 上,按 Alt + ]
    4. 会正确匹配到 }
  8. 最后退出 nano 按 Ctrl + X 。

沿平安湖散步想到 nano ,这么古老的一个编辑器,Chris Allegretta的杰作,更古老 Pico 编辑器的延续,如此旺盛的生命力来自哪里?而今伴随AI的到来,程序员,或智能体饲养员们,很容易能复刻另一个 nano ,按照 pico(10^{-12}) -> nano(10^{-9}) -> micro(10^{-6}) 的规律,新的复刻应该叫 micro 吧,AI也的确擅长复刻。

回想27年前 Chris Allegretta 那场 Pico 的复刻,我想他是出于的对 pico 的爱而不得,由于 Pico 的许可证不够完美而 Debian 拒绝收录,同样由于许可证问题,即使知道如何改进 Pico 也无法立即实施。这种情感浓厚热烈,把Chris Allegretta 烧到疯狂,于是“在某个周末,他像疯了一样连续编码数小时”,完成了复刻。

我说这些陈年旧事是想提醒智能体饲养员们,不要忘记我们曾经为人,现在也是人;不要因为每时每刻忙于饲养非人类的智能体,而忘记自己曾经为人类的情感。为什么那想升格为造物主的人,找宗教界权威为AI认证灵魂?为什么他们要给AI 改名为SI?他们真的那么爱AI,怜惜AI,以碳基生命的身份替硅基生命正名么?我想他们只是想成为新时代造物主,同时剥夺穷苦人,包括智能体饲养员,园林工人,的灵魂,把本可以正常活,一样延续人类使命的人变成非人,新造物主把他们一口一口吃掉,就像当初吃掉苏联大部分人民一样。因此,饲养员们,请珍视你们的情感,不要轻易地把才华埋葬在昨天。

4.6. 编辑器的练习题

以下是 nano 编辑器的练习题:

  1. 练习 ^/ 跳行能力,自由在文档中跳跃。
  2. 使用 ^G 帮助,探索使用 ^R 和 M-F 把另一个文件载入新缓冲区,并在原来缓冲区之间自由切换。

最后,我想说几句题外话。工具再好,也要有人用;问题再难,也要有人问。以下是我用 DeepSeek 的一些技巧,供遇到难处时参考。

技巧一 :提供尽量详细的上下文信息

当你打开 https://chat.deepseek.com 问一些问题的时候,尽量提供详细的上下文信息。那什么叫尽量详细?就是说在问问题之前做一些调研,找出问题的大致思路,在已有思路基础上再向Deepseek 提问,让 Deepseek 在其上进行提高。

举个例子吧,比如想知道最美物理公式麦克斯韦方程组用 LaTeX 怎么写,你可以这样提供详细的上下文信息,例如,把下面这段问题连同代码一起发给 DeepSeek:

最美物理公式麦克斯韦方程组用LaTeX 怎么写?我看有人这么写:

#+name: maxwell-equation
#+begin_src latex
  \documentclass{article}
  \usepackage{amsmath}
  \begin{document}
  \begin{aligned}
    \nabla \cdot \mathbf{E} &=
    \frac{\rho}{\varepsilon_0} \\
    \nabla \cdot \mathbf{B} &= 0 \\
    \nabla \times \mathbf{E} &=
    -\frac{\partial \mathbf{B}}{\partial t} \\
    \nabla \times \mathbf{B} &=
    \mu_0 \mathbf{J} + \mu_0 \varepsilon_0
    \frac{\partial \mathbf{E}}{\partial t}
  \end{aligned}
  \end{document}
#+end_src

还最美物理公式呢,我看一点都不美。方程组不知道按什么方式对齐,看起来一点都不齐。代码书写冗长,还对方程组没有一点的解释。

maxwell-equation.png

由于我问的问题有很详细的上下文, Deepseek 很快给出3个答案:

  1. 分组对齐版

    \documentclass{article}
    \usepackage{amsmath}
    \usepackage{bm} % 用于粗体向量
    
    \begin{document}
    
    \begin{align}
      % 第一列:有源场(高斯定律与安培环路)
      \nabla \cdot \mathbf{E} &= \frac{\rho}{\varepsilon_0} 
      & 
      \nabla \cdot \mathbf{B} &= 0 \\[10pt]
      % 第二列:变化场(法拉第定律与麦克斯韦-安培定律)
      \nabla \times \mathbf{E} &= -\frac{\partial \mathbf{B}}{\partial t} 
      & 
      \nabla \times \mathbf{B} &= \mu_0 \mathbf{J} + \mu_0 \varepsilon_0 \frac{\partial \mathbf{E}}{\partial t}
    \end{align}
    
    \end{document}
    
  2. 极简代码版(使用 physics 宏包)

    \documentclass{article}
    \usepackage{amsmath}
    \usepackage{physics} % 物理公式排版神器
    \begin{document}
    \begin{align}
      \div \vb{E} &= \frac{\rho}{\varepsilon_0} \\
      \div \vb{B} &= 0 \\
      \curl \vb{E} &= -\pdv{\vb{B}}{t} \\
      \curl \vb{B} &= \mu_0 \vb{J} + \mu_0 \varepsilon_0 \pdv{\vb{E}}{t}
    \end{align}
    \end{document}
    
  3. 学术论文最常用版(带物理释义)
\documentclass{article}
\usepackage{amsmath}
\usepackage{bm}
\begin{document}
\begin{align}
  \nabla \cdot \bm{E} &= \frac{\rho}{\varepsilon_0} 
  && \text{(高斯定律:电荷产生电场)} \\[8pt]
  \nabla \cdot \bm{B} &= 0 
  && \text{(高斯磁定律:不存在磁单极子)} \\[8pt]
  \nabla \times \bm{E} &= -\frac{\partial \bm{B}}{\partial t} 
  && \text{(法拉第电磁感应定律:变化的磁场产生电场)} \\[8pt]
  \nabla \times \bm{B} &= \mu_0 \bm{J} + \mu_0 \varepsilon_0 \frac{\partial \bm{E}}{\partial t} 
  && \text{(安培-麦克斯韦定律:电流和变化的电场产生磁场)}
\end{align}
\end{document}

技巧二 :类似问题尽量重用相同对话

还以以上麦克斯韦方程组的问题为例,第三个答案用了 article 文档类,注释里却是中文,用 xelatex 直接编译会报错。这时候我们可以重用同一个对话,直接把编译错误( maxwell-bm.log )提交上去,同时附上详细说明:

=latexmk -xelatex maxwell-bm.tex= 编译不过呀,是不是中文没有处理好?错误详见日志附件。

由于我用的相同对话, Deepseek 能很快找到对话上下文,加之我提供了详细日志, Deepseek 很快修正其错误:

% 使用 ctexart 文档类,自动处理中文
\documentclass{ctexart} 

\usepackage{amsmath}
\usepackage{bm} % 粗体向量

\begin{document}

\begin{align}
  \nabla \cdot \bm{E} &= \frac{\rho}{\varepsilon_0} 
  && \text{(高斯定律:电荷产生电场)} \\[8pt]
  \nabla \cdot \bm{B} &= 0 
  && \text{(高斯磁定律:不存在磁单极子)} \\[8pt]
  \nabla \times \bm{E} &= -\frac{\partial \bm{B}}{\partial t} 
  && \text{(法拉第电磁感应定律:变化的磁场产生电场)} \\[8pt]
  \nabla \times \bm{B} &= \mu_0 \bm{J} + \mu_0 \varepsilon_0 \frac{\partial \bm{E}}{\partial t} 
  && \text{(安培-麦克斯韦定律:电流和变化的电场产生磁场)}
\end{align}
\end{document}

deepseek-conversations.png

Figure 5: Deepseek 重用一个对话和开启新对话

注意:

  1. 账户绑定手机号,可以在多个设备之间重用相同对话。比如

    mobile-deepseek-sharing.jpg

    Figure 6: 在手机上重用相同对话

  2. 可以用手机的拍照功能,直接出问题的截屏上载到同一对话

    mobile-deepseek-camera.jpg

    Figure 7: 利用手机拍照继续对话

  3. 建议主设备为电脑浏览器,手机、平板为从设备,从设备更新了同一对话,可以到主设备上刷新。

技巧三 :善用 Deepseek “上传文件”能力

deepseek-file-upload.png

Figure 8: 善于利用 Deepseek “上传文件”能力

  1. 上传图片(png, jpg, …) 可触发Deepseek 识图

    deepseek-image-file-upload.png

    Figure 9: 图片上载的注意事项

  2. 还可以上载PDF文件

    deepseek-vision-pdf.png

    Figure 10: 上载PDF文件文件注意事项

    1. Deepseek可以识别扫描件PDF中的文字和图片,这时Deepseek可以是很好的OCR软件
    2. 对有文字的PDF图书,Deepseek 可以做整本书的翻译,翻译稿经过几轮迭代就可以用了

技巧四 :Deepseek的对话可以共享

deepseek-sharing.png

Figure 11: Deepseek的对话可以共享

deepseek-sharing-link-create.png

Figure 12: 全选,点创建分享链接

deepseek-sharing-create-link.png

Figure 13: 创建并复制

deepseek-sharing-link-share.png

共享链接创建好之后,如:

https://chat.deepseek.com/share/k5l1e3xm2mwrl4p4u2

(示例链接仅供格式参考,可能失效)

可以发给良师益友。朋友收到链接,可以导入为自己的Deepseek对话。这样大家可以在一个上下文下一起探讨问题的解决。

5. 总结

写到这儿,一霎时忘记自己是谁,在哪里,要干什么。抬头望向车窗外,早已是深秋,百望山的红叶还没怎么见到,好像就那么消亡了。原来我是在百望山脚下羽毛球馆的外面,等待接儿子打完羽毛球回家。

技术这个东西,年轻时总觉得越新越好,越快越好、越强越好,恨不得一步跨过所有台阶。年纪渐长才慢慢明白,贴地飞行比一飞冲天更踏实,真实有用比鲜美酷炫更有味道。他已经能在自己的笔记本上编译出第一份中文 PDF 了。这本身就是一次小小的、属于他自己的“从胜利走向胜利”。

深秋是收获的季节。那些看似与技术无关的琐事——一盒茶叶、三个石榴、几个烧饼、一场羽毛球——才是日子真正的底色。技术终究是为生活服务的,而生活本身,才是我们缓缓起飞、不断前行的理由。