latex 属于_[LaTeX 漫谈] 如何提问

本文已加入专栏文章目录,归入「概论」文章系列。

如何交流 LaTeX 问题

去哪里交流

免费交流:去交流记录能保存、可公开获取的地方。

  • 能使用英文:tex.stackexchange.com
    功能完整、气氛严谨、交流特别活跃(以小时为单位),活跃用户中有 latex 社区元老、宏包维护者
  • 偏好中文:github.com/CTeX-org/forum/issues
    功能完善、交流不活跃(以天为单位);有 latex 中文社区成员参与,交流质量有保证
  • 偏好中文且排斥 GitHub:wenda.latexstudio.net/
    功能增加中,交流中度活跃
  • 其他场所:
    • 比较确定是特定 latex 宏包的问题,可以去宏包对应的 bug tracker,或直接联系维护者
    • 不再活跃的 latex 专用交流平台,略过
    • 非 latex 专用的交流平台,例如知乎
  • 其他的话
    • 有质量的即时交流是稀缺资源。即时通讯软件、私聊私信可以使用,但依赖这样的功能是坏习惯。
    • 交流记录不保存,一定导致重复提问。
    • 交流记录不可公开获取并检索,会增加问答双方相遇的难度,对提问方而言「加很多群、把同一个问题在每个群都发一遍」收益最大。

付费交流:去淘宝网店。

  • 适合需要即时响应或内容敏感无法公开的情况
  • 付费服务的质量不一定更优

交流原则

  • 先搜索后提问,尝试自主解决问题,避免重复提问。
  • 把问题拆小,每次只问一个界限明确的小问题,让每一次提问都容易得到解决。
  • 提供准确而详细的信息:
    • 介绍自己在做什么、为什么要这么做
    • 介绍自己是怎么做的,让问题能在他人电脑上重复发生(以下称为「复现」)
  • 使用描述性语句,谨慎使用(自创的排版)术语,解释涉及具体学科的术语
  • 提供文本形式的信息,只在必要时发截图、上传文件
  • 保有阅读(文字资料)的意愿

注意事项

  • 区分「旧问题的继续交流」和「新问题」
    继续交流多个回合后,应考虑重新提供(新)问题的完整描述,然后提一个新问题。问题描述中可以介绍「这是 xx 问题的后续」。
  • 不要离题。在 latex 社区、latex 问答里,就只讨论与 latex 有关的事。

建议的提问模板

解决错误型提问
[程序报错、输出明显不正确的情况,属于此类]
 - 我在完成 xx 任务
 - 我遇到了 xx 问题(以文字描述、截图、提供附件等各种方式,说明问题所在)
 - 我参考了 xx 资料(提供链接或准确来源),它们在 xx 方面不管用
 - 通过以下例子或操作步骤能复现我的问题

实现功能型提问
[输出正常但不满足个人需求的情况,属于此类]
 - 我想实现 xx 功能,用于 xx 场合,期待的效果是 xxx
 - 我现在是这样做的(提供例子),参考了 xx 和 xx(提供来源)
 - 目前的效果是 xxx,和期待效果之间的差异是 xxx
  • 解决错误型提问,特征是程序运行报错,或输出明显错误。
    • 最重要的是「让他人能复现你的问题」。
    • 有的问题只在特定软件版本下能复现,可能还要提供版本信息。
  • 实现功能型提问,特征是输出正常但不满足个人的特殊需求。
    • 比较重要的是「明确指出预期效果」和「让他人理解需求的合理性与必要性」
    • 对已经尝试一部分的提问,如有「必须沿用当前方案、不能更换」的要求,及时提出。

对 LaTeX 例子(MWE)的详细介绍

在 LaTeX 社区中,最小可用例(minimal working example,缩写为 MWE)是一个常见名词,它是指满足一定特征的例子。

## 什么是 MWE、如何准备它

1.    LaTeX 具体问题的提问,最好能提供 MWE
1.1.  安装问题,例如「任何文件都无法编译」,不需要提供 MWE。
1.2.  提问不能只有 MWE:以文字、截图等各种方式对问题和需求的描述,也很重要。

2.    MWE (minimal working example) 的定义
2.1.  完整:是一个完整的、在你电脑上能编译的 LaTeX 文档(以下简称「文档」)
      - 以 documentclass 开始,以 end{document} 结束
2.2.  可复现:在你电脑上的编译结果,能复现你的问题,或体现你的需求。
2.3.  最小化:文档的长度尽可能短、设置尽可能简单。
      - 尽可能用发行版提供的文档类、宏包、示例图片,少依赖外部文件(见第 3 点)。
      - 尽可能使用标准文档类、调用尽量少的宏包、包含尽量少的自定义命令和正文。
2.4.  小结:他人复制粘贴后直接能编译、编译后能复现问题的简短例子。
2.4.  补充说明
      - 完整、可复现和最小化,这三点是 MWE 的构成要素。
      - 可复现最重要,其次是完整性。
      - 能力不足(而非时间不足时)时,可适当放宽对最小化的要求。
      - 准备 MWE 需要花费时间精力,但它能切实提高沟通效率,让问题更快解决。

