convert into scis template

This commit is contained in:
whystar 2020-07-27 16:05:46 +08:00
parent e27d4f891f
commit ada5b6fcf5
28 changed files with 8266 additions and 484 deletions

7
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,7 @@
{
"ltex.disabledRules": {
"en-US": [
"ENGLISH_WORD_REPEAT_RULE"
]
}
}

View File

@ -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{****}

View File

@ -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
View File

@ -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
View File

@ -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
View File

@ -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通常是简短的文本。
% 而readmecodcon所涵盖的内容要更丰富一些
% 利用更多的内容表现形式如图表、链接、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
View File

@ -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}

View File

@ -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)

View File

@ -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

534
SCIS2021.cls Executable file
View File

@ -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}
%:editorialcitation
\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

View File

@ -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()

View File

@ -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

View File

@ -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}

10
old_tex/2_background.tex Normal file
View File

@ -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}

162
old_tex/3_method.tex Normal file
View File

@ -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.}
% 发出情况,回复情况
% 最后给出调查问卷的链接

162
old_tex/4_1.tex Normal file
View File

@ -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}

36
old_tex/4_2.tex Normal file
View File

@ -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}

65
old_tex/4_3.tex Normal file
View File

@ -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通常是简短的文本。
% 而readmecodcon所涵盖的内容要更丰富一些
% 利用更多的内容表现形式如图表、链接、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}

82
old_tex/4_4.tex Normal file
View File

@ -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}

11
old_tex/4_result.tex Normal file
View File

@ -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)

1
old_tex/5_threats.tex Normal file
View File

@ -0,0 +1 @@
\section{THREATS TO VALIDITY}

7
old_tex/6_conlusion.tex Normal file
View File

@ -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

7
old_tex/9_ref.bib Normal file
View File

@ -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},
}

6347
old_tex/IEEEtran.cls Executable file

File diff suppressed because it is too large Load Diff

578
picins.sty Normal file
View File

@ -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}%
}

113
scis_paper.tex Executable file
View File

@ -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}