web-dev-qa-db-ja.com

Apple iWorkPagesでインデックスを作成する

IWork Pagesドキュメントにインデックスを作成することは可能ですか?

索引とは、単語を索引に値するものとしてマークし、ドキュメントの最後にそれらの単語とそれらが言及されているページのアルファベット順のリストがあることを意味します。そこにある他のコンピュータの本と同じように。

4
pupeno

Applescript辞書に組み込まれているPagesを使用してApplescriptを使用するのは簡単ではありませんが、これは可能だと思います。それはあなたが必要とする機能/フォーマットなどの種類に正確に依存します。

次のスクリプトは、良い出発点になる可能性があります。この場合、「メンバー」という単語を含むページを検索しますが、これをダイアログ、リスト、または役立つと思われるものに変更できます。コードは少し粗雑で、特に高速ではありませんが、機能します。

set theSearchText to "member"
copy theSearchText to theOutputText
set theOutputText to theOutputText & "   "
set theCurrentPage to 0

tell application "Pages"
    tell document 1
        repeat with i from 1 to count of words
            set theText to text of Word i
            if item 1 of theText is equal to "member" then
                set thePageNumber to the page number of the containing page of Word i
                if thePageNumber is not equal to theCurrentPage then
                    copy thePageNumber to theCurrentPage
                    set theOutputText to theOutputText & ", " & thePageNumber as string
                end if
            end if
        end repeat
        return theOutputText
    end tell
end tell
1
Ian Turner

残念ながら、Pages 09ユーザーガイドおよび別のサイトによると、TOCは段落スタイルのみを収集します。これは、段落の途中にテキストのエントリを生成できないことを意味します。これは、ほとんどのインデックスエントリが参照するものです。理論的には、目的のインデックスエントリにマークを付けることができます。たとえば、白い{中括弧}でブラケットを置き換え、目次に入るスタイルの段落記号で置き換え、インデックスのように見える目次を作成して保存します。そして元に戻します。

実際には、検索と置換を使用してスタイル付き文字をスタイル付き段落区切りに変更すると、前後のテキストの両方が新しいTOC記録スタイルに変わるようです。 10分で、この置換スキームを正しく機能させることができませんでした。その後、インデックス付きの単語を段落に変換すると、後のインデックス付きの単語がページ数をさらに押し下げることになります。ただし、非常に短いドキュメントまたは非常にまばらなインデックスの場合を除きます。 、間違ったページを表示するTOCエントリになってしまいます。

私たちすべてのワードプロセッサとスプレッドシートのユーザーが必要としているのは、Appleがインターフェイスを設計し、Microsoftが機能を設計することです。

0
David Knapp

試したことはありませんが、インデックスはスタイルに関連付けられているので、ボディコンテンツのスタイルと同じ「Word」というスタイルを作成できます。次に、すべての「Word」コンテンツを一覧表示するインデックスを作成するだけで、それだけです。

0
pasine