論文の章別文字数とページ数を計算
論文全体の分量は、大きな総数だけを見るより、章ごとの具体的な目標から組み立てると管理しやすくなります。各章の予定語数を入力し、標準的な行間を選び、前付け、参考文献、付録のページ数を加えてください。計算結果には総語数、章別ページ数、文書全体の推定ページ数が表示されます。前提条件も明示されるため、所属機関の書式規定と比較できます。
無料で実行
目次を測定可能な執筆計画にします
提出予定の章を、仮題の段階でもすべて登録してください。序論は研究課題と貢献を示し、先行研究章は既存研究を整理し、方法章は手続きを説明するなど、役割に応じた語数目標を設定します。章別の内訳があれば、先行研究が全体に対して長すぎる場合や、考察に十分な余裕がない場合を執筆前に把握できます。計算値を最初の基準として、指導教員からの助言や各節の完成後に目標を更新してください。未定の章には0を設定できますが、後の比較を明確にするため章名は重複できません。
書式からページ数を見積もる仕組みです
ページ数はフォント、余白、段落、見出し、引用、表、図によって変わるため、完成原稿を完全に予測する換算はありません。本ツールは明示的な計画基準として、2行送りでは1ページ250語、1.5行送りでは350語、1行送りでは500語を使用します。章は通常、新しいページから始まるため、各章を個別に切り上げます。結果に表示される1ページ当たりの語数を、大学が指定するフォント、余白、行間、脚注の規則と照合してから提出目標としてご利用ください。
通常の語数に含まれないページも加えます
論文には表紙、宣誓文、要旨、謝辞、目次、図表一覧、参考文献、付録も含まれます。これらは本文の語数をほとんど増やさなくても、多くのページを占めることがあります。前付けのページ数と、参考文献・付録のページ数を別々に入力すると、章の推定後に加算されます。同じ課程で最近受理された論文を参考に最初の予備ページ数を決め、引用文献や付録が増えた段階で更新してください。章内の図表は個別計算されないため、総数は計画上の目安として扱うのが適切です。
活用例
研究計画書を準備します
目次と暫定的な章目標から、面談で示せる明確な総語数とページ数を作成します。
章の配分を整えます
推定分量を比較し、長すぎる章や余裕のない章を執筆前に見つけます。
執筆の進捗を追跡します
章、参考文献、付録の変化に合わせて計画を再計算します。
よくある質問
1ページ当たり何語で計算しますか?
2行送りは250語、1.5行送りは350語、1行送りは500語です。選択値は結果にも表示されます。
章ごとに切り上げるのはなぜですか?
各章は通常、新しいページから始まるためです。章別の推定値も単独で利用できます。
前付けと参考文献は総語数に入りますか?
入りません。ページ総数だけを増やし、章の語数合計は変更しません。
完成した論文と正確に一致しますか?
一致するとは限りません。フォント、余白、見出し、脚注、図表、機関の規定がページ数に影響します。
APIでの計算料金はいくらですか?
APIリクエスト1件は $0.002 です。同じ決定的な計算をブラウザーでも実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/edu/thesis-length-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"chapters":[{"name":"Introduction","word_count":3000},{"name":"Literature Review","word_count":8000},{"name":"Methodology","word_count":5000},{"name":"Results","word_count":7000},{"name":"Discussion","word_count":6000},{"name":"Conclusion","word_count":2000}]}'const res = await fetch("https://api.kit.forhosting.com/edu/thesis-length-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"chapters": [
{
"name": "Introduction",
"word_count": 3000
},
{
"name": "Literature Review",
"word_count": 8000
},
{
"name": "Methodology",
"word_count": 5000
},
{
"name": "Results",
"word_count": 7000
},
{
"name": "Discussion",
"word_count": 6000
},
{
"name": "Conclusion",
"word_count": 2000
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/thesis-length-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"chapters": [
{
"name": "Introduction",
"word_count": 3000
},
{
"name": "Literature Review",
"word_count": 8000
},
{
"name": "Methodology",
"word_count": 5000
},
{
"name": "Results",
"word_count": 7000
},
{
"name": "Discussion",
"word_count": 6000
},
{
"name": "Conclusion",
"word_count": 2000
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/thesis-length-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"chapters":[{"name":"Introduction","word_count":3000},{"name":"Literature Review","word_count":8000},{"name":"Methodology","word_count":5000},{"name":"Results","word_count":7000},{"name":"Discussion","word_count":6000},{"name":"Conclusion","word_count":2000}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"chapters":[{"name":"Introduction","word_count":3000},{"name":"Literature Review","word_count":8000},{"name":"Methodology","word_count":5000},{"name":"Results","word_count":7000},{"name":"Discussion","word_count":6000},{"name":"Conclusion","word_count":2000}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/thesis-length-estimate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"chapters": [
{
"name": "Introduction",
"word_count": 3000
},
{
"name": "Literature Review",
"word_count": 8000
},
{
"name": "Methodology",
"word_count": 5000
},
{
"name": "Results",
"word_count": 7000
},
{
"name": "Discussion",
"word_count": 6000
},
{
"name": "Conclusion",
"word_count": 2000
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.thesis_length_estimate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_items | 100 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |