質問編集履歴

4

取消し線が適用されていなかったので修正

2025/03/19 12:13

投稿

yajiyaji
yajiyaji

スコア3

test CHANGED
File without changes
test CHANGED
@@ -221,13 +221,12 @@
221
221
  ~~123行目のこの処理により、lastBookmarkPageに変数pageを代入しています。
222
222
  変数page_idxは目次のページ数、変数iはページ内のしおりのカウンタ変数です。
223
223
  つまり、目次の2ページ以上且つ当該ページ内の最後のしおりに到達した際に、lastBookmarkPageをそのしおりのpageで更新しています。
224
- ※ページ内の最後のしおりは常に右側の列にあるため、左側の列ではこの処理を行っていません。
224
+ ※ページ内の最後のしおりは常に右側の列にあるため、左側の列ではこの処理を行っていません。~~
225
-
225
+
226
- 実際に、106行目と127行目のprint文では、lastBookmarkPageが目的の値になっていることが確認できました。
226
+ ~~実際に、106行目と127行目のprint文では、lastBookmarkPageが目的の値になっていることが確認できました。
227
- しかし、113行目及び134行目にてlastBookmarkPageを加算しても、目次の2ページ目以降のリンクが1ページのリンクから変わりません。
227
+ しかし、113行目及び134行目にてlastBookmarkPageを加算しても、目次の2ページ目以降のリンクが1ページのリンクから変わりません。~~
228
-
228
+
229
- 113行目及び134行目にlastBookmarkPageではなく、例えば10のような固定値を加算した場合は、リンク先のページが変わることは確認できています。
229
+ ~~113行目及び134行目にlastBookmarkPageではなく、例えば10のような固定値を加算した場合は、リンク先のページが変わることは確認できています。
230
-
231
230
  lastBookmarkPageにて取得している値を、目次の2ページ目以降に適用するには、どうすればいいでしょうか?~~
232
231
 
233
232
  長いコード且つ複雑な内容で申し訳ございません。

3

補足に追記

2025/03/19 08:25

投稿

yajiyaji
yajiyaji

スコア3

test CHANGED
File without changes
test CHANGED
@@ -242,4 +242,6 @@
242
242
  つまり、107及び128行目で設定しているannotationにて対象とするしおりを、目次のページ数に応じた数にできればいいのではないかと推測しています。
243
243
  例えば、100行目101行目のleft_idxとright_idxにpage_idx * 100(目次のページ数に100をかけた値)を加算したのですが、値は更新されませんでした(目次の1ページ目と同じリンク先になる)。
244
244
 
245
+ ※そもそも、96行目の「start_index = page_idx * entries_per_page」で目次のページ数に100をかけているので、ページが移っても正しいしおりを取得できる気がするのですが…
246
+
245
247
  お手数をおかけしますが、この補足情報を考慮した上で、目次の2から4ページ目に正しいリンクを設定する方法が分かりましたら、ご教授いただけますと幸いです。

2

別の解決方法が思い浮かんだため、補足に追記

2025/03/19 08:18

投稿

yajiyaji
yajiyaji

スコア3

test CHANGED
File without changes
test CHANGED
@@ -218,7 +218,7 @@
218
218
  if page_idx > 0 and i == column_split - 1:
219
219
  lastBookmarkPage = page
220
220
 
221
- 123行目のこの処理により、lastBookmarkPageに変数pageを代入しています。
221
+ ~~123行目のこの処理により、lastBookmarkPageに変数pageを代入しています。
222
222
  変数page_idxは目次のページ数、変数iはページ内のしおりのカウンタ変数です。
223
223
  つまり、目次の2ページ以上且つ当該ページ内の最後のしおりに到達した際に、lastBookmarkPageをそのしおりのpageで更新しています。
224
224
  ※ページ内の最後のしおりは常に右側の列にあるため、左側の列ではこの処理を行っていません。
@@ -228,10 +228,18 @@
228
228
 
229
229
  113行目及び134行目にlastBookmarkPageではなく、例えば10のような固定値を加算した場合は、リンク先のページが変わることは確認できています。
230
230
 
231
- lastBookmarkPageにて取得している値を、目次の2ページ目以降に適用するには、どうすればいいでしょうか?
231
+ lastBookmarkPageにて取得している値を、目次の2ページ目以降に適用するには、どうすればいいでしょうか?~~
232
232
 
233
233
  長いコード且つ複雑な内容で申し訳ございません。
234
234
  情報に不足がございましたら、ご指摘いただけますと幸いです。
235
235
 
236
236
  ### 補足
237
- 特になし
237
+ 2025/3/19追記
238
+ 大変申し訳ございません。「123行目のこの処理により…」からの内容は考え方が誤っているように思いましたので、一旦取り消し線を付与しました。
239
+ 例えば目次2ページ目であれば100個目(1ページ目最後)のしおりに設定された変数pageを保存し、それを加算する前提で記載しましたが、無駄に複雑化している気がします。
240
+ ようするに、目次2ページ目であれば101個目から200個目のしおりに設定されたpageが取得できれば、それをそのまま目次のリンクに設定すれば解決する気がします。
241
+
242
+ つまり、107及び128行目で設定しているannotationにて対象とするしおりを、目次のページ数に応じた数にできればいいのではないかと推測しています。
243
+ 例えば、100行目101行目のleft_idxとright_idxにpage_idx * 100(目次のページ数に100をかけた値)を加算したのですが、値は更新されませんでした(目次の1ページ目と同じリンク先になる)。
244
+
245
+ お手数をおかけしますが、この補足情報を考慮した上で、目次の2から4ページ目に正しいリンクを設定する方法が分かりましたら、ご教授いただけますと幸いです。

1

・例として挙げたリンク先のページ数が、目次が存在するため実際にはありえない4ページ以内になっていたため、ページ数を修正 ・補足を追加

2025/03/19 02:58

投稿

yajiyaji
yajiyaji

スコア3

test CHANGED
File without changes
test CHANGED
@@ -24,8 +24,10 @@
24
24
 
25
25
  例.
26
26
  page1
27
- ABC…2 GHI…7
27
+ ~~ABC…2 GHI…7
28
- DEF…4 JKL…8
28
+ DEF…5 JKL…8~~
29
+ ABC…6 GHI…9
30
+ DEF…7 JKL…12
29
31
  以下略
30
32
 
31
33
  page2
@@ -33,11 +35,11 @@
33
35
  PQR…22 VWX…30
34
36
  以下略
35
37
 
36
- これで「ABC」をクリックすると2ページ目に遷移しており、これは正しい挙動です。
38
+ これで「ABC」をクリックすると6ページ目に遷移しており、これは正しい挙動です。
37
- しかし、「MNO」をクリックした場合も、2ページ目に遷移してしまいます。
39
+ しかし、「MNO」をクリックした場合も、6ページ目に遷移してしまいます。
38
- 「STU」の場合も、同様に7ページ目に遷移します。
40
+ 「STU」の場合も、同様に9ページ目に遷移します。
41
+
39
-
42
+ 2025/3/19補足:白紙挿入の処理については、Pythonではなく事前に行うことも可能。
40
-
41
43
 
42
44
  ### 該当のソースコード
43
45