逆さ文字を実現する方法【Re:VIEW編】
目次
はじめに
いつもブログをご覧いただきありがとうございます。
ミジンコに転生したIPUSIRONです😀
クイズやパズルの本を書くとき、答えを「見えにくく」してネタバレを防止したいことがあります。
本記事では、ネタバレ防止の手法を整理した上で、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
end3. 本文REファイルで使用する
答え:@<upsidedown>{ANSWER}注意点
日本語の場合
日本語も回転できますが、読みやすさは英数字より劣ります。
答え:@<upsidedown>{こたえ}複数行には非対応
@<upsidedown>{}はインライン命令のため、複数行のテキストには使えません。1行ずつ適用してください。
PDF専用
この方法はLaTeX経由のPDF出力専用です。EPUB出力には対応していません。
逆さ文字の実例

↓↓↓

薄い文字(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)}}"
end3:REファイルで以下のように使う
答え:@<spoiler>{ANSWER}こちらは文字が薄く表示され、注意しないと読めない程度になります。
PDFを印刷所に入稿した場合に、薄くて見えにくくなる可能性を指摘されるかもしれません。
見えにくいのは意図どおりですが、見えなくなるのは困ります。
本当に見えにくくなるレベルで収まるのかは、完成した書籍を開いてみるまで判断できない可能性があります。



























