縦書き本文+横書き索引文書

縦書き本文+横書き索引文書

- tosyo taro の投稿
返信数: 7
Ubuntu16.04 + texlive2021 で下記のT.tex を

lualatex T
upmendex T
lualatex T

としてT.pdfを作成

強引なやりかたですが縦書き本文+横書き索引文書をつくりました

1.「索引」と「あ,1」との間があく
2.索引のp.6とp.7の段がずれる(1.のせい?)
3.一段組みにならない

と不満はあります

「3.」はmakeidxが \makeindex[columns=1]とできるようになるのを待つしかありません。
索引部のならびはあとからpdf
ページ切り貼りをしてごまかしています(ノンブルなしにして)

どなたかもっとうまいやり方をご存知ですか?

-----------T.tex------------------
\documentclass[lualatex,book,tate,paper=a6]{jlreq}
\usepackage[unicode,hidelinks,pdfusetitle,pdfdirection=R2L]{hyperref}
\usepackage{makeidx}
\makeindex
\begin{document}
あいうえお
\index{あ}\index{い}\index{う}\index{え}\index{お}
\index{か}\index{き}\index{く}\index{け}\index{こ}
\clearpage
さしすせそ
\index{さ}\index{し}\index{す}\index{せ}\index{そ}
\index{た}\index{ち}\index{つ}\index{て}\index{と}
\clearpage
なにぬねの
\index{な}\index{に}\index{ぬ}\index{ね}\index{の}
\index{は}\index{ひ}\index{ふ}\index{へ}\index{ほ}
\clearpage
textwidth=\the\textwidth\par
textheight=\the\textheight\par
linewidth=\the\linewidth\par
\cleardoublepage{}
\linewidth=214pt
\textwidth=214pt
\textheight=310pt
\printindex
\end{document}

tosyo taro への返信

Re: 縦書き本文+横書き索引文書

- 和田 勇 の投稿