3.    外部文件
3.1.  此处指无法通过发行版安装、复现问题又必须依赖的文件。
3.2.  外部文件也是 MWE 的一部分,应一并提供,或它们的下载链接。
3.1.  常见的外部文件
      - 网上下载、他人发送的模板文件
      - 图片
      - .bib、.bst 和其他

4.    提供方式
4.1.  推荐的提供方式
      - LaTeX 文档:必须为文本形式,不接受截图和照片。
      - 屏幕输出:只接受截图和屏幕录像,原则上不接受对着屏幕拍的照片。
      - 非屏幕输出:书影、手绘示意图等,接受照片。
4.2.  补充建议
      - 在即时通讯工具中不发过长代码。
        10 行以上的代码,建议先粘贴到 https://paste.ubuntu.com/,然后提供返回的链接。
      - 提供截图和照片时,注意圈出重点,原则上不接受纯图片的提问。
      - MWE 包含多个文件时,以 zip 压缩包形式提供。

5.    在准备 MWE 时能帮上忙的宏包
      - lipsum 和 zhlipsum,方便地输出多段预设的西文和中文文本。
      - mwe(ctan.org/pkg/mwe),提供示例图片(如 example-image.pdf)。

关于 MWE 三要素必要性的讨论

  • 为什么要完整?
    • 和可复现结合,这样能提供相当全的信息。
    • 复制粘贴后直接能运行,提供了便利。
  • 为什么要最小化?
    • 在完整基础上的简短,能减少例子里的不必要信息。例子越短、行数越少,查找和定位问题也越方便。
    • 设置的简化,可以让例子的输出效果接近默认设置(例如 article 文档类)。默认设置是有经验的解答方最熟悉的状态,熟悉能提高效率。
  • 为什么要可复现?
    • 一方面,可复现的例子才能和问题描述匹配;
    • 另一方面,可复现能防止例子的过度简化(以至于问题不可复现)。
  • 最小化很麻烦,能不能不做?
    • 从提问方的角度,应力所能及地做。
    • 因为能力和经验不足所以只能简化一点点,似乎做不到最简,这可以理解。因为时间紧所以不做,这是不合适的。
    • 从解答方的角度,理解例子、定位问题是必经过程,所以一开始的例子越简短、越接近默认设置,整体效率越高。

关于如何提问的通用资料

关于「如何提问」,既有的讨论和总结已足够多。较为经典的是

  • Eric S. Raymond and Rick Moen, How to Ask Questions The Smart Way
    (常译作《提问的智慧》,网上有多份翻译,这是其中之一)

其他还有

  • Sarah Kathleen Peck, The Art of Asking: Or, How to Ask and Get What You Want | http://medium.com
  • How do I ask a good question? | stackoverflow.com
  • The XY Problem | xyproblem.info(中文介绍和讨论有不少,例如这篇文章)
  • 为什么计算机行业这么注重提问的艺术? | 知乎

以上是一般化的讨论,和 LaTeX 有关的讨论有

  • I've just been asked to write a minimal example, what is that? | TeX-SX
  • What makes a good MWE? | TeX-SX
  • User Henri Menke's about me | TeX-SX

共性特征

关于电脑软件的网络问答,有不少共性特征

  • 问答双方的交流不是即时的,常见于邮件列表和论坛
    这使得每个交流回合耗时增加,对问答双方每次交流提供的信息量和信息完整性提出了要求。
  • 问答双方通常无法当面交换信息
    软件运行出错或不符合预期时,虽然所有的信息都在提问方的电脑里,但仍需人工提取、整理并提供,解答方才能有所了解。这对提问方提出了要求,即要付出提取、整理信息的成本。
  • 问答双方信息不对称
    • 提问方拥有全部原始信息,但可能不了解需要提供哪些信息、如何提取相应信息,也可能错误估计当前问题的困难程度
    • 解答方可能拥有相应的知识和技能,但不了解提问方的「知识基础」,进而影响术语的使用、操作的描述,甚至出现误解
  • 关于电脑软件的一些假设
    • 「控制一些变量、掌握足够信息后,他人也能在自己电脑上让问题稳定可重复地发生」
    • 「一个用户众多的软件,我遇到的问题,别人可能已经遇到过了」

