当サイトの一部ページには、アフィリエイト・アドセンス・アソシエイト・プロモーション広告を掲載しています。

Amazonのアソシエイトとして、Security Akademeiaは適格販売により収入を得ています。

広告配信等の詳細については、プライバシーポリシーページに掲載しています。

消費者庁が、2023年10月1日から施行する景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています。もし問題の表現がありましたら、問い合わせページよりご連絡ください。

参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

逆さ文字を実現する方法【Re:VIEW編】

クイズやパズルの本を書くとき、答えを「見えにくく」してネタバレを防止したいことがあります。
本記事では、ネタバレ防止の手法を整理した上で、Re:VIEWで文字を180度回転させる方法を解説します。

ネタバレ防止の手法

Webページの場合

Webページでは以下の手法がよく使われます。

手法説明効果
反転表示背景色と同じ文字色にする選択(ドラッグ)すると見える
クリックで表示ボタンやアコーディオンで隠すクリックで展開される
スクロールで表示大きな余白を入れるスクロールしないと見えない

書籍(PDF)の場合

紙の書籍やPDFでは、上記のようなインタラクティブな手法は使えません。

代わりに以下の手法があります。

手法説明効果
薄い文字グレーなど薄い色で印刷注意しないと読めない
逆さ文字180度回転させる本を回さないと読めない
ROT13アルファベットを13文字シフト解読しないと読めない
別ページに掲載答えを巻末等にまとめるページをめくらないと見えない

本記事では「逆さ文字」をRe:VIEWで実現する方法を解説します。

環境

  • Re:VIEW 5.9
  • PDF出力(LaTeX経由)

完成イメージ

文字列を上下反転して表示することを目標とします。

逆さ文字は本を逆さにすると読めます。PDFであればPDFビューアーで180度回転させてもよいでしょう。

逆さ文字の実現法 <その1>

1. “review-custom.sty"ファイルにコマンド定義を追記する

“sty/review-custom.sty"ファイルに以下を追加します。

\usepackage{graphicx}
\newcommand{\upsidedown}[1]{\rotatebox[origin=c]{180}{#1}}
  • graphicxパッケージの\rotateboxコマンドを使用
  • 「origin=c」で文字の中心を回転軸にする
  • 「180」で180度回転(上下反転)

2. 本文REファイルで使用する

逆さ文字を使いたい場所に、以下のコードを書きます。

//raw[|latex|\upsidedown{<逆さ文字で表現したい文字列>}]

※「<逆さ文字で表現したい文字列>」のところは日本語でも構いません。

逆さ文字をインライン命令で実現する <その2>

逆さ文字を使う箇所が多数ある場合や、文章内の一部を逆さ文字にしたい場合は、インライン命令を定義します。

1. “review-custom.sty"ファイルにコマンド定義を追記する

上記の<その1>のステップ1までは同様です。つまり、「\upsidedown」コマンドを定義しておきます。

2. “review-ext.rb"ファイルでインライン命令を定義する

プロジェクト直下の"review-ext.rb"ファイルに、以下のようにinline_upsidedow()を追加します。

module ReVIEW
  module LATEXBuilderOverride
    def inline_upsidedown(str)
      "\\upsidedown{#{escape(str)}}"
    end
  end

  class LATEXBuilder
    prepend LATEXBuilderOverride
  end
end

3. 本文REファイルで使用する

答え:@<upsidedown>{ANSWER}

注意点

日本語の場合

日本語も回転できますが、読みやすさは英数字より劣ります。

答え:@<upsidedown>{こたえ}

複数行には非対応

@<upsidedown>{}はインライン命令のため、複数行のテキストには使えません。1行ずつ適用してください。

PDF専用

この方法はLaTeX経由のPDF出力専用です。EPUB出力には対応していません。

逆さ文字の実例

REファイル

↓↓↓

PDFの出力結果

薄い文字(spoiler)の実現法【応用編】

逆さ文字の代わりに、薄いグレーの文字にする方法もあります。

1:"sty/review-custom.sty"ファイルにコマンド定義を追加する

\newcommand{\spoiler}[1]{\textcolor[gray]{0.75}{#1}}

2:"review-ext.rb"ファイルにインライン命令を定義を追加する

def inline_spoiler(str)
  "\\spoiler{#{escape(str)}}"
end

3:REファイルで以下のように使う

答え:@<spoiler>{ANSWER}

こちらは文字が薄く表示され、注意しないと読めない程度になります。

PDFを印刷所に入稿した場合に、薄くて見えにくくなる可能性を指摘されるかもしれません。
見えにくいのは意図どおりですが、見えなくなるのは困ります。
本当に見えにくくなるレベルで収まるのかは、完成した書籍を開いてみるまで判断できない可能性があります。

参考

同人誌Re:VIEW同人誌

Posted by ipusiron