convert into scis template
This commit is contained in:
parent
e27d4f891f
commit
ada5b6fcf5
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"ltex.disabledRules": {
|
||||
"en-US": [
|
||||
"ENGLISH_WORD_REPEAT_RULE"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
\section{Background}
|
||||
\section{Background and related work}
|
||||
|
||||
\subsection{Community profile documentation}
|
||||
\begin{itemize}
|
||||
\item \textit{INTRODUCTION.} TODO
|
||||
\item \textit{LICENSE.} TODO
|
||||
|
|
@ -7,4 +8,9 @@
|
|||
\item \textit{CONTRIBUTING.} TODO
|
||||
\item \textit{CODE\_OF\_CONDUCT.} TODO
|
||||
\item \textit{TEMPLATE.} TODO
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\subsection{****}
|
||||
|
||||
\subsection{****}
|
||||
166
3_method.tex
166
3_method.tex
|
|
@ -1,162 +1,28 @@
|
|||
\section{Research Design}
|
||||
|
||||
% 结构参考 cross-project bugs
|
||||
|
||||
\subsection{Studied repositories}
|
||||
In this study,
|
||||
we would like to focus on the highly attractive repositories which are more likely to be the product of crowd collaboration.
|
||||
Therefore,
|
||||
we limit the dataset used in this paper to include
|
||||
repositories that have the most forks.
|
||||
Specifically,
|
||||
we use the APIs~\footnote{\url{*****}} provided by GitHub.
|
||||
|
||||
Firstly,
|
||||
we use the API \texttt{/search/repositories}
|
||||
with the qualifier
|
||||
\texttt{q=forks:>=1000}
|
||||
to retrieve repositories that have more than 1,000 forks.
|
||||
Besides,
|
||||
the returned results only include non-fork repositories in default.
|
||||
|
||||
Secondly,
|
||||
|
||||
|
||||
In total,
|
||||
we have collected 2,953 public non-fork repositories.
|
||||
|
||||
|
||||
|
||||
\begin{itemize}
|
||||
\item search api - get repo list
|
||||
\item repo-info api - get repo information
|
||||
\end{itemize}
|
||||
|
||||
|
||||
statistics in terms of fork, star, language,
|
||||
|
||||
% ref: Understanding the Factors that Impact the Popularity of GitHub Repositoriesr
|
||||
% 对所有项目的fork做个统计
|
||||
|
||||
% 项目的获取,是通过github提供的search api获取的
|
||||
|
||||
% 贡献者数量
|
||||
% https://api.github.com/repos/%s/%s/contributors
|
||||
% repo基本信息
|
||||
% "https://api.github.com/repos/%s/%s"
|
||||
%
|
||||
|
||||
\subsection{Identifying community documentations}
|
||||
|
||||
explanation of the detection of each kind of documentations
|
||||
% Step1. list all the files in root directory
|
||||
% Step2. detect the each kind of docs using keywords
|
||||
\begin{itemize}
|
||||
\item file api - get the latest snapshot of root directory
|
||||
\item determine each kind of documentation
|
||||
\end{itemize}
|
||||
|
||||
\begin{table}[h]
|
||||
\centering
|
||||
\caption{The most frequent keywords contained in evolvement messages}
|
||||
\begin{tabular}{r|p{7cm}}
|
||||
\bottomrule
|
||||
\textbf{Type} &\textbf{keywords}\\ \hline
|
||||
\textbf{LIC} & \texttt{\footnotesize LICENSE, COPYING, COPYRIGHT, LICENCE}\\
|
||||
\textbf{COD} & \texttt{\footnotesize CODE\_OF\_CONDUCT, CODEOFCONDUCT, CODECONVENTION, CODINGCONVENTION}\\
|
||||
\textbf{CON} & \texttt{\footnotesize CONTRIBUTING, CONTRIBUTE}\\
|
||||
\textbf{TMP} & \texttt{\footnotesize ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, COMMIT\_TEMPLATE}\\
|
||||
|
||||
\toprule
|
||||
\specialrule{0em}{0em}{0pt}
|
||||
\multicolumn{2}{l}{\scriptsize
|
||||
\tabincell{l}{
|
||||
\textit{\textbf{Abbreviations:}}\\
|
||||
\textit{\textbf{\tiny
|
||||
LIC: LICENSE, COD: COD\_OF\_CONDUCT, CON: CONTRIBUTING, TMP: TEMPLATE}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
\end{tabular}
|
||||
\label{tab:kw}
|
||||
\end{table}
|
||||
|
||||
|
||||
|
||||
\subsection{Research questions}
|
||||
|
||||
|
||||
\textbf{RQ1. What is the popularity of of community documentations}
|
||||
% 数据统计
|
||||
% 总的统计,按照语言、owner类型、项目年龄
|
||||
% 调查问卷,
|
||||
% 贡献者
|
||||
% 有没有想找某种文档却没有找到的经历?那种文档没有找到?
|
||||
% 都去那里找过?根目录?子目录?项目主页?
|
||||
% 管理者
|
||||
% 你的项目是否设置了cd?那种cd?
|
||||
\noindent\textbf{RQ1. Documentation popularity.} What is the frequency/popularity of community profile documentation?
|
||||
|
||||
\textbf{RQ2. What is the importance and outcome of community documentations}
|
||||
% 数据统计
|
||||
% 关联统计:start数、贡献者数、fork数(分三组,火的项目,不火的项目,随机的项目)
|
||||
% 调查问卷
|
||||
% 贡献者
|
||||
% cd是不是重要?、 哪一种文档更重要?(重要度 给出一个值)、
|
||||
% 都去那里找过?根目录?子目录?项目主页?
|
||||
% 有没有因为CON文档的缺失,让你无法知道如何贡献,最终无法贡献,或者贡献流程不对?
|
||||
% 有没有因为CON或者COD文档的缺失,让你提交的贡献被审阅者说你不符合规范?
|
||||
% 有没有文档里没提,但是缺让你遵守的呢?
|
||||
% 管理者
|
||||
% cd是不是重要?、哪一种文档更重要?(重要度 给出一个值)
|
||||
% 有没有哪种文档你已经设置了,但是没人遵守?
|
||||
xxx
|
||||
|
||||
\textbf{RQ3. What is the content of community documentations}
|
||||
% 调查问卷
|
||||
% 贡献者
|
||||
% 浏览体验如何?
|
||||
% 是否找到了你想要的内容
|
||||
% 你觉得还应该包含哪些内容?
|
||||
% 管理者
|
||||
% 你觉得还应该包含哪些内容?
|
||||
%
|
||||
\noindent\textbf{RQ2. Documentation content.} xxxx?
|
||||
|
||||
\textbf{RQ4. What is the involvement of documentation}
|
||||
% 数据统计
|
||||
% 创建时间、更新频率、维护团队、演化信号
|
||||
% 调查问卷
|
||||
% 贡献者
|
||||
% 你是否经历过outdated的documentation
|
||||
% 你是否提交过针对cd的pr或者issue
|
||||
% % 对于贡献者,每一种文档中都应该包含哪些内容?纯文本是否影响体验?是否需要markdown?是否需要图表?
|
||||
% 管理者
|
||||
% 你觉得哪些文档是在初期就该具备的,哪些是项目发展后面才具备的?
|
||||
% 你们平时注重对cd的更新吗?都设么时候更新?
|
||||
%
|
||||
xxx
|
||||
|
||||
\noindent\textbf{RQ3. Documentation organization.} xxx?
|
||||
|
||||
xxx
|
||||
|
||||
\noindent\textbf{RQ4. Documentation maintenance.} xxx?
|
||||
|
||||
xxx
|
||||
|
||||
\subsection{Dataset}
|
||||
|
||||
|
||||
|
||||
% \textbf{RQ*:
|
||||
% What is effect of community documentations?
|
||||
% }
|
||||
% % doc在attractuser方面的作用,
|
||||
% % 看某一个个文件的创建前后对user、commit等的影响。
|
||||
\subsubsection{Studied repositories}
|
||||
|
||||
|
||||
\subsection{Research method}
|
||||
|
||||
\textit{1) Quantitative analysis}
|
||||
|
||||
\textit{2) Online survey}
|
||||
% 分为两类,一份贡献者,一份管理者
|
||||
% 问题设置,预定义选项+开放回答
|
||||
|
||||
\textbf{Target participants.}
|
||||
% 怎么选取参与者,也就是谁是管理者,谁是贡献者
|
||||
|
||||
|
||||
\textbf{Survey respondents.}
|
||||
% 发出情况,回复情况
|
||||
|
||||
|
||||
% 最后给出调查问卷的链接
|
||||
\subsubsection{Identification of documentation}
|
||||
167
4_1.tex
167
4_1.tex
|
|
@ -1,162 +1,67 @@
|
|||
\section{The popularity of community documentations}
|
||||
\subsection{RQ1: Documentation Popularity}
|
||||
|
||||
\subsection{Results from quantitative analysis}
|
||||
|
||||
\textit{1) Overall popularity}
|
||||
|
||||
conduct a preliminary study to show the
|
||||
overview of the popularity of each kind fo documentation
|
||||
|
||||
Documentation distribution
|
||||
|
||||
definition of \textit{including repositories} and \textit{no-including repositories}
|
||||
|
||||
Table~\ref{tab:doc_dist} reports the documentations distribution by listing the proportion of including repositories for each kind of documentations.
|
||||
% 各类文档的持有比例
|
||||
% 项目创建后间隔多长时间才创建的该文件
|
||||
% 各类文档组合持有的比例
|
||||
% 分析为啥没有某个文档
|
||||
% 统计一下,每一种元素都有的项目有多少,有哪些?
|
||||
\subsubsection{Overview popularity}
|
||||
|
||||
\begin{table}[h]
|
||||
\centering
|
||||
\caption{The proportion of including repositories for each kind of documentation}
|
||||
\begin{tabular}{@{}r | c c c c c@{}}
|
||||
\caption{Overall percentage of repositories including each type of documentation}
|
||||
\begin{tabular}{r c c c ccc}
|
||||
\bottomrule
|
||||
& \textbf{\DES}& \textbf{\LIC} & \textbf{\RDM} &\textbf{\COD} &\textbf{\CON} \\ \hline
|
||||
\textbf{Repositories} &2,675& 2,309 & 2,925 & 297 & 1142 \\
|
||||
\textbf{Percentage} &90.6\%& 78.2\% & 99.1\% & 10.1\% & 38.7\%\\
|
||||
\textbf{Type} &\texttt{Description} &\texttt{Readme} & \texttt{License} &\texttt{Contributing} & \texttt{Code-of-Conduct} & \texttt{Template}\\
|
||||
\midrule
|
||||
\textbf{Percentage} & 100\% & 99.25\%& 82.05\%& 28.7\%& 11.15\%& 24.70\%\\
|
||||
|
||||
\toprule
|
||||
\specialrule{0em}{0em}{0pt}
|
||||
\multicolumn{6}{l}{\scriptsize
|
||||
\tabincell{l}{
|
||||
\textit{\textbf{Abbreviations:}}\\
|
||||
\textit{\textbf{\tiny
|
||||
DES: DESCRIPTION, LIC: LICENSE, RDM: README, COD: COD\_OF\_CONDUCT, CON: CONTRIBUTING}
|
||||
}
|
||||
}
|
||||
}
|
||||
\end{tabular}
|
||||
\label{tab:doc_dist}
|
||||
\label{tab:Overview}
|
||||
\end{table}
|
||||
elaboration of table~\ref{tab:doc_dist}
|
||||
|
||||
more talk about repos with zero or all docs.
|
||||
|
||||
|
||||
\textit{2) Comparative popularity}
|
||||
% 这里的结论主要是:不同**的项目的文档的分布是由差异的
|
||||
% 比如*语言的开发者就比较爱写文档,而*语言的开发者就不怎么爱写文档
|
||||
% 参考【Understanding the Factors that Impact the Popularity of GitHub Repositories】对每个指标的判定语句
|
||||
|
||||
\vspace{0.5em}
|
||||
\noindent \textbf{Programming language}
|
||||
|
||||
correlation between docs and languages
|
||||
|
||||
\subsubsection{Popularity by programing language}
|
||||
|
||||
\begin{table}[h]
|
||||
\centering
|
||||
\caption{Comparison results in terms of programming language}
|
||||
\begin{tabular}{@{}r | c c c c c@{}}
|
||||
\caption{Percentage of repositories including each type of documentation regarding different programming language}
|
||||
\begin{tabular}{r c c c c cc}
|
||||
\bottomrule
|
||||
& \textbf{\DES}& \textbf{\LIC} & \textbf{\RDM} &\textbf{\COD} &\textbf{\CON} \\ \hline
|
||||
\textbf{JavaScript} & 92.9\% & 84.3\% & 98.8\% & 14.0\% & 45.4\%\\
|
||||
\textbf{Java} & 96.0\% & 78.4\% & 98.6\% & 4.2\% & 25.6\%\\
|
||||
\textbf{Python} & 97.8\% & 79.8\% & 99.6\% & 9.0\% & 33.6\%\\
|
||||
\textbf{Ruby} & 39.7\% & 82.6\% & 99.1\% & 10.5\% & 74.0\%\\
|
||||
\textbf{C++} & 96.9\% & 92.9\% & 98.4\% & 18.1\% & 49.6\%\\
|
||||
\textbf{C} & 97.0\% & 85.1\% & 98.0\% & 7.9\% & 30.7\%\\
|
||||
\textbf{PHP} & 97.8\% & 83.9\% & 100.0\% & 19.4\% & 38.7\%\\
|
||||
\textbf{Objective-C} & 96.2\% & 85.0\% & 98.8\% & 2.5\% & 18.8\%\\
|
||||
\textbf{Go} & 100.0\% & 97.4\% & 100.0\% & 10.5\% & 60.5\%\\
|
||||
\textbf{C\#} & 94.6\% & 94.6\% & 98.2\% & 17.9\% & 46.4\%\\
|
||||
\textbf{Language} & \textbf{Repositories} &\texttt{Readme} & \texttt{License} &\texttt{Contributing} & \texttt{Code-of-Conduct} & \texttt{Template}\\
|
||||
\midrule
|
||||
JavaScript &386 &99.74\%& 86.53\%& 30.31\%& 13.73\%& 22.28\%\\
|
||||
Python &285 &100.00\%& 84.56\%& 26.67\%& 8.07\%& 26.32\%\\
|
||||
Java &179 &99.44\%& 79.89\%& 25.14\%& 14.53\%& 27.93\%\\∂
|
||||
C++ &116 &100.00\%& 76.72\%& 23.28\%& 6.90\%& 25.86\%\\
|
||||
Go &116 &100.00\%& 95.69\%& 43.10\%& 12.07\%& 32.76\%\\
|
||||
PHP &111 &97.30\%& 82.88\%& 36.94\%& 6.31\%& 28.83\%\\
|
||||
TypeScript &88 &100.00\%& 89.77\%& 56.82\%& 18.18\%& 45.45\%\\
|
||||
C &83 &100.00\%& 62.65\%& 24.10\%& 9.64\%& 20.48\%\\
|
||||
Ruby &79 &100.00\%& 83.54\%& 26.58\%& 8.86\%& 17.72\%\\
|
||||
C\# &71 &100.00\%& 98.59\%& 28.17\%& 12.68\%& 25.35\%\\
|
||||
\toprule
|
||||
\specialrule{0em}{0.2em}{0pt}
|
||||
\multicolumn{5}{l}{\scriptsize
|
||||
\tabincell{l}{
|
||||
\textit{\textbf{The number of repositories of each programming language}:} \\
|
||||
\textit{
|
||||
JavaScript: 680, Java: 425, Python: 277, Ruby: 219, C++: 127, C: 101}\\
|
||||
\textit{
|
||||
PHP: 93,Objective-C: 80, Go: 76, C\#: 56}
|
||||
}
|
||||
}
|
||||
\end{tabular}
|
||||
\label{tab:cmpLG}
|
||||
\end{table}
|
||||
|
||||
|
||||
|
||||
\vspace{0.5em}
|
||||
\noindent \textbf{Owner role}
|
||||
|
||||
correlation between docs and owner roles[organization or user]
|
||||
% \subsubsection{Popularity by user role}
|
||||
|
||||
% | OwerType | Count | readme | license| contributing | COC|template |
|
||||
% |:-|:-|:-|:-|:-|:-|:-|:-|
|
||||
% |User|1033|98.94%|76.86%|13.36%|5.61%|13.75%|
|
||||
% |Organization|967|99.59%|87.59%|45.09%|17.06%|36.40%|
|
||||
|
||||
|
||||
\begin{table}[h]
|
||||
\centering
|
||||
\caption{Comparison results in terms of owner role}
|
||||
\begin{tabular}{@{}r | c c c c c@{}}
|
||||
\bottomrule
|
||||
& \textbf{\DES}& \textbf{\LIC} & \textbf{\RDM} &\textbf{\COD} &\textbf{\CON} \\ \hline
|
||||
\textbf{Organization} & 86.3\% & 85.8\% & 99.1\% & 14.4\% & 51.0\%\\
|
||||
\textbf{User} & 97.1\% & 66.7\% & 99.0\% & 3.5\% & 20.1\%\\
|
||||
\toprule
|
||||
\specialrule{0em}{0.2em}{0pt}
|
||||
\multicolumn{6}{l}{\scriptsize
|
||||
\tabincell{l}{
|
||||
\textit{\textbf{The number of repositories of owner type}:} \\
|
||||
\textit{Organization: 1,776, User: 1,177}
|
||||
}
|
||||
}
|
||||
\end{tabular}
|
||||
\label{tab:cmpOR}
|
||||
\end{table}
|
||||
% \subsubsection{Popularity by age}
|
||||
|
||||
% <img src="resources/repo_age.png" width="400" align="bottom" />
|
||||
|
||||
|
||||
% \subsubsection{Popularity by forks}
|
||||
|
||||
\vspace{0.5em}
|
||||
\noindent \textbf{Repository age}
|
||||
% 可以用散点图表示,横坐标轴表示age,纵坐标只取值两个0/1,表示是否包含该文档
|
||||
correlation between docs and repo-age
|
||||
% <img src="resources/repo_fork.png" width="400" align="bottom" />
|
||||
|
||||
% 以下几个RQ,除了看overview,还看那些 fork比较多的前100 successful 的项目的统计,算是提供practice。
|
||||
|
||||
\vspace{0.5em}
|
||||
\noindent \textbf{Repository purpose}
|
||||
% refs: Understanding the Factors that Impact the Popularity of GitHub Repositories
|
||||
% 这篇文章中介绍了几个分类,我们可以提出一个层次化的。比如两层的
|
||||
% 软件项目:类似于那个软件
|
||||
% 非软件项目:文档翻译、数据集分享、教程、资源列表
|
||||
|
||||
correlation between docs and repo-type(software project, datasharing,...)
|
||||
|
||||
|
||||
|
||||
\begin{table}[h]
|
||||
\centering
|
||||
\caption{Comparison results in terms of repository purpose}
|
||||
\begin{tabular}{@{}r | c c c c c@{}}
|
||||
\bottomrule
|
||||
& \textbf{\DES}& \textbf{\LIC} & \textbf{\RDM} &\textbf{\COD} &\textbf{\CON} \\ \hline
|
||||
|
||||
\tabincell{r}{\textbf{Software}\vspace{-0.4em}\\\textbf{development}} & 90.6\%& 78.2\% & 99.1\% & 10.0\% & 38.7\%\\
|
||||
\tabincell{c}{\textbf{Dataset}\vspace{-0.4em}\\\textbf{sharing}} & 90.6\%& 78.2\% & 99.1\% & 10.0\% & 38.7\%\\
|
||||
\tabincell{c}{\textbf{******}} & 90.6\%& 78.2\% & 99.1\% & 10.0\% & 38.7\%\\
|
||||
|
||||
\toprule
|
||||
|
||||
\specialrule{0em}{0.2em}{0pt}
|
||||
\multicolumn{6}{l}{\scriptsize
|
||||
\tabincell{l}{
|
||||
\textit{\textbf{The number of repositories of owner type}:} \\
|
||||
\textit{Organization: 1,776, User: 1,177}
|
||||
}
|
||||
}
|
||||
|
||||
\end{tabular}
|
||||
\label{tab:cmpRP}
|
||||
\end{table}
|
||||
|
||||
|
||||
\subsection{Results from survey}
|
||||
|
|
|
|||
37
4_2.tex
37
4_2.tex
|
|
@ -1,36 +1 @@
|
|||
\section{The importance of community documentations}
|
||||
|
||||
\subsection{Results from quantitative analysis}
|
||||
|
||||
\vspace{0.5em}
|
||||
\noindent \textbf{Popularity features}
|
||||
|
||||
correlation between docs and contributor
|
||||
% 如果有哪个指标对比不明显,就说明文档对这个指标的影响不明显
|
||||
% 目前来看,文档会贡献者数量(也就是要有commit)有较强关联;而文档和开发者的fork以及star关联关系则不是太强。
|
||||
% 而fork和star仅仅是简单的点一个按钮,但commit是需要付出较大精力的。
|
||||
% 由此可见文档对于开发者的贡献融入还是有挺大影响的
|
||||
|
||||
\begin{figure*}[h]
|
||||
\centering
|
||||
\includegraphics[width=18cm]{resources/num_comp.png}
|
||||
\caption{Comparison results in terms of popularity features (i.e., contributors, forks, stars)}
|
||||
\label{fig:cmpPF}
|
||||
\end{figure*}
|
||||
% 再加一个表列出假设检验
|
||||
|
||||
\begin{table*}[h]
|
||||
\centering
|
||||
\caption{Mann-Whitney test between including and non-including repositories}
|
||||
\begin{tabular}{@{}r | c c c c c@{}}
|
||||
\bottomrule
|
||||
& \textbf{\DES}& \textbf{\LIC} & \textbf{\RDM} &\textbf{\COD} &\textbf{\CON} \\ \hline
|
||||
\textbf{Contributor} & 0.0757(0.001) & 0.0757(0.001) & 0.0757(0.001)& 0.0757(0.001) & 0.0757(0.001)\\
|
||||
\textbf{Fork} & 0.0757(0.001) & 0.0757(0.001) & 0.0757(0.001) & 0.0757(0.001) & 0.0757(0.001)\\
|
||||
\textbf{Star} & 0.0757(0.001) & 0.0757(0.001) & 0.0757(0.001) & 0.0757(0.001) & 0.0757(0.001)\\
|
||||
\toprule
|
||||
\end{tabular}
|
||||
\label{tab:cmpLG}
|
||||
\end{table*}
|
||||
|
||||
\subsection{Results from survey}
|
||||
\subsection{RQ2. Documentation content}
|
||||
|
|
|
|||
66
4_3.tex
66
4_3.tex
|
|
@ -1,65 +1 @@
|
|||
\section{the content of community documentations}
|
||||
|
||||
|
||||
\subsection{Results from quantitative analysis}
|
||||
|
||||
|
||||
|
||||
\textit{1) Documentation length}
|
||||
|
||||
length of characters
|
||||
|
||||
number of paragraphs
|
||||
|
||||
|
||||
\textit{2) Documentation structure}
|
||||
|
||||
% 段落层次结构,比如,层级越多,说明文档分级越细致
|
||||
|
||||
|
||||
|
||||
\textit{3) Element diversity}
|
||||
% lic 通常都是纯文本申明,des通常是简短的文本。
|
||||
% 而readme,cod,con所涵盖的内容要更丰富一些,
|
||||
% 利用更多的内容表现形式,如图表、链接、emoji等可以更加有效地传递信息
|
||||
% 因此我们看一下RDM,COD,CON这三个文件的内容元素的多样性如何
|
||||
|
||||
|
||||
other type of content except for text
|
||||
|
||||
figure
|
||||
|
||||
hyper link (github or homepage)
|
||||
|
||||
emoji
|
||||
|
||||
table
|
||||
|
||||
code
|
||||
|
||||
\begin{figure*}[h]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{resources/diversity.png}
|
||||
\caption{Documentation diversity}
|
||||
\label{fig:docDivs}
|
||||
\end{figure*}
|
||||
|
||||
\textit{4) Documentation content}
|
||||
|
||||
license: mit, apache, gpl, etc.
|
||||
% github原本用的是已有的ruby库识别的结果,不过其有些是识别不出来的(other),
|
||||
% 1. 例如使用了双许可证的
|
||||
% 一种是在license文件里声明了 repo-1755
|
||||
% 另一种是由两个license文件。
|
||||
% 2. 文件名字不符合规范等
|
||||
|
||||
readme: what, why, how, who, when
|
||||
|
||||
contributing:
|
||||
|
||||
code\_of\_conduct:
|
||||
|
||||
|
||||
\subsection{Results from survey}
|
||||
|
||||
|
||||
\subsection{RQ3: Documentation Organization}
|
||||
|
|
|
|||
83
4_4.tex
83
4_4.tex
|
|
@ -1,82 +1 @@
|
|||
% refs:
|
||||
% 1. Co-evolution of project documentation and popularity within GitHub
|
||||
|
||||
\section{the evolvement of community documentations}
|
||||
|
||||
|
||||
\subsection{Results from quantitative analysis}
|
||||
|
||||
\textit{1) documentation creation}
|
||||
|
||||
how long does it take to create a specific documentation after the repository is created.
|
||||
|
||||
|
||||
% 有些识别出多个同类型的文件,这种情况,我们以文件名字较短的那个为准,
|
||||
% 因为一般来说,文件名字较长的是特殊情况,而较短的往往是本源文件
|
||||
% 如多语种的readme,不同类型的license。
|
||||
|
||||
|
||||
% # repo创建前已就已经有了文档,是存在的,08年之前就在开发,只是后来有了github才把代码托管到github上
|
||||
% 这种情况,我们按照延迟为0来对待
|
||||
|
||||
\begin{figure}[h]
|
||||
\centering
|
||||
\includegraphics[width=0.5\textwidth]{resources/creation.png}
|
||||
\caption{The creation latency of documentations (in days)}
|
||||
\label{fig:docDelay}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\textit{2) documentation evolvement}
|
||||
|
||||
|
||||
\noindent \textbf{Evolvement frequency}
|
||||
|
||||
\begin{table*}[h]
|
||||
\centering
|
||||
\caption{Overview of documentation evolvement frequency}
|
||||
\begin{tabular}{r|c c c c c c c c c}
|
||||
\bottomrule
|
||||
&\textbf{Min} &\textbf{25 \%} &\textbf{Median} &\textbf{Mean} &\textbf{75 \%} &\textbf{Max} &\textbf{St.} &\textbf{Dev.} &\textbf{Histogram}\\ \hline
|
||||
\textbf{\LIC} & 2 & 2 & 2 & 2 & 2& 2& 2 & 2 & 2\\
|
||||
\textbf{\RDM} & 2 & 2 & 2 & 2 & 2& 2& 2 & 2 & 2\\
|
||||
\textbf{\COD} & 2 & 2 & 2 & 2 & 2& 2& 2 & 2 & 2\\
|
||||
\textbf{\CON} & 2 & 2 & 2 & 2 & 2& 2& 2 & 2 & 2\\
|
||||
\toprule
|
||||
\end{tabular}
|
||||
\label{tab:alter_frq}
|
||||
\end{table*}
|
||||
|
||||
|
||||
\noindent \textbf{Maintenance group}
|
||||
% 通常都是由哪些人来负责维护这些文档
|
||||
|
||||
\noindent \textbf{Evolvement signal}
|
||||
|
||||
% 分析 commit message
|
||||
% 分词、去停用词(通用的以及自己扩充的),词干,统计词频
|
||||
|
||||
% 通过文本分析来看看都什么时候才会发生evolvement
|
||||
|
||||
|
||||
|
||||
\begin{table}[h]
|
||||
\centering
|
||||
\caption{The most frequent keywords contained in evolvement messages}
|
||||
\begin{tabular}{r|p{7cm}}
|
||||
\bottomrule
|
||||
&\textbf{keyword list}\\ \hline
|
||||
\textbf{\LIC} & update, add, year, initial, fix, remove, change, version, mit, create, new, doc, notice, move, release, use, bump, apache, rename, date\\ \hline
|
||||
\textbf{\RDM} & update, auto, add, fix, merge, link, pull-request, doc, remove, new, version, typo, branch, change, section, use, badge, release, build, master\\ \hline
|
||||
\textbf{\COD} & add, create, update, doc, fix, contributor, covenant, link, email, use, http, move, github, contact, change, address, guideline, markdown, community, document\\ \hline
|
||||
\textbf{\CON} & update, add, doc, fix, link, guideline, guide, merge, remove, test, typo, chang, contribute, use, instruct, document, issue, branch, pull-request, note\\ \hline
|
||||
\toprule
|
||||
\end{tabular}
|
||||
\label{tab:kw}
|
||||
\end{table}
|
||||
|
||||
\subsection{Results from survey}
|
||||
|
||||
|
||||
|
||||
|
||||
\subsection{RQ4: Documentation Maintenance}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,6 @@
|
|||
\section{Results}
|
||||
|
||||
\input{4_1}
|
||||
\input{4_2}
|
||||
\input{4_3}
|
||||
\input{4_4}
|
||||
|
||||
% % #有些项目有多个license
|
||||
% !! multiple license
|
||||
|
||||
% !!!!! IF INCLUDING TEMPLATE FILES (LIKE scikit-learn/scikit-learn)
|
||||
|
||||
% !!!!! IF INCLUDING contributor FILES (LIKE /google/guava)
|
||||
|
|
|
|||
|
|
@ -3,5 +3,4 @@
|
|||
\label{sec:Concl}
|
||||
|
||||
\section*{Acknowledgment}
|
||||
We would like to thank the anonymous reviewers for their comments. The research is supported by the National Natural Science Foundation of China (Grant No.61432020, 61303064, 61472430, 61502512) and National Grand R\&D Plan (Grant No. 2016YFB1000805).
|
||||
% The authors would like to thank... more thanks here
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,534 @@
|
|||
\def\sci@fileversion{3.01}
|
||||
\def\sci@filedate{2020/04/12}
|
||||
\def\@journal{Sci China Inf Sci}
|
||||
\def\@issn{1674-733X}
|
||||
\def\@copyright{\copyright~Science China Press and Springer-Verlag GmbH Germany, part of Springer Nature 2020}
|
||||
\def\@oacopyright{\copyright~The Author(s) 2020}
|
||||
\def\@website{\url{info.scichina.com}~~~~\url{link.springer.com}}
|
||||
|
||||
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
||||
\ProvidesClass{SCIS}[\sci@filedate, \sci@fileversion]
|
||||
|
||||
\LoadClass[twoside]{article}
|
||||
%% math packages
|
||||
\RequirePackage{amsmath,amsthm,amsfonts,amssymb,bm,upgreek,multicol,mathrsfs,pifont,amscd,latexsym,geometry,color}
|
||||
%% graphics packages
|
||||
\RequirePackage{graphicx,picins}
|
||||
%% other packages
|
||||
\RequirePackage{algorithm,algorithmic,tabularx,url,float,booktabs}
|
||||
\RequirePackage{lettrine}%首字母双行
|
||||
%% check pdfTeX mode
|
||||
\RequirePackage{ifpdf}
|
||||
\RequirePackage{fancyhdr,lastpage}
|
||||
\RequirePackage[pdfstartview=FitH,colorlinks,breaklinks,linkcolor=black,citecolor=black,filecolor=black,urlcolor=black,hyperindex,CJKbookmarks]{hyperref}
|
||||
\RequirePackage{breakurl}
|
||||
%\RequirePackage[dvipdfm,colorlinks,linkcolor=black,citecolor=black,filecolor=black,urlcolor=black,hyperindex,CJKbookmarks]{hyperref}
|
||||
\urlstyle{same}%定义url字体和正文相同
|
||||
\renewcommand{\today}{\number\year-\number\month-\number\day}%日期格式
|
||||
|
||||
%-------------------- Page layout --------------------
|
||||
\textwidth=160truemm
|
||||
%\textheight=226truemm
|
||||
\textheight=230truemm
|
||||
\topmargin=-30pt
|
||||
\headsep=6truemm
|
||||
\oddsidemargin=0pt
|
||||
\evensidemargin=0pt
|
||||
\parindent=0pt
|
||||
\footskip=0mm
|
||||
\renewcommand{\baselinestretch}{1.0}
|
||||
\renewcommand{\arraystretch}{1.3}
|
||||
\def\blank{ }
|
||||
\def\lastpage{\pageref{LastPage}}
|
||||
\def\firstpage{\pageref{FirstPage}}
|
||||
|
||||
%-------------------- Font Size --------------------
|
||||
\newcommand{\journalnamesize}{\fontsize{15pt}{2\baselineskip}\selectfont}
|
||||
\newcommand{\titlesize}{\fontsize{16pt}{1.5\baselineskip}\selectfont}
|
||||
\newcommand{\authorsize}{\fontsize{12pt}{\baselineskip}\selectfont}
|
||||
\newcommand{\sectionsize}{\fontsize{12pt}{\baselineskip}\selectfont}
|
||||
\newcommand{\mainbodysize}{\fontsize{10pt}{\baselineskip}\selectfont}
|
||||
\newcommand{\abstractsize}{\fontsize{8pt}{0.85\baselineskip}\selectfont}
|
||||
\renewcommand{\footnotesize}{\fontsize{7pt}{0.75\baselineskip}\selectfont}
|
||||
\newcommand{\headerfootersize}{\fontsize{7pt}{0.6\baselineskip}\selectfont}
|
||||
|
||||
\iffalse
|
||||
\makeatletter
|
||||
\renewcommand\normalsize{
|
||||
\@setfontsize\normalsize\@xpt\@xiipt
|
||||
\abovedisplayskip 9\p@ \@plus4\p@ \@minus5\p@
|
||||
\abovedisplayshortskip \z@ \@plus3\p@
|
||||
\belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
|
||||
\belowdisplayskip \abovedisplayskip
|
||||
\let\@listi\@listI}
|
||||
\makeatother
|
||||
\fi
|
||||
|
||||
%-------------------- list --------------------
|
||||
\renewenvironment{itemize}{
|
||||
\begin{list}{$\bullet$}{
|
||||
\labelwidth=4em
|
||||
\labelsep=0.5em
|
||||
\leftmargin=0em
|
||||
\rightmargin=0em
|
||||
\parsep=\parskip
|
||||
\itemsep=0em
|
||||
\topsep=0em
|
||||
\itemindent=2.1em
|
||||
}
|
||||
}{\end{list}}
|
||||
|
||||
|
||||
%-------------------- Article Type --------------------
|
||||
\def\review{REVIEW}
|
||||
\def\article{RESEARCH PAPER}
|
||||
\def\perspective{PERSPECTIVE}
|
||||
\def\moop{MOOP}
|
||||
\def\news{NEWS \& VIEWS}
|
||||
\def\highlight{HIGHLIGHT}
|
||||
\def\letter{LETTER}
|
||||
\def\erratum{ERRATUM}
|
||||
\def\editorial{EDITORIAL}
|
||||
\def\supplementary{Supplementary File}
|
||||
|
||||
%-------------------- Article Information --------------------
|
||||
\let\@ArticleType\@empty \def\ArticleType#1{\def\@ArticleType{#1}}
|
||||
\let\@SpecialTopic\@empty \def\SpecialTopic#1{\def\@SpecialTopic{#1}}
|
||||
\let\@Year\@empty \def\Year#1{\def\@Year{#1}}
|
||||
\let\@Month\@empty \def\Month#1{\def\@Month{#1}}
|
||||
\let\@Vol\@empty \def\Vol#1{\def\@Vol{#1}}
|
||||
\let\@No\@empty \def\No#1{\def\@No{#1}}
|
||||
\let\@AuthorMark\@empty \def\AuthorMark#1{\def\@AuthorMark{#1}}
|
||||
\let\@AuthorCitation\@empty \def\AuthorCitation#1{\def\@AuthorCitation{#1}}
|
||||
\let\@BeginPage\@empty \def\BeginPage#1{\def\@BeginPage{#1}}
|
||||
\let\@EndPage\@empty \def\EndPage#1{\def\@EndPage{#1}}
|
||||
\let\@DOI\@empty \def\DOI#1{\def\@DOI{#1}}
|
||||
\let\@ArtNo\@empty \def\ArtNo#1{\def\@ArtNo{#1}}
|
||||
\let\@ReceiveDate\@empty \def\ReceiveDate#1{\def\@ReceiveDate{#1}}
|
||||
\let\@ReviseDate\@empty \def\ReviseDate#1{\def\@ReviseDate{#1}}
|
||||
\let\@AcceptDate\@empty \def\AcceptDate#1{\def\@AcceptDate{#1}}
|
||||
\let\@OnlineDate\@empty \def\OnlineDate#1{\def\@OnlineDate{#1}}
|
||||
\let\@abstract\@empty \renewcommand\abstract[1]{\def\@abstract{#1}}
|
||||
\let\@keywords\@empty \def\keywords#1{\def\@keywords{#1}}
|
||||
\let\@contributions\@empty \newcommand\contributions[1]{\def\@contributions{#1}}
|
||||
\let\@luntan\@empty \newcommand\luntan{\def\@luntan{1}}
|
||||
\let\@oatag\@empty \newcommand\oa{\def\@oatag{1}}
|
||||
|
||||
%-------------------- Citation --------------------
|
||||
\def\citationline{
|
||||
\ifx\@DOI\@empty {\bf Citation}\quad\ignorespaces\@AuthorCitation. \@titlecitation. \@journal, for review
|
||||
\else {\bf Citation}\quad\ignorespaces\@AuthorCitation. \@titlecitation. \@journal, \@Year, \@Vol(\@No): \@ArtNo, \href{https://doi.org/\@DOI}{\url{https://doi.org/\@DOI}}
|
||||
\fi}
|
||||
|
||||
%-------------------- Title --------------------
|
||||
\let\@title\@empty
|
||||
\renewcommand\title[3][]{
|
||||
\def\@title{#2}
|
||||
\def\@titlehead{#1}
|
||||
\def\@titlecitation{#3}
|
||||
\ifx\@titlehead\@empty \def\@titlehead{#2}\fi
|
||||
\ifx\@titlecitation\@empty \def\@titlecitation{#2}\fi
|
||||
}
|
||||
|
||||
%-------------------- Author --------------------
|
||||
\let\@author\@empty
|
||||
\let\@authoremail\@empty
|
||||
\let\@onlyoneauthor\@empty
|
||||
\renewcommand*{\author}[3][]{
|
||||
\ifx\@author\@empty
|
||||
\def\@author{#2\@authornote{#1}{#3}}
|
||||
\let\@authortemp\@author
|
||||
\else
|
||||
\let\@author\@authortemp
|
||||
\def\@onlyoneauthor{No}
|
||||
\expandafter\def\expandafter\@author\expandafter
|
||||
{\@author~{\&}~#2\@authornote{#1}{#3}}
|
||||
\expandafter\def\expandafter\@authortemp\expandafter
|
||||
{\@authortemp,~#2\@authornote{#1}{#3}}
|
||||
\fi
|
||||
|
||||
%联系作者邮箱
|
||||
\ifx#3\@empty
|
||||
\else
|
||||
\ifx\@authoremail\@empty \def\@authoremail{#3}
|
||||
\else \expandafter\def\expandafter\@authoremail\expandafter{\@authoremail, #3}
|
||||
\fi
|
||||
\fi
|
||||
}
|
||||
|
||||
\def\@authornote#1#2{%
|
||||
\def\SCAE@author@address{#1}%
|
||||
\def\SCAE@author@footnote{#2}%
|
||||
|
||||
\ifx\SCAE@author@address\@empty
|
||||
\else \textsuperscript{#1}%\hspace{-1.4mm}
|
||||
\fi
|
||||
|
||||
\ifx\SCAE@author@footnote\@empty
|
||||
\else \ifx\@onlyoneauthor\@empty
|
||||
\else \ifx\@contributions\@empty \textsuperscript{*}%\hspace{-1.4mm}
|
||||
\fi\fi\fi
|
||||
}
|
||||
|
||||
%-------------------- Address --------------------
|
||||
\def\@address{}
|
||||
\newcommand*{\address}[2][]{
|
||||
\ifx\@address\@empty \def\@address{\@addressline{#1}{#2}}
|
||||
\else \expandafter\def\expandafter\@address\expandafter{\@address;\tabularnewline\@addressline{#1}{#2}}
|
||||
\fi}
|
||||
\def\@addressline#1#2{\@addresscr\hb@xt@1ex{\textsuperscript{\rm#1}\hss}#2}
|
||||
\def\@addresscr{\def\\{\tabularnewline\@addresscr\hbox to1ex{}\ignorespaces}}
|
||||
|
||||
|
||||
%-------------------- maketitle --------------------
|
||||
\renewcommand\maketitle{\par
|
||||
\begingroup
|
||||
\renewcommand\thefootnote{\fnsymbol{footnote}}
|
||||
\let\footnote\thanks
|
||||
\def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}%
|
||||
\long\def\@makefntext##1{\noindent\@textsuperscript{\normalfont\@thefnmark}##1}%
|
||||
\@maketitle
|
||||
\thispagestyle{empty}\@thanks
|
||||
\long\def\@makefntext##1{\noindent##1}
|
||||
\endgroup
|
||||
\renewcommand\thefootnote{\arabic{footnote}}
|
||||
\setcounter{footnote}{0}
|
||||
\setlength{\textwidth}{16cm}
|
||||
\setlength{\textheight}{23.6cm}
|
||||
\parindent=10.8pt
|
||||
\baselineskip 12pt
|
||||
%字号:moop,perspective,news,highlight,letter字号小
|
||||
\ifx\@ArticleType\moop \abstractsize
|
||||
\else \ifx\@ArticleType\perspective \abstractsize
|
||||
\else \ifx\@ArticleType\news \abstractsize
|
||||
\else \ifx\@ArticleType\highlight \abstractsize
|
||||
\else \ifx\@ArticleType\letter \abstractsize
|
||||
\else \mainbodysize
|
||||
\fi\fi\fi\fi\fi
|
||||
|
||||
}
|
||||
|
||||
\long\def\@makefntext#1{\parindent 12pt \indent\hbox{\hss{\@thefnmark)\ }}#1}
|
||||
\def\@makefnmark{\hbox\textsuperscript{\@thefnmark)}}
|
||||
|
||||
|
||||
\def\@maketitle{
|
||||
\ifthenelse{\pageref{LastPage}=1}
|
||||
{\def\@pagerank{\@ArtNo}}
|
||||
{\def\@pagerank{\@ArtNo:1--\@ArtNo:\pageref{LastPage}}}
|
||||
|
||||
%首页页眉页脚
|
||||
\begin{picture}(0,0)
|
||||
\put(165,23){\journalnamesize\bf SCIENCE CHINA}
|
||||
\put(167,8){\journalnamesize Information Sciences}
|
||||
\put(0,1){\thicklines\line(1,0){456}}
|
||||
\ifx\@DOI\@empty\else
|
||||
\put(0,7){\makebox[\textwidth][r]{\href{http://crossmark.crossref.org/dialog/?doi=\@DOI&domain=pdf&date_stamp=\today}{\includegraphics{Print-CrossMark.eps}}}}
|
||||
\put(0,-9){\makebox[\textwidth][r]{\vbox{\hbox{\headerfootersize \@Month~\@Year,~Vol.~\@Vol~~\@pagerank}}}}
|
||||
\put(0,-18){\makebox[\textwidth][r]{\vbox{\hbox{\headerfootersize \href{https://doi.org/\@DOI}{https://doi.org/\@DOI}}}}}
|
||||
\ifx\@luntan\@empty\else \put(0,-90){\makebox[\textwidth][r]{\includegraphics{kxqylt.eps}}} \fi
|
||||
\ifx\@oatag\@empty \put(0,-660){\makebox[\textwidth][l]{\headerfootersize\sf \@copyright}}
|
||||
\else \put(0,-660){\makebox[\textwidth][l]{\headerfootersize\sf \@oacopyright}}
|
||||
\fi
|
||||
\put(0,-660){\makebox[\textwidth][r]{\headerfootersize\sf \@website}}
|
||||
\fi
|
||||
\end{picture}
|
||||
|
||||
%首页页眉下方左侧:editorial不写专题名
|
||||
\begin{picture}(0,0)
|
||||
\rm
|
||||
\put(0,-5){\makebox[\textwidth][l]{\bf {\LARGE\bfseries\raisebox{2pt}{.}}~\@ArticleType~{\LARGE\bfseries\raisebox{2pt}{.}}}}
|
||||
\ifx\@ArticleType\editorial\else \put(1,-19){\@SpecialTopic} \fi
|
||||
\end{picture}
|
||||
|
||||
%标题:editorial标题加citation脚注
|
||||
\noindent
|
||||
\vskip 12mm
|
||||
\ifx\@ArticleType\editorial
|
||||
\begin{center}
|
||||
\titlesize\bfseries\@title\footnote{\citationline}
|
||||
\end{center}
|
||||
\vskip 8mm
|
||||
\else
|
||||
\begin{center}\titlesize\bfseries\@title\end{center}
|
||||
\fi
|
||||
|
||||
%作者和单位:editorial没有
|
||||
\ifx\@ArticleType\editorial\else
|
||||
\begin{center}\authorsize{\rm
|
||||
\begin{tabular}{@{}c@{}}
|
||||
\@author
|
||||
\ifx\@onlyoneauthor\@empty
|
||||
\setcounter{footnote}{-1}
|
||||
\footnote{Email:~\@authoremail}
|
||||
\else
|
||||
\ifx\@contributions\@empty
|
||||
\setcounter{footnote}{-1}
|
||||
\footnote{*{\thinspace}Corresponding author (email:~\@authoremail)}
|
||||
\else
|
||||
\setcounter{footnote}{-1}
|
||||
\footnote{*{\thinspace}Corresponding author (email:~\@authoremail)\protect\\\dag{\thinspace}\@contributions}
|
||||
\fi
|
||||
\fi
|
||||
\end{tabular}
|
||||
}\end{center}
|
||||
\begin{center}\headerfootersize{\it \begin{tabular}[t]{@{}c@{}} \@address \end{tabular}} \end{center}
|
||||
\fi
|
||||
|
||||
%投稿日期和citation:erratum,editorial,supplementary没有
|
||||
\ifx\@ArticleType\erratum\else
|
||||
\ifx\@ArticleType\editorial\else
|
||||
\ifx\@ArticleType\supplementary\else
|
||||
\begin{center}
|
||||
\footnotesize
|
||||
\ifx\@DOI\@empty
|
||||
\else \ifx\@ReviseDate\@empty
|
||||
\ifx\@OnlineDate\@empty{Received \@ReceiveDate/Accepted \@AcceptDate}
|
||||
\else{Received \@ReceiveDate/Accepted \@AcceptDate/Published online \@OnlineDate}
|
||||
\fi
|
||||
\else
|
||||
\ifx\@OnlineDate\@empty{Received \@ReceiveDate/Revised \@ReviseDate/Accepted \@AcceptDate}
|
||||
\else{Received \@ReceiveDate/Revised \@ReviseDate/Accepted \@AcceptDate/Published online \@OnlineDate}
|
||||
\fi
|
||||
\fi\fi
|
||||
\end{center}
|
||||
\begin{center}
|
||||
\begin{tabular}{p{0.88\textwidth}}
|
||||
\toprule
|
||||
%摘要和关键词:moop,perspective,news,highlight,letter没有
|
||||
\ifx\@ArticleType\moop
|
||||
\else \ifx\@ArticleType\perspective
|
||||
\else \ifx\@ArticleType\news
|
||||
\else \ifx\@ArticleType\highlight
|
||||
\else \ifx\@ArticleType\letter
|
||||
\else
|
||||
\abstractsize\noindent\textbf{Abstract}\quad\ignorespaces\@abstract\\
|
||||
\abstractsize\noindent\textbf{Keywords}\quad\ignorespaces\@keywords\\
|
||||
\hline
|
||||
\fi\fi\fi\fi\fi
|
||||
\footnotesize\noindent\ignorespaces\citationline\\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
\fi\fi\fi
|
||||
}
|
||||
|
||||
|
||||
%-------------------- Running heads --------------------
|
||||
\def\ps@myheadings{\global\let\@oddfoot\@empty\global\let\@evenfoot\@empty
|
||||
\def\@evenhead{\vbox{\hbox to \textwidth{
|
||||
\headerfootersize\rm\hbox to 0.01cm{} \hfill{
|
||||
\ifx \@onlyoneauthor\@empty
|
||||
\@AuthorMark\emph{\ \ \ \@journal}
|
||||
\else
|
||||
\@AuthorMark\emph{,~et al.\ \ \ \@journal}
|
||||
\fi
|
||||
\ifx\@DOI\@empty \ \thepage
|
||||
\else{\ \ \ \@Month~\@Year~Vol.~\@Vol~\@ArtNo:\thepage}
|
||||
\fi
|
||||
}\hfill
|
||||
}}}
|
||||
|
||||
\def\@oddhead{\vbox{\hbox to \textwidth{
|
||||
\headerfootersize\rm\hbox to 0.01cm{} \hfill{
|
||||
\ifx \@onlyoneauthor\@empty
|
||||
\@AuthorMark\emph{\ \ \ \@journal}
|
||||
\else
|
||||
\@AuthorMark\emph{,~et al.\ \ \ \@journal}
|
||||
\fi
|
||||
\ifx\@DOI\@empty \ \thepage
|
||||
\else{\ \ \ \@Month~\@Year~Vol.~\@Vol~\@ArtNo:\thepage}
|
||||
\fi
|
||||
}\hfill
|
||||
}}}
|
||||
|
||||
\let\@oddfoot\@empty \let\@evenfoot\@empty
|
||||
}
|
||||
\pagestyle{myheadings}
|
||||
|
||||
|
||||
%-------------------- Acknowledgements --------------------
|
||||
\let\@Acknowledgements\@empty \def\Acknowledgements#1{\def\@Acknowledgements{#1}}
|
||||
\let\@Supplements\@empty \def\Supplements#1{\def\@Supplements{#1}}
|
||||
|
||||
%-------------------- Sections --------------------
|
||||
\renewcommand\section{
|
||||
\@startsection{section}{1}{\z@}%
|
||||
{-4.5ex \@plus -1ex \@minus -.2ex}%
|
||||
{2.5ex \@plus.1ex}%
|
||||
{\normalfont\sectionsize\bfseries}}
|
||||
|
||||
\renewcommand\subsection{
|
||||
\@startsection{subsection}{2}{\z@}%
|
||||
{-2ex\@plus -2ex \@minus -.1ex}%
|
||||
{2ex \@plus .2ex}%
|
||||
{\normalfont\normalsize\bfseries}}
|
||||
|
||||
\renewcommand\subsubsection[1]{
|
||||
\@startsection{subsubsection}{3}{\z@}%
|
||||
{-3ex\@plus -1ex \@minus -.1ex}%
|
||||
{1ex \@plus .1ex}%
|
||||
{\normalfont\normalsize}{\it#1}}
|
||||
|
||||
\newcommand\deareditor{
|
||||
\noindent Dear editor,\vspace{1mm}\\
|
||||
\noindent
|
||||
}
|
||||
|
||||
\newcommand\lettersection[1]{{\it #1}.}
|
||||
\columnsep 0.5cm %两栏之间的距离
|
||||
|
||||
\let\oldappendix\appendix
|
||||
\renewenvironment{appendix}{
|
||||
\oldappendix
|
||||
\setcounter{section}{0}
|
||||
\def\thesection{Appendix \Alph{section}}
|
||||
\renewcommand{\theequation}{\Alph{section}\arabic{equation}}
|
||||
\renewcommand{\thefigure}{\Alph{section}\arabic{figure}}
|
||||
\renewcommand{\thetable}{\Alph{section}\arabic{table}}
|
||||
\renewcommand{\thealgorithm}{\Alph{section}\arabic{algorithm}}
|
||||
\renewcommand{\section}{
|
||||
\setcounter{equation}{0}
|
||||
\setcounter{table}{0}
|
||||
\setcounter{figure}{0}
|
||||
\setcounter{algorithm}{0}
|
||||
\@startsection{section}{1}{\z@}%
|
||||
{-4.5ex \@plus -1ex \@minus -.2ex}%
|
||||
{1ex \@plus .2ex}%
|
||||
{\normalfont\normalsize\bfseries}
|
||||
}
|
||||
\footnotesize
|
||||
}
|
||||
|
||||
%-------------------- Bibliography --------------------
|
||||
\usepackage{cite}%使多个参文中间用--连接
|
||||
\def\@biblabel#1{#1~}
|
||||
\renewenvironment{thebibliography}[1]{
|
||||
%双栏参文行距需要调整
|
||||
\ifx\@ArticleType\moop \renewcommand{\baselinestretch}{1.2}
|
||||
\else \ifx\@ArticleType\perspective \renewcommand{\baselinestretch}{1.2}
|
||||
\else \ifx\@ArticleType\news \renewcommand{\baselinestretch}{1.2}
|
||||
\else \ifx\@ArticleType\highlight \renewcommand{\baselinestretch}{1.2}
|
||||
\else \ifx\@ArticleType\letter \renewcommand{\baselinestretch}{1.2}
|
||||
\fi\fi\fi\fi\fi
|
||||
\ifx\@Acknowledgements\@empty\else
|
||||
\vspace*{2mm}
|
||||
\begin{itemize}\footnotesize
|
||||
\item[] \noindent\textbf{Acknowledgements}\quad \@Acknowledgements
|
||||
\end{itemize}
|
||||
\fi
|
||||
|
||||
\ifx\@Supplements\@empty\else
|
||||
\vspace*{2mm}
|
||||
\begin{itemize}\footnotesize
|
||||
\item[] \noindent\textbf{Supporting information}\quad \@Supplements\quad
|
||||
The supporting information is available online at \url{info.scichina.com} and \url{link.springer.com}.
|
||||
The supporting materials are published as submitted, without typesetting or editing.
|
||||
The responsibility for scientific accuracy and content remains entirely with the authors.
|
||||
\end{itemize}
|
||||
\fi
|
||||
|
||||
\ifx\@oatag\@empty\else
|
||||
\vspace*{2mm}
|
||||
\begin{itemize}\footnotesize
|
||||
\item[] \noindent\textbf{Open access}\quad
|
||||
This article is licensed under a Creative Commons Attribution 4.0 International License,
|
||||
which permits use, sharing, adaptation, distribution and reproduction in any medium or format,
|
||||
as long as you give appropriate credit to the original author(s) and the source,
|
||||
provide a link to the Creative Commons licence, and indicate if changes were made.
|
||||
The images or other third party material in this article are included in the article's Creative Commons licence,
|
||||
unless indicated otherwise in a credit line to the material.
|
||||
If material is not included in the article's Creative Commons licence and
|
||||
your intended use is not permitted by statutory regulation or exceeds the permitted use,
|
||||
you will need to obtain permission directly from the copyright holder.
|
||||
To view a copy of this licence, visit \url{http://creativecommons.org/licenses/by/4.0/}.
|
||||
\end{itemize}
|
||||
\fi
|
||||
|
||||
\vspace*{-4mm}
|
||||
\section*{\footnotesize\refname
|
||||
\@mkboth{\footnotesize\refname}{\footnotesize\refname}}
|
||||
\vspace*{-3mm}
|
||||
\list{\@biblabel{\@arabic\c@enumiv}}{
|
||||
\settowidth\labelwidth{\@biblabel{#1}}
|
||||
\leftmargin\labelwidth
|
||||
\advance\leftmargin\labelsep
|
||||
\@openbib@code
|
||||
\usecounter{enumiv}
|
||||
\let\p@enumiv\@empty
|
||||
\renewcommand\theenumiv{\@arabic\c@enumiv}
|
||||
}
|
||||
\itemsep 0ex \parskip 0ex
|
||||
\footnotesize\sloppy
|
||||
}
|
||||
\renewcommand{\UrlFont}{\selectfont} %使用\url{}使参文中的url自动断行
|
||||
|
||||
|
||||
|
||||
|
||||
%-------------------- Figure and table --------------------
|
||||
\setlength{\floatsep}{12pt plus 2pt minus 2pt}%页面顶部/底部的浮动对象间的垂直距离, 缺省为12pt plus 2pt minus 2pt
|
||||
\setlength{\textfloatsep}{12pt plus 2pt minus 2pt}%页顶部/底部的浮动对象与文本间垂直距离, 缺省12pt plus 2pt minus 2pt
|
||||
\setlength{\intextsep}{12pt plus 2pt minus 2pt}%页中浮动对象与上下方文本间垂直距离, 缺省12pt plus 2pt minus 2pt
|
||||
\setlength{\belowrulesep}{1pt}%横线和其下文字的间距
|
||||
\setlength{\aboverulesep}{1pt}%横线和其上文字的间距
|
||||
\setlength{\doublerulesep}{0.4pt}
|
||||
\newcommand\Times{\fontfamily{ptm}\selectfont}
|
||||
\newcommand{\picsize}{\fontsize{8pt}{0.4\baselineskip}\selectfont}
|
||||
\usepackage[bf,footnotesize,labelsep=quad]{caption}
|
||||
\usepackage[labelfont={rm,md,up}]{subfig}
|
||||
\captionsetup[subfloat]{labelformat=simple,captionskip=0pt}
|
||||
\captionsetup[table]{aboveskip=1mm}
|
||||
\captionsetup[figure]{aboveskip=3mm}
|
||||
\captionsetup[algorithm]{font=footnotesize}
|
||||
\renewcommand{\thesubfigure}{{\picsize\Times(\alph{subfigure})}} %这两行定义子图在正文引用时的label形式
|
||||
\renewcommand{\thesubtable}{{\picsize(\alph{subtable})}} %子表label的字体仍和正文相同
|
||||
|
||||
%-------------------- Math --------------------
|
||||
\def\leq{\leqslant}
|
||||
\def\geq{\geqslant}
|
||||
\def\le{\leqslant}
|
||||
\def\ge{\geqslant}
|
||||
\abovedisplayskip=11pt plus 0pt minus 6pt
|
||||
\belowdisplayskip=11pt plus 0pt minus 6pt
|
||||
\newcommand{\set}[1]{\ensuremath{\left\{ #1 \right\}}}%
|
||||
\newcommand{\Set}[2]{\ensuremath{\left\{ #1 \left| \right. #2 \right\}}}%
|
||||
\newcommand{\abs}[1]{\ensuremath{\left| #1 \right|}}%
|
||||
\newcommand{\map}[3]{\ensuremath{#1 : #2 \rightarrow #3}}%
|
||||
\newcommand{\C}[1]{\ensuremath{\mathcal{#1}}}%
|
||||
\newcommand{\restrict}[2]{\ensuremath{#1 \left|_{#2}\right.}}%
|
||||
\newcommand{\NN}{\mathbb{N}^0}
|
||||
\newcommand{\PN}{\mathbb{N}}
|
||||
\newcommand{\syn}{\mathbf{S}}
|
||||
\newcommand{\Syn}{\mathbf{M}}
|
||||
\allowdisplaybreaks
|
||||
\setlength{\arraycolsep}{2.0pt}
|
||||
|
||||
%-------------------- Theorem --------------------
|
||||
\def\proof{\noindent{\it Proof.}\quad}
|
||||
\def\th#1{\noindent{\bf #1}\quad}%The common style. 通用形式
|
||||
\renewcommand{\qedsymbol}{}
|
||||
\newtheoremstyle{newdefinition}%
|
||||
{2pt}% Space above
|
||||
{2pt}% Space below
|
||||
{\normalfont}% Body font
|
||||
{}% Indent amount
|
||||
{\bfseries}% Theorem head font
|
||||
{.}% Punctuation after theorem head
|
||||
{10pt plus 1pt minus 1pt}% Space after theorem head
|
||||
{}% Theorem head spec (can be left empty, meaning `normal')
|
||||
\theoremstyle{newdefinition}%
|
||||
\newtheorem{assumption}{Assumption}
|
||||
\newtheorem{corollary}{Corollary}
|
||||
\newtheorem{definition}{Definition}
|
||||
\newtheorem{example}{Example}
|
||||
\newtheorem{lemma}{Lemma}
|
||||
\newtheorem{problem}{Problem}
|
||||
\newtheorem{proposition}{Proposition}
|
||||
\newtheorem{remark}{Remark}
|
||||
\newtheorem{theorem}{Theorem}
|
||||
|
||||
|
||||
|
||||
|
||||
\endinput
|
||||
|
|
@ -63,11 +63,14 @@ def overview():
|
|||
doc_id,repo_id,doc_type = _f
|
||||
if doc_type is not None:
|
||||
dist[doc_type].add(repo_id)
|
||||
|
||||
cursor.execute("select count(id) from random_repos where description is not null")
|
||||
dist["description"] = "%.2f%%"%(cursor.fetchone()[0]*100.0/repo_counts)
|
||||
|
||||
for key, value in dist.items():
|
||||
print key, "%.2f%%"%(len(value)*100.0/repo_counts)
|
||||
|
||||
cursor.execute("select count(id) from random_repos where description is not null")
|
||||
print "desc", "%.2f%%"%(cursor.fetchone()[0]*100.0/repo_counts)
|
||||
|
||||
|
||||
def repo_profile(repo_id):
|
||||
file_types = set()
|
||||
|
|
@ -100,7 +103,7 @@ def by_language():
|
|||
file_dist[repo_lan][rf] += 1
|
||||
lans = sorted(language_dist.items(), key=lambda x: x[1], reverse=True)
|
||||
print lans
|
||||
for lan, lan_count in lans:
|
||||
for lan, lan_count in lans[0:10]:
|
||||
tmp_lan_dist = file_dist[lan]
|
||||
percentages = []
|
||||
for _k in [ "readme","license","contributing","COC","template"]:
|
||||
|
|
@ -108,8 +111,8 @@ def by_language():
|
|||
percentages.append(0)
|
||||
else:
|
||||
percentages.append(tmp_lan_dist[_k])
|
||||
p_str = "|".join(["%.2f%%"%(item*100.0/language_dist[lan]) for item in percentages])
|
||||
print "|%s|%d|%s|"%(lan,language_dist[lan],p_str)
|
||||
p_str = "&\t".join(["%.2f\%%"%(item*100.0/language_dist[lan]) for item in percentages])
|
||||
print "%s\t&%d\t&%s\\\\"%(lan,language_dist[lan],p_str)
|
||||
|
||||
def by_role():
|
||||
cursor.execute("select id, owner_type from random_repos")
|
||||
|
|
@ -271,11 +274,11 @@ def by_forks():
|
|||
|
||||
if __name__ == "__main__":
|
||||
|
||||
# overview()
|
||||
overview()
|
||||
# by_language()
|
||||
# by_role()
|
||||
# by_age()
|
||||
by_forks()
|
||||
# by_forks()
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -76,20 +76,31 @@ if __name__ == "__main__":
|
|||
for f in files:
|
||||
doc_id,repo_id,doc_location,doc_name,doc_type = f
|
||||
if repo_id in repos:
|
||||
|
||||
# 已经采集过了
|
||||
cursor.execute("select file_id from file_content where file_id=%s",(doc_id,))
|
||||
result = cursor.fetchone()
|
||||
if not(result is None or result[0] is None):
|
||||
continue
|
||||
|
||||
|
||||
# 是profile doc
|
||||
if profile_type(f) is not None:
|
||||
print f
|
||||
# 如果是特殊文件的话
|
||||
if doc_name.endswith(".pdf"):
|
||||
print "pdf file"
|
||||
continue
|
||||
|
||||
cursor.execute("select full_name, default_branch from random_repos where id=%s",(repo_id,))
|
||||
result = cursor.fetchone()
|
||||
repo_name, repo_branch = result
|
||||
print "\tcrawl",repo_name, repo_branch, doc_name,doc_type
|
||||
if doc_location != "root":
|
||||
doc_name = "%s/%s"%(doc_location, doc_name)
|
||||
if doc_location.lower().find("template") != -1:
|
||||
doc_name = ".github/%s/%s"%(doc_location, doc_name)
|
||||
else:
|
||||
doc_name = "%s/%s"%(doc_location, doc_name)
|
||||
|
||||
url ='https://raw.githubusercontent.com/%s/%s/%s'%(repo_name,repo_branch,doc_name)
|
||||
while True:
|
||||
print url
|
||||
|
|
|
|||
|
|
@ -0,0 +1,55 @@
|
|||
\section{Introduction}
|
||||
cite~\cite{Gousios:2014}
|
||||
|
||||
% 在传统软件开发中,文档很重要,如需求文档、设计文档、部署文档等,这些叫做规范文档
|
||||
|
||||
|
||||
% 开源软件没有这些文档,他们崇尚****。
|
||||
% 然而他们还是必须要有一些communit 文档。例如。。。有什么用。。。
|
||||
|
||||
% 尤其是OSS,有人出,有人进。
|
||||
% 这些文档能够帮助新手理解软件是什么。怎么贡献,什么样的贡献。
|
||||
|
||||
%
|
||||
% 开源软件是大众贡献者的自愿参与,
|
||||
% 分布在全球的开发者在多种多样的动机的驱使下,不断地往开源软件贡献者的代码。
|
||||
% 然而,另一方面,开源软件开发者团队是不稳定的,大量的开发者不会成为长期稳定的贡献者,
|
||||
% 有人出,有人进。
|
||||
% 因此能够不断地吸引新鲜血液对开源软件的不断演化是非常重要的。
|
||||
|
||||
% 不像企业的软件开发,开源社区对于新人是没有专门的入职前培训的,
|
||||
% 因为开源社区不会为每一位新人都分配一个mentor,
|
||||
% 他们都要靠自己去了解开源软件本身,即使他们有强烈的贡献欲望,他们也得要慢慢的融入进去。
|
||||
% 在这个融入的过程中,他们会通过阅读社区文档、代码、本地测试等逐步加深对软件的了解,然后再去贡献。
|
||||
% 而在这个过程中,文档扮演者非常重要的角色,
|
||||
% 社区文档的定义。
|
||||
% 通过社区文档:
|
||||
% 1. 了解软件的许可证,是否与他的开源理念相符合
|
||||
% 2. 了解软件的主要内容和设计思想、设计理念,是否符合他的兴趣
|
||||
% 3. 了解软件的贡献指南,按照其步骤提交更合理的贡献
|
||||
% 4. 了解软件的代码规范,提交更elegant的代码
|
||||
|
||||
% 文档是给用户建立第一印象的,
|
||||
% 已经有研究指出,贡献者在融入的过程中所遇到的问题中包括文档的问题:
|
||||
% 比如过期,不清晰描述等
|
||||
% 因此,更近一步地,也更详细地,我们想看一看在目前最火的社交化协同社区中,documentation的现状到底是怎么样的,看看还存在哪些不足。
|
||||
% to guide our research, we propose three RQs
|
||||
|
||||
% 我们希望,通过我们的研究,开源社区能够对目前的documentation的现状有个更直观的认识,
|
||||
% 能够从哪些好的方面去改进documentation。
|
||||
|
||||
% Community , Joining , and Specialization in Open Source Software Innovation :
|
||||
% Overcoming Open Source Project Entry Barriers with a Portal for Newcomers
|
||||
|
||||
|
||||
the importance of documentation
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
definition of \textit{community documentation}
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
\section{Background}
|
||||
|
||||
\begin{itemize}
|
||||
\item \textit{INTRODUCTION.} TODO
|
||||
\item \textit{LICENSE.} TODO
|
||||
\item \textit{README.} TODO
|
||||
\item \textit{CONTRIBUTING.} TODO
|
||||
\item \textit{CODE\_OF\_CONDUCT.} TODO
|
||||
\item \textit{TEMPLATE.} TODO
|
||||
\end{itemize}
|
||||
|
|
@ -0,0 +1,162 @@
|
|||
\section{Research Design}
|
||||
|
||||
% 结构参考 cross-project bugs
|
||||
|
||||
\subsection{Studied repositories}
|
||||
In this study,
|
||||
we would like to focus on the highly attractive repositories which are more likely to be the product of crowd collaboration.
|
||||
Therefore,
|
||||
we limit the dataset used in this paper to include
|
||||
repositories that have the most forks.
|
||||
Specifically,
|
||||
we use the APIs~\footnote{\url{*****}} provided by GitHub.
|
||||
|
||||
Firstly,
|
||||
we use the API \texttt{/search/repositories}
|
||||
with the qualifier
|
||||
\texttt{q=forks:>=1000}
|
||||
to retrieve repositories that have more than 1,000 forks.
|
||||
Besides,
|
||||
the returned results only include non-fork repositories in default.
|
||||
|
||||
Secondly,
|
||||
|
||||
|
||||
In total,
|
||||
we have collected 2,953 public non-fork repositories.
|
||||
|
||||
|
||||
|
||||
\begin{itemize}
|
||||
\item search api - get repo list
|
||||
\item repo-info api - get repo information
|
||||
\end{itemize}
|
||||
|
||||
|
||||
statistics in terms of fork, star, language,
|
||||
|
||||
% ref: Understanding the Factors that Impact the Popularity of GitHub Repositoriesr
|
||||
% 对所有项目的fork做个统计
|
||||
|
||||
% 项目的获取,是通过github提供的search api获取的
|
||||
|
||||
% 贡献者数量
|
||||
% https://api.github.com/repos/%s/%s/contributors
|
||||
% repo基本信息
|
||||
% "https://api.github.com/repos/%s/%s"
|
||||
%
|
||||
|
||||
\subsection{Identifying community documentations}
|
||||
|
||||
explanation of the detection of each kind of documentations
|
||||
% Step1. list all the files in root directory
|
||||
% Step2. detect the each kind of docs using keywords
|
||||
\begin{itemize}
|
||||
\item file api - get the latest snapshot of root directory
|
||||
\item determine each kind of documentation
|
||||
\end{itemize}
|
||||
|
||||
\begin{table}[h]
|
||||
\centering
|
||||
\caption{The most frequent keywords contained in evolvement messages}
|
||||
\begin{tabular}{r|p{7cm}}
|
||||
\bottomrule
|
||||
\textbf{Type} &\textbf{keywords}\\ \hline
|
||||
\textbf{LIC} & \texttt{\footnotesize LICENSE, COPYING, COPYRIGHT, LICENCE}\\
|
||||
\textbf{COD} & \texttt{\footnotesize CODE\_OF\_CONDUCT, CODEOFCONDUCT, CODECONVENTION, CODINGCONVENTION}\\
|
||||
\textbf{CON} & \texttt{\footnotesize CONTRIBUTING, CONTRIBUTE}\\
|
||||
\textbf{TMP} & \texttt{\footnotesize ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, COMMIT\_TEMPLATE}\\
|
||||
|
||||
\toprule
|
||||
\specialrule{0em}{0em}{0pt}
|
||||
\multicolumn{2}{l}{\scriptsize
|
||||
\tabincell{l}{
|
||||
\textit{\textbf{Abbreviations:}}\\
|
||||
\textit{\textbf{\tiny
|
||||
LIC: LICENSE, COD: COD\_OF\_CONDUCT, CON: CONTRIBUTING, TMP: TEMPLATE}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
\end{tabular}
|
||||
\label{tab:kw}
|
||||
\end{table}
|
||||
|
||||
|
||||
|
||||
\subsection{Research questions}
|
||||
|
||||
|
||||
\textbf{RQ1. What is the popularity of of community documentations}
|
||||
% 数据统计
|
||||
% 总的统计,按照语言、owner类型、项目年龄
|
||||
% 调查问卷,
|
||||
% 贡献者
|
||||
% 有没有想找某种文档却没有找到的经历?那种文档没有找到?
|
||||
% 都去那里找过?根目录?子目录?项目主页?
|
||||
% 管理者
|
||||
% 你的项目是否设置了cd?那种cd?
|
||||
|
||||
\textbf{RQ2. What is the importance and outcome of community documentations}
|
||||
% 数据统计
|
||||
% 关联统计:start数、贡献者数、fork数(分三组,火的项目,不火的项目,随机的项目)
|
||||
% 调查问卷
|
||||
% 贡献者
|
||||
% cd是不是重要?、 哪一种文档更重要?(重要度 给出一个值)、
|
||||
% 都去那里找过?根目录?子目录?项目主页?
|
||||
% 有没有因为CON文档的缺失,让你无法知道如何贡献,最终无法贡献,或者贡献流程不对?
|
||||
% 有没有因为CON或者COD文档的缺失,让你提交的贡献被审阅者说你不符合规范?
|
||||
% 有没有文档里没提,但是缺让你遵守的呢?
|
||||
% 管理者
|
||||
% cd是不是重要?、哪一种文档更重要?(重要度 给出一个值)
|
||||
% 有没有哪种文档你已经设置了,但是没人遵守?
|
||||
|
||||
\textbf{RQ3. What is the content of community documentations}
|
||||
% 调查问卷
|
||||
% 贡献者
|
||||
% 浏览体验如何?
|
||||
% 是否找到了你想要的内容
|
||||
% 你觉得还应该包含哪些内容?
|
||||
% 管理者
|
||||
% 你觉得还应该包含哪些内容?
|
||||
%
|
||||
|
||||
\textbf{RQ4. What is the involvement of documentation}
|
||||
% 数据统计
|
||||
% 创建时间、更新频率、维护团队、演化信号
|
||||
% 调查问卷
|
||||
% 贡献者
|
||||
% 你是否经历过outdated的documentation
|
||||
% 你是否提交过针对cd的pr或者issue
|
||||
% % 对于贡献者,每一种文档中都应该包含哪些内容?纯文本是否影响体验?是否需要markdown?是否需要图表?
|
||||
% 管理者
|
||||
% 你觉得哪些文档是在初期就该具备的,哪些是项目发展后面才具备的?
|
||||
% 你们平时注重对cd的更新吗?都设么时候更新?
|
||||
%
|
||||
|
||||
|
||||
|
||||
% \textbf{RQ*:
|
||||
% What is effect of community documentations?
|
||||
% }
|
||||
% % doc在attractuser方面的作用,
|
||||
% % 看某一个个文件的创建前后对user、commit等的影响。
|
||||
|
||||
|
||||
\subsection{Research method}
|
||||
|
||||
\textit{1) Quantitative analysis}
|
||||
|
||||
\textit{2) Online survey}
|
||||
% 分为两类,一份贡献者,一份管理者
|
||||
% 问题设置,预定义选项+开放回答
|
||||
|
||||
\textbf{Target participants.}
|
||||
% 怎么选取参与者,也就是谁是管理者,谁是贡献者
|
||||
|
||||
|
||||
\textbf{Survey respondents.}
|
||||
% 发出情况,回复情况
|
||||
|
||||
|
||||
% 最后给出调查问卷的链接
|
||||
|
|
@ -0,0 +1,162 @@
|
|||
\section{The popularity of community documentations}
|
||||
|
||||
\subsection{Results from quantitative analysis}
|
||||
|
||||
\textit{1) Overall popularity}
|
||||
|
||||
conduct a preliminary study to show the
|
||||
overview of the popularity of each kind fo documentation
|
||||
|
||||
Documentation distribution
|
||||
|
||||
definition of \textit{including repositories} and \textit{no-including repositories}
|
||||
|
||||
Table~\ref{tab:doc_dist} reports the documentations distribution by listing the proportion of including repositories for each kind of documentations.
|
||||
% 各类文档的持有比例
|
||||
% 项目创建后间隔多长时间才创建的该文件
|
||||
% 各类文档组合持有的比例
|
||||
% 分析为啥没有某个文档
|
||||
% 统计一下,每一种元素都有的项目有多少,有哪些?
|
||||
|
||||
\begin{table}[h]
|
||||
\centering
|
||||
\caption{The proportion of including repositories for each kind of documentation}
|
||||
\begin{tabular}{@{}r | c c c c c@{}}
|
||||
\bottomrule
|
||||
& \textbf{\DES}& \textbf{\LIC} & \textbf{\RDM} &\textbf{\COD} &\textbf{\CON} \\ \hline
|
||||
\textbf{Repositories} &2,675& 2,309 & 2,925 & 297 & 1142 \\
|
||||
\textbf{Percentage} &90.6\%& 78.2\% & 99.1\% & 10.1\% & 38.7\%\\
|
||||
\toprule
|
||||
\specialrule{0em}{0em}{0pt}
|
||||
\multicolumn{6}{l}{\scriptsize
|
||||
\tabincell{l}{
|
||||
\textit{\textbf{Abbreviations:}}\\
|
||||
\textit{\textbf{\tiny
|
||||
DES: DESCRIPTION, LIC: LICENSE, RDM: README, COD: COD\_OF\_CONDUCT, CON: CONTRIBUTING}
|
||||
}
|
||||
}
|
||||
}
|
||||
\end{tabular}
|
||||
\label{tab:doc_dist}
|
||||
\end{table}
|
||||
elaboration of table~\ref{tab:doc_dist}
|
||||
|
||||
more talk about repos with zero or all docs.
|
||||
|
||||
|
||||
\textit{2) Comparative popularity}
|
||||
% 这里的结论主要是:不同**的项目的文档的分布是由差异的
|
||||
% 比如*语言的开发者就比较爱写文档,而*语言的开发者就不怎么爱写文档
|
||||
% 参考【Understanding the Factors that Impact the Popularity of GitHub Repositories】对每个指标的判定语句
|
||||
|
||||
\vspace{0.5em}
|
||||
\noindent \textbf{Programming language}
|
||||
|
||||
correlation between docs and languages
|
||||
|
||||
|
||||
\begin{table}[h]
|
||||
\centering
|
||||
\caption{Comparison results in terms of programming language}
|
||||
\begin{tabular}{@{}r | c c c c c@{}}
|
||||
\bottomrule
|
||||
& \textbf{\DES}& \textbf{\LIC} & \textbf{\RDM} &\textbf{\COD} &\textbf{\CON} \\ \hline
|
||||
\textbf{JavaScript} & 92.9\% & 84.3\% & 98.8\% & 14.0\% & 45.4\%\\
|
||||
\textbf{Java} & 96.0\% & 78.4\% & 98.6\% & 4.2\% & 25.6\%\\
|
||||
\textbf{Python} & 97.8\% & 79.8\% & 99.6\% & 9.0\% & 33.6\%\\
|
||||
\textbf{Ruby} & 39.7\% & 82.6\% & 99.1\% & 10.5\% & 74.0\%\\
|
||||
\textbf{C++} & 96.9\% & 92.9\% & 98.4\% & 18.1\% & 49.6\%\\
|
||||
\textbf{C} & 97.0\% & 85.1\% & 98.0\% & 7.9\% & 30.7\%\\
|
||||
\textbf{PHP} & 97.8\% & 83.9\% & 100.0\% & 19.4\% & 38.7\%\\
|
||||
\textbf{Objective-C} & 96.2\% & 85.0\% & 98.8\% & 2.5\% & 18.8\%\\
|
||||
\textbf{Go} & 100.0\% & 97.4\% & 100.0\% & 10.5\% & 60.5\%\\
|
||||
\textbf{C\#} & 94.6\% & 94.6\% & 98.2\% & 17.9\% & 46.4\%\\
|
||||
\toprule
|
||||
\specialrule{0em}{0.2em}{0pt}
|
||||
\multicolumn{5}{l}{\scriptsize
|
||||
\tabincell{l}{
|
||||
\textit{\textbf{The number of repositories of each programming language}:} \\
|
||||
\textit{
|
||||
JavaScript: 680, Java: 425, Python: 277, Ruby: 219, C++: 127, C: 101}\\
|
||||
\textit{
|
||||
PHP: 93,Objective-C: 80, Go: 76, C\#: 56}
|
||||
}
|
||||
}
|
||||
\end{tabular}
|
||||
\label{tab:cmpLG}
|
||||
\end{table}
|
||||
|
||||
|
||||
|
||||
\vspace{0.5em}
|
||||
\noindent \textbf{Owner role}
|
||||
|
||||
correlation between docs and owner roles[organization or user]
|
||||
|
||||
|
||||
\begin{table}[h]
|
||||
\centering
|
||||
\caption{Comparison results in terms of owner role}
|
||||
\begin{tabular}{@{}r | c c c c c@{}}
|
||||
\bottomrule
|
||||
& \textbf{\DES}& \textbf{\LIC} & \textbf{\RDM} &\textbf{\COD} &\textbf{\CON} \\ \hline
|
||||
\textbf{Organization} & 86.3\% & 85.8\% & 99.1\% & 14.4\% & 51.0\%\\
|
||||
\textbf{User} & 97.1\% & 66.7\% & 99.0\% & 3.5\% & 20.1\%\\
|
||||
\toprule
|
||||
\specialrule{0em}{0.2em}{0pt}
|
||||
\multicolumn{6}{l}{\scriptsize
|
||||
\tabincell{l}{
|
||||
\textit{\textbf{The number of repositories of owner type}:} \\
|
||||
\textit{Organization: 1,776, User: 1,177}
|
||||
}
|
||||
}
|
||||
\end{tabular}
|
||||
\label{tab:cmpOR}
|
||||
\end{table}
|
||||
|
||||
|
||||
|
||||
\vspace{0.5em}
|
||||
\noindent \textbf{Repository age}
|
||||
% 可以用散点图表示,横坐标轴表示age,纵坐标只取值两个0/1,表示是否包含该文档
|
||||
correlation between docs and repo-age
|
||||
|
||||
|
||||
\vspace{0.5em}
|
||||
\noindent \textbf{Repository purpose}
|
||||
% refs: Understanding the Factors that Impact the Popularity of GitHub Repositories
|
||||
% 这篇文章中介绍了几个分类,我们可以提出一个层次化的。比如两层的
|
||||
% 软件项目:类似于那个软件
|
||||
% 非软件项目:文档翻译、数据集分享、教程、资源列表
|
||||
|
||||
correlation between docs and repo-type(software project, datasharing,...)
|
||||
|
||||
|
||||
|
||||
\begin{table}[h]
|
||||
\centering
|
||||
\caption{Comparison results in terms of repository purpose}
|
||||
\begin{tabular}{@{}r | c c c c c@{}}
|
||||
\bottomrule
|
||||
& \textbf{\DES}& \textbf{\LIC} & \textbf{\RDM} &\textbf{\COD} &\textbf{\CON} \\ \hline
|
||||
|
||||
\tabincell{r}{\textbf{Software}\vspace{-0.4em}\\\textbf{development}} & 90.6\%& 78.2\% & 99.1\% & 10.0\% & 38.7\%\\
|
||||
\tabincell{c}{\textbf{Dataset}\vspace{-0.4em}\\\textbf{sharing}} & 90.6\%& 78.2\% & 99.1\% & 10.0\% & 38.7\%\\
|
||||
\tabincell{c}{\textbf{******}} & 90.6\%& 78.2\% & 99.1\% & 10.0\% & 38.7\%\\
|
||||
|
||||
\toprule
|
||||
|
||||
\specialrule{0em}{0.2em}{0pt}
|
||||
\multicolumn{6}{l}{\scriptsize
|
||||
\tabincell{l}{
|
||||
\textit{\textbf{The number of repositories of owner type}:} \\
|
||||
\textit{Organization: 1,776, User: 1,177}
|
||||
}
|
||||
}
|
||||
|
||||
\end{tabular}
|
||||
\label{tab:cmpRP}
|
||||
\end{table}
|
||||
|
||||
|
||||
\subsection{Results from survey}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
\section{The importance of community documentations}
|
||||
|
||||
\subsection{Results from quantitative analysis}
|
||||
|
||||
\vspace{0.5em}
|
||||
\noindent \textbf{Popularity features}
|
||||
|
||||
correlation between docs and contributor
|
||||
% 如果有哪个指标对比不明显,就说明文档对这个指标的影响不明显
|
||||
% 目前来看,文档会贡献者数量(也就是要有commit)有较强关联;而文档和开发者的fork以及star关联关系则不是太强。
|
||||
% 而fork和star仅仅是简单的点一个按钮,但commit是需要付出较大精力的。
|
||||
% 由此可见文档对于开发者的贡献融入还是有挺大影响的
|
||||
|
||||
\begin{figure*}[h]
|
||||
\centering
|
||||
\includegraphics[width=18cm]{resources/num_comp.png}
|
||||
\caption{Comparison results in terms of popularity features (i.e., contributors, forks, stars)}
|
||||
\label{fig:cmpPF}
|
||||
\end{figure*}
|
||||
% 再加一个表列出假设检验
|
||||
|
||||
\begin{table*}[h]
|
||||
\centering
|
||||
\caption{Mann-Whitney test between including and non-including repositories}
|
||||
\begin{tabular}{@{}r | c c c c c@{}}
|
||||
\bottomrule
|
||||
& \textbf{\DES}& \textbf{\LIC} & \textbf{\RDM} &\textbf{\COD} &\textbf{\CON} \\ \hline
|
||||
\textbf{Contributor} & 0.0757(0.001) & 0.0757(0.001) & 0.0757(0.001)& 0.0757(0.001) & 0.0757(0.001)\\
|
||||
\textbf{Fork} & 0.0757(0.001) & 0.0757(0.001) & 0.0757(0.001) & 0.0757(0.001) & 0.0757(0.001)\\
|
||||
\textbf{Star} & 0.0757(0.001) & 0.0757(0.001) & 0.0757(0.001) & 0.0757(0.001) & 0.0757(0.001)\\
|
||||
\toprule
|
||||
\end{tabular}
|
||||
\label{tab:cmpLG}
|
||||
\end{table*}
|
||||
|
||||
\subsection{Results from survey}
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
\section{the content of community documentations}
|
||||
|
||||
|
||||
\subsection{Results from quantitative analysis}
|
||||
|
||||
|
||||
|
||||
\textit{1) Documentation length}
|
||||
|
||||
length of characters
|
||||
|
||||
number of paragraphs
|
||||
|
||||
|
||||
\textit{2) Documentation structure}
|
||||
|
||||
% 段落层次结构,比如,层级越多,说明文档分级越细致
|
||||
|
||||
|
||||
|
||||
\textit{3) Element diversity}
|
||||
% lic 通常都是纯文本申明,des通常是简短的文本。
|
||||
% 而readme,cod,con所涵盖的内容要更丰富一些,
|
||||
% 利用更多的内容表现形式,如图表、链接、emoji等可以更加有效地传递信息
|
||||
% 因此我们看一下RDM,COD,CON这三个文件的内容元素的多样性如何
|
||||
|
||||
|
||||
other type of content except for text
|
||||
|
||||
figure
|
||||
|
||||
hyper link (github or homepage)
|
||||
|
||||
emoji
|
||||
|
||||
table
|
||||
|
||||
code
|
||||
|
||||
\begin{figure*}[h]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{resources/diversity.png}
|
||||
\caption{Documentation diversity}
|
||||
\label{fig:docDivs}
|
||||
\end{figure*}
|
||||
|
||||
\textit{4) Documentation content}
|
||||
|
||||
license: mit, apache, gpl, etc.
|
||||
% github原本用的是已有的ruby库识别的结果,不过其有些是识别不出来的(other),
|
||||
% 1. 例如使用了双许可证的
|
||||
% 一种是在license文件里声明了 repo-1755
|
||||
% 另一种是由两个license文件。
|
||||
% 2. 文件名字不符合规范等
|
||||
|
||||
readme: what, why, how, who, when
|
||||
|
||||
contributing:
|
||||
|
||||
code\_of\_conduct:
|
||||
|
||||
|
||||
\subsection{Results from survey}
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
% refs:
|
||||
% 1. Co-evolution of project documentation and popularity within GitHub
|
||||
|
||||
\section{the evolvement of community documentations}
|
||||
|
||||
|
||||
\subsection{Results from quantitative analysis}
|
||||
|
||||
\textit{1) documentation creation}
|
||||
|
||||
how long does it take to create a specific documentation after the repository is created.
|
||||
|
||||
|
||||
% 有些识别出多个同类型的文件,这种情况,我们以文件名字较短的那个为准,
|
||||
% 因为一般来说,文件名字较长的是特殊情况,而较短的往往是本源文件
|
||||
% 如多语种的readme,不同类型的license。
|
||||
|
||||
|
||||
% # repo创建前已就已经有了文档,是存在的,08年之前就在开发,只是后来有了github才把代码托管到github上
|
||||
% 这种情况,我们按照延迟为0来对待
|
||||
|
||||
\begin{figure}[h]
|
||||
\centering
|
||||
\includegraphics[width=0.5\textwidth]{resources/creation.png}
|
||||
\caption{The creation latency of documentations (in days)}
|
||||
\label{fig:docDelay}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\textit{2) documentation evolvement}
|
||||
|
||||
|
||||
\noindent \textbf{Evolvement frequency}
|
||||
|
||||
\begin{table*}[h]
|
||||
\centering
|
||||
\caption{Overview of documentation evolvement frequency}
|
||||
\begin{tabular}{r|c c c c c c c c c}
|
||||
\bottomrule
|
||||
&\textbf{Min} &\textbf{25 \%} &\textbf{Median} &\textbf{Mean} &\textbf{75 \%} &\textbf{Max} &\textbf{St.} &\textbf{Dev.} &\textbf{Histogram}\\ \hline
|
||||
\textbf{\LIC} & 2 & 2 & 2 & 2 & 2& 2& 2 & 2 & 2\\
|
||||
\textbf{\RDM} & 2 & 2 & 2 & 2 & 2& 2& 2 & 2 & 2\\
|
||||
\textbf{\COD} & 2 & 2 & 2 & 2 & 2& 2& 2 & 2 & 2\\
|
||||
\textbf{\CON} & 2 & 2 & 2 & 2 & 2& 2& 2 & 2 & 2\\
|
||||
\toprule
|
||||
\end{tabular}
|
||||
\label{tab:alter_frq}
|
||||
\end{table*}
|
||||
|
||||
|
||||
\noindent \textbf{Maintenance group}
|
||||
% 通常都是由哪些人来负责维护这些文档
|
||||
|
||||
\noindent \textbf{Evolvement signal}
|
||||
|
||||
% 分析 commit message
|
||||
% 分词、去停用词(通用的以及自己扩充的),词干,统计词频
|
||||
|
||||
% 通过文本分析来看看都什么时候才会发生evolvement
|
||||
|
||||
|
||||
|
||||
\begin{table}[h]
|
||||
\centering
|
||||
\caption{The most frequent keywords contained in evolvement messages}
|
||||
\begin{tabular}{r|p{7cm}}
|
||||
\bottomrule
|
||||
&\textbf{keyword list}\\ \hline
|
||||
\textbf{\LIC} & update, add, year, initial, fix, remove, change, version, mit, create, new, doc, notice, move, release, use, bump, apache, rename, date\\ \hline
|
||||
\textbf{\RDM} & update, auto, add, fix, merge, link, pull-request, doc, remove, new, version, typo, branch, change, section, use, badge, release, build, master\\ \hline
|
||||
\textbf{\COD} & add, create, update, doc, fix, contributor, covenant, link, email, use, http, move, github, contact, change, address, guideline, markdown, community, document\\ \hline
|
||||
\textbf{\CON} & update, add, doc, fix, link, guideline, guide, merge, remove, test, typo, chang, contribute, use, instruct, document, issue, branch, pull-request, note\\ \hline
|
||||
\toprule
|
||||
\end{tabular}
|
||||
\label{tab:kw}
|
||||
\end{table}
|
||||
|
||||
\subsection{Results from survey}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
\input{4_1}
|
||||
\input{4_2}
|
||||
\input{4_3}
|
||||
\input{4_4}
|
||||
|
||||
% % #有些项目有多个license
|
||||
% !! multiple license
|
||||
|
||||
% !!!!! IF INCLUDING TEMPLATE FILES (LIKE scikit-learn/scikit-learn)
|
||||
|
||||
% !!!!! IF INCLUDING contributor FILES (LIKE /google/guava)
|
||||
|
|
@ -0,0 +1 @@
|
|||
\section{THREATS TO VALIDITY}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
|
||||
\section{Conclusion}
|
||||
\label{sec:Concl}
|
||||
|
||||
\section*{Acknowledgment}
|
||||
We would like to thank the anonymous reviewers for their comments. The research is supported by the National Natural Science Foundation of China (Grant No.61432020, 61303064, 61472430, 61502512) and National Grand R\&D Plan (Grant No. 2016YFB1000805).
|
||||
% The authors would like to thank... more thanks here
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
@inproceedings{Gousios:2014,
|
||||
title={An exploratory study of the pull-based software development model},
|
||||
author={Gousios, Georgios and Pinzger, Martin and Deursen, Arie Van},
|
||||
booktitle={International Conference Software Engineering},
|
||||
pages={345-355},
|
||||
year={2014},
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,578 @@
|
|||
% PICINS.STY --- Style File zum Einbinden von Bildern
|
||||
% Autor: J. Bleser, E. Lang
|
||||
% Hochschulrechenzentrum
|
||||
% Technische Hochschule Darmstadt
|
||||
% !!! Dieses Style-File ist urheberrechtlich geschuetzt !!!
|
||||
% !!! Aenderungen nur mit Zustimmung der Autoren !!!
|
||||
\message{Option `picins' Version 3.0 Sep. 1992, TH Darmstadt/HRZ}
|
||||
\newbox\@BILD%
|
||||
\newbox\@TEXT%
|
||||
\newdimen\d@breite%
|
||||
\newdimen\d@hoehe%
|
||||
\newdimen\d@xoff%
|
||||
\newdimen\d@yoff%
|
||||
\newdimen\d@shad%
|
||||
\newdimen\d@dash%
|
||||
\newdimen\d@boxl%
|
||||
\newdimen\d@pichskip%
|
||||
\newdimen\d@tmp
|
||||
\newdimen\d@tmpa
|
||||
\newdimen\d@bskip
|
||||
\newdimen\hsiz@%
|
||||
\newdimen\p@getot@l%
|
||||
\newcount\c@breite
|
||||
\newcount\c@hoehe
|
||||
\newcount\c@xoff
|
||||
\newcount\c@yoff
|
||||
\newcount\c@pos
|
||||
\newcount\c@shad
|
||||
\newcount\c@dash
|
||||
\newcount\c@boxl
|
||||
\newcount\c@zeilen%
|
||||
\newcount\@changemode%
|
||||
\newcount\c@piccaption%
|
||||
\newcount\c@piccaptionpos%
|
||||
\newcount\c@picpos
|
||||
\newcount\c@whole%
|
||||
\newcount\c@half%
|
||||
\newcount\c@tmp
|
||||
\newcount\c@tmpa
|
||||
\newcount\c@tmpb
|
||||
\newcount\c@tmpc
|
||||
\newcount\c@tmpd
|
||||
\newskip\d@leftskip
|
||||
\newif\if@list \@listfalse%
|
||||
\newif\if@offset%
|
||||
|
||||
|
||||
\c@piccaptionpos=1%
|
||||
\c@picpos=0
|
||||
\d@shad=4pt%
|
||||
\d@dash=4pt%
|
||||
\d@boxl=10pt%
|
||||
\d@pichskip=1em%
|
||||
\@changemode=0%
|
||||
\def\@captype{figure}%
|
||||
\let\old@par=\par%
|
||||
|
||||
\def\pichskip#1{\d@pichskip #1\relax}
|
||||
|
||||
|
||||
\def\shadowthickness#1{\d@shad #1\relax}
|
||||
|
||||
|
||||
\def\dashlength#1{\d@dash #1\relax}
|
||||
|
||||
|
||||
\def\boxlength#1{\d@boxl #1\relax}
|
||||
|
||||
|
||||
\def\picchangemode{\@changemode=1}%
|
||||
\def\nopicchangemode{\@changemode=0}%
|
||||
|
||||
|
||||
\def\piccaptionoutside{\c@piccaptionpos=1}%
|
||||
\def\piccaptioninside{\c@piccaptionpos=2}%
|
||||
\def\piccaptionside{\c@piccaptionpos=3}%
|
||||
\def\piccaptiontopside{\c@piccaptionpos=4}%
|
||||
|
||||
\def\piccaption{\@ifnextchar [{\@piccaption}{\@piccaption[]}}
|
||||
\def\@piccaption[#1]#2{\c@piccaption=1\def\sh@rtf@rm{#1}\def\capti@nt@xt{#2}}
|
||||
\def\make@piccaption{%
|
||||
\hsiz@\d@breite%
|
||||
\ifnum\c@piccaptionpos=2%
|
||||
\advance\hsiz@ -2\fboxsep%
|
||||
\fi%
|
||||
\ifnum\c@piccaptionpos>2%
|
||||
\hsiz@\hsize\advance\hsiz@-\d@breite\advance\hsiz@-\d@pichskip%
|
||||
\fi%
|
||||
\setbox\@TEXT=\vbox{\hsize\hsiz@\caption[\sh@rtf@rm]{\capti@nt@xt}}%
|
||||
}
|
||||
|
||||
|
||||
|
||||
\def\newcaption{\refstepcounter\@captype\@dblarg{\@newcaption\@captype}}
|
||||
\long\def\@newcaption#1[#2]#3{%
|
||||
\old@par%
|
||||
\addcontentsline{\csname ext@#1\endcsname }{#1}%
|
||||
{\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}
|
||||
\begingroup\@parboxrestore\normalsize%
|
||||
\@newmakecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\old@par%
|
||||
\endgroup%
|
||||
}
|
||||
\long\def\@newmakecaption#1#2{%
|
||||
\vskip 10pt%
|
||||
\setbox\@tempboxa \hbox {#1: #2}%
|
||||
\ifdim \wd\@tempboxa >\hsize%
|
||||
\setbox0=\hbox{#1: }\dimen0=\hsize\advance\dimen0 by-\wd0
|
||||
\setbox1=\vtop{\hsize=\dimen0 #2}
|
||||
\hbox{\box0 \box1}
|
||||
\par
|
||||
\else \hbox to\hsize {\hfil \box \@tempboxa \hfil}
|
||||
\fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
\def\parpic{%
|
||||
\@ifnextchar ({\iparpic}{\iparpic(0pt,0pt)}
|
||||
}
|
||||
\def\iparpic(#1,#2){%
|
||||
\@ifnextchar ({\@offsettrue\iiparpic(#1,#2)}%
|
||||
{\@offsetfalse\iiparpic(#1,#2)(0pt,0pt)}
|
||||
}
|
||||
\def\iiparpic(#1,#2)(#3,#4){%
|
||||
\@ifnextchar [{\iiiparpic(#1,#2)(#3,#4)}{\iiiparpic(#1,#2)(#3,#4)[l]}
|
||||
}
|
||||
\def\iiiparpic(#1,#2)(#3,#4)[#5]{%
|
||||
\@ifnextchar [{\ivparpic(#1,#2)(#3,#4)[#5]}{\ivparpic(#1,#2)(#3,#4)[#5][]}
|
||||
}
|
||||
\def\ivparpic(#1,#2)(#3,#4)[#5][#6]#7{%
|
||||
\let\par=\old@par\par%
|
||||
\hangindent0pt\hangafter1%
|
||||
\setbox\@BILD=\hbox{#7}%
|
||||
\d@breite=#1\d@breite=\the\d@breite%
|
||||
\ifdim\d@breite=0pt\d@breite=\wd\@BILD\fi%
|
||||
\c@breite=\d@breite\divide\c@breite by65536%
|
||||
\multiply\c@piccaption\c@piccaptionpos%
|
||||
\d@hoehe=#2\d@hoehe=\the\d@hoehe%
|
||||
\ifdim\d@hoehe=0pt\d@hoehe=\ht\@BILD\advance\d@hoehe by\dp\@BILD\fi%
|
||||
\c@hoehe=\d@hoehe\divide\c@hoehe by65536%
|
||||
\d@xoff=#3\c@xoff=\d@xoff\divide\c@xoff by65536%
|
||||
\d@yoff=\d@hoehe%
|
||||
\advance\d@yoff by-#4\c@yoff=\d@yoff\divide\c@yoff by65536%
|
||||
\c@pos=1\unitlength1pt%
|
||||
\if@offset%
|
||||
\setbox\@BILD=\hbox{%
|
||||
\begin{picture}(\c@breite,\c@hoehe)%
|
||||
\put(0,0){\makebox(\c@breite,\c@hoehe){}}%
|
||||
\put(\c@xoff,\c@yoff){\box\@BILD}%
|
||||
\end{picture}%
|
||||
}%
|
||||
\else%
|
||||
\setbox\@BILD=\hbox{%
|
||||
\begin{picture}(\c@breite,\c@hoehe)%
|
||||
\put(0,0){\makebox(\c@breite,\c@hoehe)[#6]{\box\@BILD}}%
|
||||
\end{picture}%
|
||||
}%
|
||||
\fi%
|
||||
\ifnum\c@piccaption=2%
|
||||
\make@piccaption%
|
||||
\advance\d@hoehe\ht\@TEXT\advance\d@hoehe\dp\@TEXT%
|
||||
\c@hoehe=\d@hoehe\divide\c@hoehe by65536%
|
||||
\setbox\@BILD=\vbox{\box\@BILD\vspace{-5pt}%
|
||||
\hbox{\hspace{\fboxsep}\box\@TEXT}%
|
||||
\vspace{4pt}}%
|
||||
\fi%
|
||||
\@tfor\@tempa := #5\do{%
|
||||
\if\@tempa f\setbox\@BILD=\hbox{\Rahmen(\c@breite,\c@hoehe){\box\@BILD}}\fi%
|
||||
\if\@tempa s\setbox\@BILD=\hbox{\Schatten(\c@breite,\c@hoehe){\box\@BILD}}\fi%
|
||||
\if\@tempa o\setbox\@BILD=\hbox{\Oval(\c@breite,\c@hoehe){\box\@BILD}}\fi%
|
||||
\if\@tempa d\setbox\@BILD=\hbox{\Strich(\c@breite,\c@hoehe){\box\@BILD}}\fi%
|
||||
\if\@tempa x\setbox\@BILD=\hbox{\Kasten(\c@breite,\c@hoehe){\box\@BILD}}\fi%
|
||||
\if\@tempa l\c@pos=1\fi%
|
||||
\if\@tempa r\c@pos=2\fi%
|
||||
}%
|
||||
\ifnum\c@piccaption=1%
|
||||
\make@piccaption%
|
||||
\advance\d@hoehe\ht\@TEXT\advance\d@hoehe\dp\@TEXT%
|
||||
\c@hoehe=\d@hoehe\divide\c@hoehe by65536%
|
||||
\setbox\@BILD=\vbox{\box\@BILD\vspace{-5pt}\hbox{\box\@TEXT}\vspace{4pt}}%
|
||||
\fi%
|
||||
\ifodd\count0\c@picpos=0\else\c@picpos=\@changemode\fi%
|
||||
\pagetotal=\the\pagetotal%
|
||||
\d@tmp=\pagegoal\advance\d@tmp by-\pagetotal\advance\d@tmp by-\baselineskip%
|
||||
\ifdim\d@hoehe>\d@tmp%
|
||||
\vskip 0pt plus\d@hoehe\relax\pagebreak[3]\vskip 0pt plus-\d@hoehe\relax%
|
||||
\ifnum\c@picpos=1\c@picpos=0\else\c@picpos=\@changemode\fi%
|
||||
\fi%
|
||||
\ifnum\c@picpos=1\ifnum\c@pos=1\c@pos=2\else\c@pos=1\fi\fi%
|
||||
\ifnum\@listdepth>0
|
||||
\@listtrue\parshape 0%
|
||||
\advance\hsize -\rightmargin%
|
||||
\d@leftskip \leftskip%
|
||||
\leftskip \@totalleftmargin%
|
||||
\if@inlabel\rule{\linewidth}{0pt}\vskip-\baselineskip\relax\fi%
|
||||
\else\@listfalse\medskip%
|
||||
\fi%
|
||||
\if@list\d@tmpa=\linewidth\else\d@tmpa=\hsize\fi%
|
||||
\ifnum\c@piccaption=3%
|
||||
\make@piccaption%
|
||||
\d@tmp\ht\@TEXT\advance\d@tmp\dp\@TEXT%
|
||||
\ifdim\d@hoehe>\d@tmp%
|
||||
\setbox\@TEXT=\vbox to\d@hoehe{\vfill\box\@TEXT\vspace{.2\baselineskip}\vfill}%
|
||||
\else%
|
||||
\setbox\@BILD=\vbox to\d@tmp{\vfill\box\@BILD\vfill}%
|
||||
\d@hoehe\d@tmp%
|
||||
\fi%
|
||||
\fi%
|
||||
\ifnum\c@piccaption=4%
|
||||
\make@piccaption%
|
||||
\d@tmp\ht\@TEXT\advance\d@tmp\dp\@TEXT%
|
||||
\setbox\@TEXT=\vbox to\d@hoehe{\vspace{-10pt}\box\@TEXT\vfil}%
|
||||
\advance\d@hoehe-\d@tmp%
|
||||
\fi%
|
||||
\ifnum\c@pos=1\d@tmpa=0pt%
|
||||
\ifnum\c@piccaption>2%
|
||||
\setbox\@BILD=\hbox{\box\@BILD\hspace{\d@pichskip}\hbox{\box\@TEXT}}%
|
||||
\fi%
|
||||
\else\advance\d@tmpa by-\wd\@BILD\d@breite=-\d@breite%
|
||||
\ifnum\c@piccaption>2%
|
||||
\d@tmpa=0pt%
|
||||
\setbox\@BILD=\hbox{\hbox{\box\@TEXT}\hspace{\d@pichskip}\box\@BILD}%
|
||||
\fi%
|
||||
\fi%
|
||||
\p@getot@l\the\pagetotal%
|
||||
\d@bskip\d@hoehe\advance\d@bskip by\parskip\advance\d@bskip by.3\baselineskip%
|
||||
{\noindent\hspace*{\d@tmpa}\relax%
|
||||
\box\@BILD\nopagebreak\vskip-\d@bskip\relax\nopagebreak}%
|
||||
\d@tmp=-\d@hoehe\divide\d@tmp by\baselineskip%
|
||||
\c@zeilen=\d@tmp\advance\c@zeilen by-1%
|
||||
\ifdim\d@breite<0pt\advance\d@breite by-\d@pichskip%
|
||||
\else\advance\d@breite by\d@pichskip%
|
||||
\fi%
|
||||
\hangindent=\d@breite%
|
||||
\hangafter=\c@zeilen%
|
||||
\let\par=\x@par%
|
||||
\ifnum\c@piccaption=3%
|
||||
\hangindent0pt\hangafter1\let\par=\old@par%
|
||||
\vskip\d@hoehe\vskip.2\baselineskip%
|
||||
\fi%
|
||||
\c@piccaption=0%
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
\newdimen\ptoti
|
||||
\newdimen\ptotii
|
||||
\def\x@par{%
|
||||
\ptoti\pagetotal%
|
||||
\old@par%
|
||||
\ptotii\pagetotal%
|
||||
\ifdim\ptoti=\ptotii%
|
||||
\d@tmp\d@hoehe%
|
||||
\else%
|
||||
\d@tmp\baselineskip%
|
||||
\multiply\d@tmp by\prevgraf%
|
||||
\advance\d@tmp by\parskip%
|
||||
\global\advance\d@hoehe by-\d@tmp\d@tmp=\d@hoehe%
|
||||
\fi%
|
||||
\ifdim\d@hoehe>0pt%
|
||||
\divide\d@tmp by\baselineskip\c@zeilen=-\d@tmp\advance\c@zeilen by-1%
|
||||
\c@zeilen=\the\c@zeilen%
|
||||
\else\c@zeilen=0
|
||||
\fi
|
||||
\ifnum\c@zeilen<0\hangafter=\c@zeilen\hangindent=\d@breite%
|
||||
\else\let\par=\old@par%
|
||||
\hangindent 0pt%
|
||||
\leftskip \d@leftskip%
|
||||
\if@list\parshape \@ne \@totalleftmargin \linewidth%
|
||||
\advance\hsize \rightmargin%
|
||||
\fi%
|
||||
\fi%
|
||||
}
|
||||
|
||||
|
||||
\def\picskip#1{%
|
||||
\let\par=\old@par%
|
||||
\par%
|
||||
\pagetotal\the\pagetotal%
|
||||
\c@tmp=#1\relax%
|
||||
\ifnum\c@tmp=0%
|
||||
\d@tmp\baselineskip\multiply\d@tmp by\prevgraf\advance\d@tmp\parskip%
|
||||
\ifdim\p@getot@l<\pagetotal
|
||||
\advance\d@hoehe by-\d@tmp\advance\d@hoehe by1ex%
|
||||
\ifdim\d@hoehe>0pt\vspace*{\d@hoehe}\fi%
|
||||
\fi%
|
||||
\ifdim\p@getot@l=\pagetotal%
|
||||
\advance\d@hoehe by-\d@tmp\advance\d@hoehe by1ex%
|
||||
\ifdim\d@hoehe>0pt\vspace*{\d@hoehe}\fi%
|
||||
\fi%
|
||||
\else\hangafter=-\c@tmp\hangindent=\d@breite%
|
||||
\fi%
|
||||
\leftskip \d@leftskip%
|
||||
\if@list\parshape \@ne \@totalleftmargin \linewidth%
|
||||
\advance\hsize \rightmargin%
|
||||
\fi%
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
\def\hpic{%
|
||||
\@ifnextchar ({\ihpic}{\ihpic(0pt,0pt)}
|
||||
}
|
||||
\def\ihpic(#1,#2){%
|
||||
\@ifnextchar ({\@offsettrue\iihpic(#1,#2)}%
|
||||
{\@offsetfalse\iihpic(#1,#2)(0pt,0pt)}
|
||||
}
|
||||
\def\iihpic(#1,#2)(#3,#4){%
|
||||
\@ifnextchar [{\iiihpic(#1,#2)(#3,#4)}{\iiihpic(#1,#2)(#3,#4)[l]}
|
||||
}
|
||||
\def\iiihpic(#1,#2)(#3,#4)[#5]{%
|
||||
\@ifnextchar [{\ivhpic(#1,#2)(#3,#4)[#5]}{\ivhpic(#1,#2)(#3,#4)[#5][]}
|
||||
}
|
||||
\def\ivhpic(#1,#2)(#3,#4)[#5][#6]#7{%
|
||||
\setbox\@BILD=\hbox{#7}%
|
||||
\d@breite=#1\d@breite=\the\d@breite%
|
||||
\ifdim\d@breite=0pt\d@breite=\wd\@BILD\fi%
|
||||
\c@breite=\d@breite\divide\c@breite by65536%
|
||||
\d@hoehe=#2\d@hoehe=\the\d@hoehe%
|
||||
\ifdim\d@hoehe=0pt\d@hoehe=\ht\@BILD\advance\d@hoehe by\dp\@BILD\fi%
|
||||
\c@hoehe=\d@hoehe\divide\c@hoehe by65536%
|
||||
\d@xoff=#3\c@xoff=\d@xoff\divide\c@xoff by65536%
|
||||
\d@yoff=\d@hoehe%
|
||||
\advance\d@yoff by-#4\c@yoff=\d@yoff\divide\c@yoff by65536%
|
||||
\c@pos=0\d@tmpa=\parindent\parindent=0pt\unitlength1pt%
|
||||
\if@offset
|
||||
\setbox\@BILD=\hbox{%
|
||||
\begin{picture}(\c@breite,\c@hoehe)%
|
||||
\put(0,0){\makebox(\c@breite,\c@hoehe){}}%
|
||||
\put(\c@xoff,\c@yoff){\box\@BILD}%
|
||||
\end{picture}%
|
||||
}%
|
||||
\else%
|
||||
\setbox\@BILD=\hbox{%
|
||||
\begin{picture}(\c@breite,\c@hoehe)%
|
||||
\put(0,0){\makebox(\c@breite,\c@hoehe)[#6]{\box\@BILD}}%
|
||||
\end{picture}%
|
||||
}%
|
||||
\fi%
|
||||
\@tfor\@tempa := #5\do{%
|
||||
\if\@tempa f\setbox\@BILD=\hbox{\Rahmen(\c@breite,\c@hoehe){\box\@BILD}}\fi%
|
||||
\if\@tempa s\setbox\@BILD=\hbox{\Schatten(\c@breite,\c@hoehe){\box\@BILD}}\fi%
|
||||
\if\@tempa o\setbox\@BILD=\hbox{\Oval(\c@breite,\c@hoehe){\box\@BILD}}\fi%
|
||||
\if\@tempa d\setbox\@BILD=\hbox{\Strich(\c@breite,\c@hoehe){\box\@BILD}}\fi%
|
||||
\if\@tempa x\setbox\@BILD=\hbox{\Kasten(\c@breite,\c@hoehe){\box\@BILD}}\fi%
|
||||
\if\@tempa t\c@pos=1\fi%
|
||||
\if\@tempa b\c@pos=2\fi%
|
||||
}%
|
||||
\ifnum\c@pos=0\parbox{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi%
|
||||
\ifnum\c@pos=1\parbox[t]{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi%
|
||||
\ifnum\c@pos=2\parbox[b]{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi%
|
||||
\parindent=\d@tmpa%
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
\def\Rahmen(#1,#2)#3{%
|
||||
\c@whole=\@wholewidth\divide\c@whole by65536%
|
||||
\c@half=\@halfwidth\divide\c@half by65536%
|
||||
\c@tmpa=#1\advance\c@tmpa by\c@whole\advance\c@tmpa by\c@whole%
|
||||
\c@tmpb=#2\advance\c@tmpb by\c@whole\advance\c@tmpb by\c@whole%
|
||||
\begin{picture}(\c@tmpa,\c@tmpb)%
|
||||
\put(\c@whole,\c@half){\framebox(#1,#2){#3}}%
|
||||
\end{picture}%
|
||||
\global\advance\d@breite by2\@wholewidth%
|
||||
\global\advance\d@hoehe by2\@wholewidth%
|
||||
}
|
||||
|
||||
|
||||
\def\Schatten(#1,#2)#3{%
|
||||
\c@whole=\@wholewidth\divide\c@whole by65536%
|
||||
\c@half=\@halfwidth\divide\c@half by65536%
|
||||
\c@shad=\d@shad\divide\c@shad by65536%
|
||||
\c@tmp=\c@whole\advance\c@tmp by\c@whole\c@tmpd=\c@tmp%
|
||||
\advance\c@tmp by\c@shad%
|
||||
\advance\c@tmpd by#1%
|
||||
\advance\c@half by\c@shad%
|
||||
\c@tmpa=#1\advance\c@tmpa by\c@tmp%
|
||||
\c@tmpb=#2\advance\c@tmpb by\c@tmp%
|
||||
\begin{picture}(\c@tmpa,\c@tmpb)%
|
||||
\put(\c@whole,\c@half){\framebox(#1,#2){#3}}%
|
||||
\put(\c@shad,0){\rule{\c@tmpd pt}{\c@shad pt}}%
|
||||
\put(\c@tmpd,0){\rule{\c@shad pt}{#2 pt}}%
|
||||
\end{picture}%
|
||||
\global\advance\d@breite by2\@wholewidth\global\advance\d@breite by\d@shad%
|
||||
\global\advance\d@hoehe by2\@wholewidth\global\advance\d@hoehe by\d@shad%
|
||||
}
|
||||
|
||||
|
||||
\def\Oval(#1,#2)#3{%
|
||||
\@wholewidth=0.4pt%
|
||||
\c@tmpa=\the#1\divide\c@tmpa by2%
|
||||
\c@tmpb=\the#2\divide\c@tmpb by2%
|
||||
\begin{picture}(#1,#2)%
|
||||
\put(\c@tmpa,\c@tmpb){\oval(#1,#2)}%
|
||||
\put(0.4,0.4){#3}%
|
||||
\end{picture}%
|
||||
\global\advance\d@breite by1pt\global\advance\d@hoehe by1pt%
|
||||
}
|
||||
|
||||
|
||||
\def\Strich(#1,#2)#3{%
|
||||
\c@whole=\@wholewidth\divide\c@whole by65536%
|
||||
\c@half=\@halfwidth\divide\c@half by65536%
|
||||
\c@dash=\d@dash\divide\c@dash by65536%
|
||||
\c@tmp=\c@whole\advance\c@tmp by\c@whole%
|
||||
\c@tmpa=#1\advance\c@tmpa by\c@tmp%
|
||||
\c@tmpb=#2\advance\c@tmpb by\c@tmp%
|
||||
\c@tmpc=#1\advance\c@tmpc by\c@whole%
|
||||
\c@tmpd=#2\advance\c@tmpd by\c@whole%
|
||||
\begin{picture}(\c@tmpa,\c@tmpb)%
|
||||
\put(\c@half,\c@half){\dashbox{\c@dash}(\c@tmpc,\c@tmpd){#3}}%
|
||||
\end{picture}%
|
||||
\global\advance\d@breite by2\@wholewidth%
|
||||
\global\advance\d@hoehe by2\@wholewidth%
|
||||
}
|
||||
|
||||
|
||||
\def\Kasten(#1,#2)#3{%
|
||||
\@wholewidth=0.4pt%
|
||||
\c@boxl=\d@boxl\divide\c@boxl by65536\c@boxl=\the\c@boxl%
|
||||
\c@tmpa=#1\advance\c@tmpa by\c@boxl%
|
||||
\c@tmpb=#2\advance\c@tmpb by\c@boxl%
|
||||
\c@tmp=#2%
|
||||
\begin{picture}(\c@tmpa,\c@tmpb)%
|
||||
\put(0,\c@boxl){\framebox(#1,#2){#3}}%
|
||||
\put(\c@boxl,0){\line(-1,1){\c@boxl}}%
|
||||
\put(\c@boxl,0){\line(1,0){#1}\line(-1,1){\c@boxl}}%
|
||||
\put(\c@boxl,0){\put(#1,0){\line(0,1){\c@tmp}%
|
||||
\put(0,\c@tmp){\line(-1,1){\c@boxl}}}}%
|
||||
\end{picture}%
|
||||
\global\advance\d@breite by\d@boxl%
|
||||
\global\advance\d@hoehe by\d@boxl%
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
\newbox\env@box%
|
||||
\newdimen\d@envdp
|
||||
\newcount\c@hsize
|
||||
\newcount\c@envdp
|
||||
\newdimen\d@envb
|
||||
|
||||
\long\def\frameenv{\@ifnextchar [{\@frameenv}{\@frameenv[\textwidth]}}
|
||||
\long\def\@frameenv[#1]{%
|
||||
\hsiz@=\textwidth \textwidth=#1 \d@envb=#1
|
||||
\advance\textwidth by-2\@wholewidth
|
||||
\advance\textwidth by-2\fboxsep
|
||||
\hsize=\textwidth \linewidth=\textwidth
|
||||
\setbox\env@box=\vbox\bgroup}%
|
||||
\def\endframeenv{%
|
||||
\egroup%
|
||||
\hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@
|
||||
\c@breite=\d@envb \divide\c@breite by65536
|
||||
\advance\d@envb by-2\@wholewidth
|
||||
\c@hsize=\d@envb \divide\c@hsize by65536%
|
||||
\d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box%
|
||||
\advance\d@envdp by2\fboxsep%
|
||||
\d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth
|
||||
\c@hoehe=\d@hoehe \divide\c@hoehe by65536
|
||||
\c@envdp=\d@envdp \divide\c@envdp by65536%
|
||||
\c@tmp=\@wholewidth \divide\c@tmp by65536
|
||||
\vskip\@wholewidth%
|
||||
\unitlength 1pt\noindent%
|
||||
\begin{picture}(\c@breite,\c@hoehe)(0,0)
|
||||
\put(\c@tmp,\c@tmp){\framebox(\c@hsize,\c@envdp){\box\env@box}}
|
||||
\end{picture}%
|
||||
}
|
||||
|
||||
|
||||
|
||||
\long\def\shadowenv{\@ifnextchar [{\@shadowenv}{\@shadowenv[\textwidth]}}
|
||||
\long\def\@shadowenv[#1]{%
|
||||
\hsiz@=\textwidth \textwidth=#1 \d@envb=#1
|
||||
\advance\textwidth by-2\@wholewidth
|
||||
\advance\textwidth by-2\fboxsep
|
||||
\advance\textwidth by-\d@shad%
|
||||
\hsize=\textwidth \linewidth=\textwidth
|
||||
\setbox\env@box=\vbox\bgroup}%
|
||||
\def\endshadowenv{%
|
||||
\egroup
|
||||
\hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@
|
||||
\d@tmpa=\d@envb
|
||||
\c@breite=\d@envb \divide\c@breite by65536
|
||||
\advance\d@envb by-2\@wholewidth \advance\d@envb by-\d@shad
|
||||
\c@hsize=\d@envb \divide\c@hsize by65536%
|
||||
\d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box%
|
||||
\advance\d@envdp by2\fboxsep%
|
||||
\c@envdp=\d@envdp \divide\c@envdp by65536%
|
||||
\d@hoehe=\d@envdp
|
||||
\advance\d@hoehe by2\@wholewidth \advance\d@hoehe by\d@shad
|
||||
\c@hoehe=\d@hoehe \divide\c@hoehe by65536
|
||||
\c@shad =\d@shad \divide\c@shad by65536
|
||||
\c@tmp=\@wholewidth \divide\c@tmp by65536
|
||||
\advance\d@tmpa by-2\d@shad
|
||||
\c@xoff =\d@tmpa \divide\c@xoff by65536
|
||||
\advance\c@xoff by\c@shad \advance\c@xoff by-1
|
||||
\advance\d@envdp by\@wholewidth
|
||||
\vskip\@halfwidth
|
||||
\unitlength 1pt\noindent%
|
||||
\begin{picture}(\c@breite,\c@hoehe)(0,0)
|
||||
\put(\c@tmp,\c@shad){\framebox(\c@hsize,\c@envdp){\box\env@box}}
|
||||
\put(\c@shad,0){\rule{\d@tmpa}{\d@shad}}%
|
||||
\put(\c@xoff,0){\rule{\d@shad}{\d@envdp}}%
|
||||
\end{picture}%
|
||||
\vskip\@halfwidth
|
||||
}
|
||||
|
||||
|
||||
\long\def\dashenv{\@ifnextchar [{\@dashenv}{\@dashenv[\textwidth]}}
|
||||
\long\def\@dashenv[#1]{%
|
||||
\hsiz@=\textwidth \textwidth=#1 \d@envb=#1
|
||||
\advance\textwidth by-2\@wholewidth \advance\textwidth by-2\fboxsep
|
||||
\hsize=\textwidth \linewidth=\textwidth
|
||||
\setbox\env@box=\vbox\bgroup}%
|
||||
\long\def\enddashenv{%
|
||||
\egroup
|
||||
\hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@
|
||||
\c@breite=\d@envb \divide\c@breite by65536
|
||||
\advance\d@envb by-\@wholewidth
|
||||
\c@hsize=\d@envb \divide\c@hsize by65536%
|
||||
\d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box%
|
||||
\advance\d@envdp by2\fboxsep%
|
||||
\advance\d@envdp by\@wholewidth
|
||||
\d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth
|
||||
\c@hoehe=\d@hoehe \divide\c@hoehe by65536
|
||||
\c@envdp=\d@envdp \divide\c@envdp by65536%
|
||||
\c@dash=\d@dash \divide\c@dash by65536%
|
||||
\c@whole=\@wholewidth \divide\c@whole by65536
|
||||
\c@half=\@halfwidth \divide\c@half by 65536
|
||||
\noindent\unitlength 1pt
|
||||
\begin{picture}(\c@breite,\c@hoehe)(0,0)
|
||||
\put(\c@half,\c@whole){\dashbox{\c@dash}(\c@hsize,\c@envdp){\box\env@box}}
|
||||
\end{picture}%
|
||||
}
|
||||
|
||||
|
||||
\long\def\ovalenv{\@ifnextchar [{\@ovalenv}{\@ovalenv[\textwidth]}}%
|
||||
\long\def\@ovalenv[#1]{%
|
||||
\hsiz@=\textwidth \textwidth=#1 \d@envb=#1
|
||||
\advance\textwidth by-4\fboxsep
|
||||
\hsize=\textwidth \linewidth=\textwidth
|
||||
\setbox\env@box=\vbox\bgroup}%
|
||||
\long\def\endovalenv{%
|
||||
\egroup
|
||||
\hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@
|
||||
\@wholewidth=0.4pt
|
||||
\c@breite=\d@envb \divide\c@breite by65536
|
||||
\advance\d@envb by-2\@wholewidth
|
||||
\c@hsize=\d@envb \divide\c@hsize by65536%
|
||||
\d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box%
|
||||
\advance\d@envdp by4\fboxsep%
|
||||
\c@envdp=\d@envdp \divide\c@envdp by65536%
|
||||
\d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth
|
||||
\c@hoehe=\d@hoehe \divide\c@hoehe by65536
|
||||
\c@tmpa=\c@hsize \divide\c@tmpa by2%
|
||||
\c@tmpb=\c@envdp \divide\c@tmpb by2%
|
||||
\d@tmpa=2\fboxsep \advance\d@tmpa by\@wholewidth
|
||||
\c@xoff=\d@tmpa \divide\c@xoff by65536%
|
||||
\advance\d@tmpa by\dp\env@box
|
||||
\c@yoff=\d@tmpa \divide\c@yoff by65536%
|
||||
\unitlength 1pt\noindent
|
||||
\begin{picture}(\c@breite,\c@hoehe)(0,0)
|
||||
\put(\c@tmpa,\c@tmpb){\oval(\c@hsize,\c@envdp)}
|
||||
\put(\c@xoff,\c@yoff){\box\env@box}%
|
||||
\end{picture}%
|
||||
}
|
||||
|
|
@ -0,0 +1,113 @@
|
|||
|
||||
\documentclass{SCIS2021}
|
||||
|
||||
\usepackage{graphicx}
|
||||
\usepackage{subfig}
|
||||
\usepackage{color,soul}
|
||||
\usepackage{colortbl}
|
||||
\usepackage{enumitem}
|
||||
\usepackage{multirow,booktabs}
|
||||
\usepackage{caption}
|
||||
\usepackage{dcolumn}
|
||||
\usepackage{xspace}
|
||||
\usepackage{balance}
|
||||
\usepackage{bm}
|
||||
\usepackage{cite}
|
||||
\usepackage{url}
|
||||
\usepackage{framed}
|
||||
\usepackage{hhline}
|
||||
\usepackage{setspace}
|
||||
\newcommand{\tabincell}[2]{\begin{tabular}{@{}#1@{}}#2\end{tabular}}
|
||||
|
||||
|
||||
\begin{document}
|
||||
|
||||
\ArticleType{RESEARCH PAPER}
|
||||
%\SpecialTopic{}
|
||||
%\luntan
|
||||
\Year{2020}
|
||||
\Month{}
|
||||
\Vol{}
|
||||
\No{}
|
||||
\DOI{}
|
||||
\ArtNo{}
|
||||
\ReceiveDate{}
|
||||
\ReviseDate{}
|
||||
\AcceptDate{}
|
||||
\OnlineDate{}
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
%%% title: <20><><EFBFBD><EFBFBD>
|
||||
%%% \title{title}{title for citation}
|
||||
\title{What a Healthy Community: An Overview of OSS Community Profile Documentation in GitHub}{What a Healthy Community: An Overview of OSS Community Profile Documentation in GitHub}
|
||||
|
||||
%%% Corresponding author: ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
%%% \author[number]{Full name}{{email@xxx.com}}
|
||||
%%% General author: һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
%%% \author[number]{Full name}{}
|
||||
\author[1]{Aaa AUTHOR}{}
|
||||
\author[1,2]{Bbb AUTHOR}{{bauthor@xxx.com}}
|
||||
\author[2]{Ccc AUTHOR}{}
|
||||
\author[3]{Ddd AUTHOR}{}
|
||||
|
||||
%%% Author information for page head. ҳü<D2B3>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
\AuthorMark{Author A}
|
||||
|
||||
%%% Authors for citation. <20><>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
\AuthorCitation{Author A, Author B, Author C, et al}
|
||||
|
||||
%%% Authors' contribution. ͬ<>ȹ<EFBFBD><C8B9><EFBFBD>
|
||||
%\contributions{Authors A and B have the same contribution to this work.}
|
||||
|
||||
%%% Address. <20><>ַ
|
||||
%%% \address[number]{Affiliation, City {\rm Postcode}, Country}
|
||||
\address[1]{Affiliation, City {\rm 000000}, Country}
|
||||
\address[2]{Affiliation, City {\rm 000000}, Country}
|
||||
\address[3]{Affiliation, City {\rm 000000}, Country}
|
||||
|
||||
%%% Abstract. ժҪ
|
||||
\abstract{An abstract (100--200 words) is a summary of the content of the manuscript. It should briefly describe the research purpose, method, result and conclusion. The extremely professional terms, special signals, figures, tables, chemical structural formula, and equations should be avoided here, and citation of references is not allowed.}
|
||||
|
||||
%%% Keywords. <20>ؼ<EFBFBD><D8BC><EFBFBD>
|
||||
\keywords{keyword1, keyword2, keyword3, keyword4, keyword5}
|
||||
|
||||
\maketitle
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%% The main text. <20><><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\input{1_introduction}
|
||||
\input{2_background}
|
||||
\input{3_method}
|
||||
\input{4_result}
|
||||
\input{5_threats}
|
||||
\input{6_conlusion}
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%% Acknowledgements. <20><>л
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\Acknowledgements{This work was supported by National Natural Science Foundation of China (Grant Nos. 00000000 and 11111111).}
|
||||
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%% Reference section. <20>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD>
|
||||
%%% citation in the content using "some words~\cite{1,2}".
|
||||
%%% ~ is needed to make the reference number is on the same line with the word before it.
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\bibliographystyle{plain}
|
||||
\bibliography{9_ref}
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%% Appendix sections. <20><>¼<EFBFBD>½<EFBFBD>, <20>DZ<EFBFBD>ѡ
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%\begin{appendix}
|
||||
%\section{Name}
|
||||
|
||||
%\end{appendix}
|
||||
|
||||
\end{document}
|
||||
Loading…
Reference in New Issue