一些(提前说明的)注意

  • 在线交流问题有难度。
    • 当面交流是最好的方式。此时,解答方在获取信息和代为操作方面有较大的自由。
    • 当面交流限制了解答方的范围,在线交流可以让更多人看到提问。
    • 配合视频或语音通话的远程桌面是次好的方式。此时,解答方能控制键盘鼠标输入、能看到屏幕输出,在获取信息和代为操作上也有不少自由。语音通话保证了口头交流的高效。
    • 连线或通话要求双方同时在线,交流成本仍然较高。
    • 更常见的在线交流形式,是远程且双方不同时在线。此时,参与交流的人的范围最广,相对的沟通效率最低,于是对沟通时发送的内容就提出了要求。
  • 交流时,应围绕主题,多用陈述句和疑问句,少用或不用反问句。
    • 新问题应单独提问,不在已解决的无关旧问题下、在文章下以评论形式提问(对既有内容的挑错和改进建议除外)
  • 关于「新手」
    • 在如何提供足量信息方面,「新手」可以获得额外的帮助,这些帮助可能是耐心的术语解释、学习路线推荐和不足信息的追问等,但不可能是「在信息不足的情况下随时优先获得满意回应」。
    • 「新手」角色不是不配合、不学习的挡箭牌,接触两三个月后的用户不应再躲在「新手」温室里,应该把自己划入普通使用者行列。
    • 随着接触时间的增加,使用者应在具体使用和如何提问方面有所成长,对交流过的内容有印象或能主动搜索到,积极减少重复提问。
  • 关于「文档」
    • 当软件提供了用户手册时,用户有责任阅读它。
    • 用户可以因为「询问如何获取文档」、「在文档中搜索过、没搜到」、「阅读中不理解文档的特定段落」而提问,但不能因为纯粹的「知道文档在哪里却不想读」而提问。
    • 如果提问获得的回应是「打开某文档,阅读其中的某具体段落、在文档内搜索某具体关键词」,建议提问方着手试一试。
  • 从提问的角度,具体的问题更容易收获有效回应
    • 遇到问题随时提,别怕发帖多。
    • 不用、也不要积攒一个问题清单然后在一个帖子里集中发问。
    • 有客观答案的问题,和征求意见的问题,应在不同帖子里提问。
  • 从解答的角度,提供具体的操作步骤和修改方法,还是提供一般性原理和稍具抽象的方法论和知识,是一对矛盾。
    • 具体步骤更直接和有效,但如果不理解原理,那么可能反复被相似问题困扰
    • 抽象知识能解决一类问题,但学习需要时间和精力成本、效果不立竿见影
    • 对提问方的提醒是,要有阅读中英文文本的耐心,不能只期望得到「照着操作一步就能完美解决」的回答;对解答方的提醒是,注意提供信息来源、引用时多提及权威参考资料
    • 如果多个解答方的回应出现了冲突,可通过引用资料、进行实验、解释原理等方式讨论得出一致
    • 对长期用户的提醒是,经验不能替代知识,要不时补充知识
  • 总的来说,问答不能替代学习
    • 这里的学习,特指阅读可信的、专门组织起来的资料,例如官方文档、广受好评的书籍和手册
    • 阅读文章也很难替代学习,系列文章稍好。文章在写作时通常会考虑避免受众过窄、聚焦具体问题、对作者自身有价值等。这样,可能产生了太多「介绍(不完整)入门」的文章。
    • 如果长期使用,建议找一两个可信资料,作为遇到问题时首先查阅的「知识库」
  • 除非是付费服务,否则不能要求得到及时的、满意的回应
    • 在基于兴趣的交流平台,提问方的「急」并不总是能提高问题的优先级
    • 意愿和态度有意义,过多的、反应过于激烈的赞扬可能适得其反
  • 付费服务时,「乙方」提供的是非标准化的服务,需要了解几乎全部的信息,才能对可能的工作量有大致的估计。很难像一斤水果多少钱那样提前提供准确报价。

错误示范

无效信息

  • 提问
    • 有人在吗?
    • 在线等
    • 有人用过/研究过 xx 吗?
    • 谁知道 xx 怎么用?
  • 建议
    • 减少对即时交流的依赖
    • 直接描述问题:我在用 xx,我是这么用的,遇到这样的问题……

模糊指代

  • 提问:爱斯维尔模板,插入网址不会自动换行,怎么解决? 这是已引用的包 usepackage{lineno} usepackage{amsmath} usepackage{hyperref}
  • 来源:https://wenda.latexstudio.net/q-1645.html
  • 建议:
    • 「xxx 模板」、「xxx 的回答」的说法不够具体,应提供获取链接。
    • 用到了不能通过发行版安装的、从网上下载或复制的完整文件或大段代码时,应提供文件或代码的获取方式。
    • 越早提供 mwe 越好

未具体化的笼统描述或具体学科术语

  • 提问:如何利用LaTeX绘制句法学中的树状图?
  • 来源:https://www.zhihu.com/question/395401017
  • 建议:
    • 提供具体的描述、形象的例子
    • 「我想在 LaTeX 绘制某类图,它们长这样(截图或链接)」

其他信息

如果感觉信息不足,提问方可能要求提供额外信息,例如软件版本、操作系统等。有些信息可能是 LaTeX 问答中独有的,记录在这里

  • 在完成什么类型的任务
    • 诸如学位论文撰写、论文投稿的任务,在使用有人维护的模板时,从完成任务的角度,部分样式需求可能没有必要。从钻研和进阶使用的角度,当然所有问题都可以讨论。
    • 诸如笔记整理、书籍撰写的任务,作者对样式有完全的控制权。
  • 在使用什么发行版、什么引擎
  • 对 LaTeX 的熟悉程度
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值