https://stackoverflow.com/questions/2389689/single-column-long-index-pages-in-latex の3番目がご要望に叶うものに思えます。

      \let\oldtwocolumn\twocolumn
      \renewcommand{\twocolumn}[1][]{#1}
      \printindex
      \renewcommand{\twocolumn}[1][]{\oldtwocolumn}

検証は macOS で texlive 2021 で実施。

和田 勇 への返信

Re: 縦書き本文+横書き索引文書

- tosyo taro の投稿
ご教示ありがとうございます。
以下のT2.texのように変更しました。
一段にはなりましたが

索引一ページ目はおかしいまま(上部空白はつまりますが)、
「ながいながい」項目は右につきでる。

makeidx.styの奥ふかいところでつかわれている\linewidthとは別のなにかを補正しなければならないようです。
pdfのページ切り貼りは、やらざるをえませんので、indファイルをよみこんで、横書き文書で独自整形して、あとから結合しようとおもいます。

-----------T2.tex-----------------
\documentclass[lualatex,book,tate,paper=a6]{jlreq}
\usepackage[unicode,hidelinks,pdfusetitle,pdfdirection=R2L]{hyperref}
\usepackage{makeidx}
\makeindex
\begin{document}
あいうえお
\index{あ}\index{い}\index{う}\index{え}\index{お}
\index{か}\index{き}\index{く}\index{け}\index{こ}
\clearpage
さしすせそ
\index{さ}\index{し}\index{す}\index{せ}\index{そ}
\index{た}\index{ち}\index{つ}\index{て}\index{と}
\clearpage
なにぬねの
\index{な}\index{に}\index{ぬ}\index{ね}\index{の}
\index{は}\index{ひ}\index{ふ}\index{へ}\index{ほ}
\clearpage
ながいながい
\index{ながいながいながいながいながいながいながいながいながいながいながいながい}
\clearpage
textwidth=\the\textwidth\par
textheight=\the\textheight\par
linewidth=\the\linewidth\par
\cleardoublepage{}
\linewidth=214pt
\textwidth=214pt
\textheight=310pt
\let\oldtwocolumn\twocolumn
\renewcommand{\twocolumn}[1][]{#1}
\printindex
\renewcommand{\twocolumn}[1][]{\oldtwocolumn}
\end{document}
tosyo taro への返信

Re: 縦書き本文+横書き索引文書

- 和田 勇 の投稿

中間報告

  • tate オプションを使用して、index を one-column にすると現象が出ますね。

    • → 縦書きベースの2-column, 3-column 、横書きベースの 1-column は OK です。
  • 以下、テストしていてのつぶやき

    • textwidth などを変更されているのですが、縦書きベースにすると textheight の変更は効くけど、texlwidth には効果がないように見えます。

    • printindex 自体は 内部で multicol を使っているので内部的には \columnwidth の値なども調整するとかのアドホックな対処をしてみましたが、...

    • layout パッケージなどでデバッグ表示したりはしていますが、今のところ歯が立たないようで :-( ただ今検討中です。

index を onecolumn にする別の方法

話はちょっと変わりますが、\twocolumn を再定義する方法を示しましたが ...

     \usepackage{makeidx}
     \usepackage{layout}
     \usepackage[columns=1]{idxlayout}

としておいて  \yoko\printindex  のようにしても良いようです。

和田 勇 への返信

Re: 縦書き本文+横書き索引文書

- 和田 勇 の投稿

ごめんなさい。layout は textwidth などを調べるためのもので、 printindex のカラム表示を 1 column にする際は不要です。

念の為、再掲します。

プリアンブルで ,,, \usepackage{makeidx} \usepackage[columns=1]{idxlayout}

本文で ...

    \yoko
    \printindex
和田 勇 への返信

Re: 縦書き本文+横書き索引文書

- はやて (h20y6m) の投稿

とりあえず \texlwidth, \textheight を変更した後、

\onecolumn\twocolumn を呼ぶ。 ⇒ \columnwidth, \hsize, \linewidth が設定される。

改ページを発生させる。 ⇒ \vsize 等が設定される。

で多少はましになるのではないでしょうか。

レイアウトに関するパラメータはこれ以外にもたくさんあるのでこれだけでは満足のいく結果にはならないかもしれませんが。

あとから結合しようとおもいます。

無理して TeX でやろうとするよりもそちらのほうが簡単かもしれませんね。

はやて (h20y6m) への返信

Re: 縦書き本文+横書き索引文書

- 和田 勇 の投稿

なるほど ,,, onecolumn cleapage の順に呼んで大体できたようです。

  • 解法1

    @@ -27,6 +27,8 @@
     \textheight=310pt
     \let\oldtwocolumn\twocolumn
     \renewcommand{\twocolumn}[1][]{#1}
    +\onecolumn
    +\clearpage
     \printindex
     \renewcommand{\twocolumn}[1][]{\oldtwocolumn}
     \end{document}
    
  • 解法2(idxlayout パッケージ利用}

    @@ -1,6 +1,7 @@
     \documentclass[lualatex,book,tate,paper=a6]{jlreq}
     \usepackage[unicode,hidelinks,pdfusetitle,pdfdirection=R2L]{hyperref}
     \usepackage{makeidx}
    +\usepackage[columns=1]{idxlayout}
     \makeindex
     \begin{document}
     あいうえお
    @@ -25,8 +26,7 @@
     \linewidth=214pt
     \textwidth=214pt
     \textheight=310pt
    -\let\oldtwocolumn\twocolumn
    -\renewcommand{\twocolumn}[1][]{#1}
    -\printindex
    -\renewcommand{\twocolumn}[1][]{\oldtwocolumn}
    +\onecolumn
    +\clearpage
    +\yoko\printindex
     \end{document}
    

「索引」の開始ページが少し上にずれる件

onecolumn を呼ぶことによって解消したように感じますがいかがでしょうか?

微調整するには vspace なのかな?

あとから結合

私も、これでも良いように思います。

和田 勇 への返信

Re: 縦書き本文+横書き索引文書

- tosyo taro の投稿
和田 勇さん、はやてさんへ

どうもありがとうございます。
indファイル加工の独立pdf索引作成も、楽しくなってきました。
また\yokoのあとの\printindexを独自のものにおきかえてしまうのがよいとも思いました。(別作成の索引部分のみtexソースを\input)
いろいろ試してみます。