% !TeX root = ../exam-zh-doc.tex

\section{提问的智慧}

在使用 \LaTeX{} 的过程中，难免会遇到各种各样的问题，那么如何解决这些问题？很关键的一点是学会提问。以下内容选自 \href{https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md}{《提问的智慧》（简体中文版）}（也非常推荐用户阅读全文，此文不仅仅只对 \LaTeX{} 的使用有帮助，“提问的智慧”可用于方方面面）并结合 \LaTeX{} 做了相应的调整。


\subsection{为什么要学会提问}

在黑客的世界里，当您拋出一个技术问题时，最终是否能得到有用的回答，往往取决于您所提问和追问的方式。

现在开源（Open Source）软件已经相当盛行，您通常可以从其他更有经验的用户那里获得与黑客一样好的答案，这是件好事；和黑客相比，用户们往往对那些新手常遇到的问题更宽容一些。尽管如此，以我们在此推荐的方式对待这些有经验的用户通常也是从他们那里获得有用答案的最有效方式。

首先您应该明白，黑客们喜爱有挑战性的问题，或者能激发他们思维的好问题。如果我们并非如此，那我们也不会成为您想询问的对象。如果您给了我们一个值得反复咀嚼玩味的好问题，我们自会对您感激不尽。好问题是激励，是厚礼。好问题可以提高我们的理解力，而且通常会暴露我们以前从没意识到或者思考过的问题。对黑客而言，“好问题！” 是诚挚的大力称赞。

尽管如此，黑客们有着蔑视或傲慢面对简单问题的坏名声，这有时让我们看起来对新手、无知者似乎较有敌意，但其实不是那样的。

我们不讳言我们对那些不愿思考、或者在发问前不做他们该做的事的人的蔑视。那些人是时间杀手 —— 他们只想索取，从不付出，消耗我们可用在更有趣的问题或更值得回答的人身上的时间。我们称这样的人为 失败者（撸瑟） （由于历史原因，我们有时把它拼作 lusers）。

我们意识到许多人只是想使用我们写的软件，他们对学习技术细节没有兴趣。对大多数人而言，电脑只是种工具，是种达到目的的手段而已。他们有自己的生活并且有更要紧的事要做。我们了解这点，也从不指望每个人都对这些让我们着迷的技术问题感兴趣。尽管如此，我们回答问题的风格是指向那些真正对此有兴趣并愿意主动参与解决问题的人，这一点不会变，也不该变。如果连这都变了，我们就是在降低做自己最擅长的事情上的效率。

我们（在很大程度上）是自愿的，从繁忙的生活中抽出时间来解答疑惑，而且时常被提问淹没。所以我们无情地滤掉一些话题，特别是拋弃那些看起来像失败者的家伙，以便更高效地利用时间来回答赢家（winner）的问题。

如果您厌恶我们的态度，高高在上，或过于傲慢，不妨也设身处地想想。我们并没有要求您向我们屈服 —— 事实上，我们大多数人非常乐意与您平等地交流，只要您付出小小努力来满足基本要求，我们就会欢迎您加入我们的文化。但让我们帮助那些不愿意帮助自己的人是没有效率的。无知没有关系，但装白痴就是不行。

所以，您不必在技术上很在行才能吸引我们的注意，但您必须表现出能引导您变得在行的特质 —— 机敏、有想法、善于观察、乐于主动参与解决问题。如果您做不到这些使您与众不同的事情，我们建议您花点钱找家商业公司签个技术支持服务合同，而不是要求黑客个人无偿地帮助您。

如果您决定向我们求助，当然您也不希望被视为失败者，更不愿成为失败者中的一员。能立刻得到快速并有效答案的最好方法，就是像赢家那样提问 —— 聪明、自信、有解决问题的思路，只是偶尔在特定的问题上需要获得一点帮助。

总结来说，为了节约双方的时间，并能够高效地解决您的问题，您需要\emph{学会提问}。


\subsection{在提问之前}

在您提问之前，请先做到以下的事情：
\begin{enumerate}
  \item 仔细完整地阅读过 \file{exam-zh-doc.pdf} （即现在的这个文档）
  \item 完整读过 \href{https://ctan.math.illinois.edu/info/lshort/chinese/lshort-zh-cn.pdf}{lshort-zh-cn}，并且在其中进行过相关的查询
  \item 尝试在 \cls{exam-zh} 项目主页的 Wiki （\href{https://gitee.com/xkwxdyy/exam-zh/wikis/Home}{gitee Wiki} 或 \href{https://github.com/xkwxdyy/exam-zh/wikis/Home}{github Wiki} ）中找到答案
  \item 尝试在 \cls{exam-zh} 项目主页的 issues （\href{https://gitee.com/xkwxdyy/exam-zh/issues}{gitee issues} 或 \href{https://github.com/xkwxdyy/exam-zh/issues}{github issues} ）中找到答案（可以点击“已完成”来查看以往的问题和回答）
  \item 如果是某个命令或环境出问题了，自己检查是否按照规范正确使用该命令或环境，是否少写或多写了括号等等；如果是某宏包的命令或环境，是否通过 \cmd{texdoc} \meta{宏包名} 查看宏包手册来查询命令或环境的具体使用方式
  \item 是否去搜索引擎搜索过相应的问题。推荐 \LaTeX{} 的 Stack Exchange 社区网站 \href{https://tex.stackexchange.com/}{LaTeX Stack Exchange}。
\end{enumerate}


\subsection{在哪里提问以及如何提问}

如果上述问题自查并没有解决您的问题，那么您可以进行相应的提问了。

首先推荐在 \cls{exam-zh} 项目的 issues （\href{https://gitee.com/xkwxdyy/exam-zh/issues}{gitee issues} 或 \href{https://github.com/xkwxdyy/exam-zh/issues}{github issues} ）中新建 issue 进行提问：
  \begin{enumerate}
    \item 使用有意义且描述明确的标题。标题简明扼要地概括出问题。一个好标题范例是\emph{目标 —— 差异}式的描述，许多技术支持组织就是这样做的。在\emph{目标}部分指出是哪一个或哪一组东西有问题，在\emph{差异}部分则描述与期望的行为不一致的地方。比如
      \begin{latexcode}[gobble = 8]
        在v0.2.3版本的 exam-zh 模板的正文使用了 $f(x) > 1, 当且仅当 x > 0$ 但是却没有显示中文
      \end{latexcode}
    要比“我公式里怎么没有显示中文啊”的标题要好得多。
    
    编写\emph{目标 —— 差异} 式描述的过程有助于您组织对问题的细致思考。是什么被影响了，只有这个中文还是还有其它部分不能显示？只有版本 0.2.3 无法显示还是以前显示正常但是更新了新版本的模板后显示出问题？是只有我这边出问题了还是我的朋友同学都有这个问题？
    \item 精确地描述问题并言之有物。
      \begin{itemize}
        \item 仔细、清楚地描述您的问题或 bug 的症状。
        \item 描述问题发生的环境。操作系统，模板的版本，以及在问题出现前是进行了什么操作？比如
          \begin{latexcode}[gobble = 12]
            在输入某代码前还是正常的，但是输入某代码后就编译出错
          \end{latexcode}
        \item 描述在提问前您是怎样去研究和理解这个问题的。您觉得问题出在哪里？您做了什么措施去解决这个问题？
        \item 描述最近做过什么可能相关的硬件或软件变更。有没有换了电脑或更换了编译器
        \item 尽可能地提供一个可以重现这个问题的方法。比如自己检查出某行代码就是问题所在，那么至少提供此行代码让别人能够复现这个问题，从而更好地帮助解决。
      \end{itemize}
  \end{enumerate}

其次就是在模板的 QQ 群里提问（本文档封面脚注提供了群号）。但也确保您先进行了自查。具体的细节也和上面在 issue 里提问类似。下面提供几个提问示例：

\begin{latexcode}
  % 编译出错类型问题
  安装的 LaTeX 发行版：TeXLive2024
  电脑型号：macOS
  模板版本：v0.2.3
  问题描述：
    我打算输入一个数学公式，我输入下面这行代码前一些编译都是正常的：
      那么我们就得到了 x = \frac{1}{2}
  报错信息是：
    Missing $ inserted.
    <inserted text>
  可以复现问题的代码：
    \documentclass{exam-zh}

    \begin{document}

    那么我们就得到了 x = \frac{1}{2}

    \end{document}
  目的：希望能显示二分之一这个分数
  想法：我已通过手册中所说的方式进行了自查，但仍然没能解决问题，报错说少了一个 $ ，我觉得可能我没有正确地输入这个数学公式。
\end{latexcode}

\begin{latexcode}
  % 不知道如何实现某效果
  安装的 LaTeX 发行版：TeXLive2024
  电脑型号：macOS
  模板版本：v0.2.3
  问题描述：
    - 我打算输入一个数学公式，并且在其中输入中文
    - 我输入下面这行代码
      $f(x) > 1, 当且仅当 x > 1$
      但是里面并没有显示出“当且仅当”四个字
  可以复现问题的代码：
    \documentclass{exam-zh}

    \begin{document}

    $f(x) > 1, 当且仅当 x > 1$

    \end{document}
  目的：我希望能够显示出“当且仅当”四个字
  想法：我已通过手册中所说的方式进行了自查，但仍然没能解决问题，我觉得缺少某个命令来输出这个公式中的中文，但我不知道是什么
\end{latexcode}

\begin{latexcode}
  % 格式更改需求
  安装的 LaTeX 发行版：TeXLive2024
  电脑型号：macOS
  模板版本：v0.2.3
  格式现状描述：
    solution 环境的“解答”有缩进
  格式需求：
    希望可以增加键值控制这个缩进的有无。
  可以复现问题的代码：
    \documentclass{exam-zh}
    
    \examsetup{
      solution/show-solution = show-stay
    }
    \begin{document}

    \begin{question}
      测试
    \end{question}

    \begin{solution}
      测试
    \end{solution}

    \end{document}
  想法：我已通过手册中所说的方式进行了自查，但仍然不知道如何调整这个距离，希望能够编写一个键值来控制这段距离
\end{latexcode}

将三个例子概括出模板：

\begin{latexcode}
  % 编译出错类型问题
  安装的 LaTeX 发行版：
  电脑型号：
  模板版本：v
  问题描述：
  报错信息是：
  可以复现问题的代码：
  目的：
  自己的想法：
\end{latexcode}

\begin{latexcode}
  % 不知道如何实现某效果
  安装的 LaTeX 发行版：
  电脑型号：
  模板版本：v
  问题描述：
  可以复现问题的代码：
  目的：
  想法：
\end{latexcode}

\begin{latexcode}
  % 格式更改需求
  安装的 LaTeX 发行版：
  电脑型号：
  模板版本：v
  格式现状描述：
  格式需求：
  可以复现问题的代码：
  想法：
\end{latexcode}

对于“不知道如何实现某效果”和“格式更改需求”，如果用户无法通过文字准确描述的话，请用纸笔将想要的效果画出来并提供越详细越好的说明。

无论是哪种情况，也可以顺便提供电脑的相应报错\emph{截图}，但\textcolor{red}{\emph{请不要用手机对电脑拍照}}。