\documentclass[% fleqn,% paper=a4paper,% fontsize=10pt,% open_bracket_pos=zenkakunibu_nibu,% hanging_punctuation,% ]% {jlreq} \jlreqsetup{% itemization_beforeafter_space=0pt,% itemization_itemsep=0pt% } \makeatletter \RequirePackage{luatexja} \RequirePackage{luatexja-otf} \RequirePackage{graphicx} \RequirePackage{amsmath} \DeclareRobustCommand{\metaphysicaicon}{\raisebox{-4.0pt}{\includegraphics[width=16pt]{metaphysicaicon.pdf}}} \RequirePackage[normalem]{ulem} \RequirePackage[explicit]{titlesec} \titleformat{\section}[hang]{}{}{0pt}{\uuline{\raisebox{1pt}{\textsf{\thesection\quad #1}}}}[\vspace{0.35\baselineskip}] \renewcommand{\thesection}{\S\,\arabic{section}} \let\originalsection\section \DeclareRobustCommand{\section}{\@ifstar{\@metaphysica@section@star}{\@metaphysica@section@nostar}} \DeclareRobustCommand{\@metaphysica@section@star}[1]{\vspace{0.5\baselineskip}\originalsection{#1}\vspace*{-\baselineskip}} \DeclareRobustCommand{\@metaphysica@section@nostar}[1]{\vspace{0.5\baselineskip}\originalsection{#1}} \RequirePackage[% truedimen,% margin=30truemm, includehead% ]{geometry} \RequirePackage{lastpage} \RequirePackage{fancyhdr} \pagestyle{fancy} \DeclareRobustCommand{\headertitle}[2][\metaphysicaicon]{% \rhead[#2]{#1{}\quad\thepage{}/{}\pageref{LastPage}}% \lhead[\thepage{}/{}\pageref{LastPage}\quad{}#1]{#2}% \cfoot{}% } \RequirePackage{setspace} \setstretch{1.155} \DeclareRobustCommand{\linespace}{\@ifstar{\vspace{\baselineskip}}{\vspace{0.25\baselineskip}}} \DeclareRobustCommand{\linesmash}{\@ifstar{\vspace{-\baselineskip}}{\vspace{-0.25\baselineskip}}} \AtBeginDocument{% \abovedisplayskip =0.125\abovedisplayskip \abovedisplayshortskip=0.125\abovedisplayshortskip \belowdisplayskip =0.125\belowdisplayskip \belowdisplayshortskip=0.125\belowdisplayshortskip} \setlength{\jot}{0pt}% \setlength{\mathindent}{2\zw}% \renewcommand{\floatpagefraction}{0.75} \allowdisplaybreaks[2] \RequirePackage[no-math]{fontspec} \RequirePackage[no-math,deluxe,haranoaji]{luatexja-preset} \RequirePackage{multicolpar} \RequirePackage[style=iso]{datetime2} \RequirePackage[unicode]{hyperref} \RequirePackage{xparse} \RequirePackage{dashbox} \newcounter{psuedosectioncounter} \setcounter{psuedosectioncounter}{1} \newcounter{psuedocontentscounter} \setcounter{psuedocontentscounter}{1} \DeclareRobustCommand{\psuedosection}[3]{% \hypertarget{#1}{\mbox{}}\begin{multicolpar}{2}% \noindent\uuline{{\raisebox{1pt}{\textsf{\S\ \thepsuedosectioncounter\quad #2}}}} \noindent\uuline{{\raisebox{1pt}{\textsf{\S\ \thepsuedosectioncounter\quad #3}}}} \end{multicolpar}% \stepcounter{psuedosectioncounter}% \vspace{\baselineskip}% } \DeclareRobustCommand{\psuedocontents}[3]{% \begin{multicolpar}{2}% \noindent{\textsf{\hyperlink{#1}{\S\ \thepsuedocontentscounter\quad #2}}} \noindent{\textsf{\hyperlink{#1}{\S\ \thepsuedocontentscounter\quad #3}}}\end{multicolpar}% \stepcounter{psuedocontentscounter}% } \newenvironment{translateing}% {\begin{multicolpar}{2}} {\end{multicolpar}\vspace{\baselineskip}} \DeclareRobustCommand{\maketitletranslating}% {\maketitle\thispagestyle{fancy} \vspace{\baselineskip}\begin{multicolpar}{2} \textsf{English} \noindent \textsf{日本語 (Japanese)} \end{multicolpar}\vspace{\baselineskip}} \NewDocumentCommand\macroexplanation{v}{% \noindent\hspace*{\fill}{\texttt{#1}}\hspace*{\fill}\linespace% } \NewDocumentEnvironment{macroexample}{O{0.625} +b}{% \noindent\hspace*{\fill}\dbox{\parbox{#1\textwidth}{% #2% }}\hspace*{\fill}}% {\vspace{\baselineskip}} \NewDocumentEnvironment{macroexample*}{O{0.625} m +b}{% \noindent\hspace*{\fill}\dbox{\parbox{#1\textwidth}{% \vspace{-0.5\baselineskip}\begin{#2}% #3 \end{#2}% }}\hspace*{\fill}} {\vspace{\baselineskip}} \let\code\texttt \setlength{\fboxsep}{1em} \setstretch{1.05} \DeclareRobustCommand{\commandtojskip}{\hspace{2.40554pt plus 1.49994pt minus 0.59998pt}} \RequirePackage{listings, jlisting} \lstset{ language=[LaTeX]TeX, basicstyle={\ttfamily}, identifierstyle={\small}, commentstyle={\small\itshape}, keywordstyle={\small\bfseries}, ndkeywordstyle={\small}, stringstyle={\small\ttfamily}, frame=single, breaklines=true, columns=[l]{fullflexible}, stepnumber=1, xrightmargin=0.1709\textwidth, xleftmargin=0.1709\textwidth, lineskip=-0.5ex } \RequirePackage{bxtexlogo} \RequirePackage{shortvrb} \MakeShortVerb{\|} \RequirePackage{hideanswer} \makeatother \hypersetup{% bookmarksnumbered=true,% colorlinks=true,% linkcolor=blue,% urlcolor=blue,% setpagesize=false,% pdftitle={The hideanswer package},% pdfauthor={Yukoh KUSAKABE},% pdfsubject={The hideanswer package},% pdfkeywords={TeX LaTeX answer exam}} \title{The \code{hideanswer} package:\\[0.25\baselineskip] generate documents with and without answers\\[0.25\baselineskip] by toggling a switch} \author{Yukoh KUSAKABE} \date{\today} \headertitle[Yukoh KUSAKABE\quad\metaphysicaicon]{The \code{hideanswer} package} \begin{document} \maketitletranslating \begin{translateing} This package can generate documents with and without answers from a single file by toggling a switch. However, it can only be used to create documents to be printed on paper. ã“ã®ãƒ‘ッケージã¯ï¼Œã‚¹ã‚¤ãƒƒãƒåˆ‡ã‚Šæ›¿ãˆã«ã‚ˆã£ã¦å˜ä¸€ã®ãƒ•ァイルã‹ã‚‰ç”ãˆãŒæ›¸ã‹ã‚Œã¦ã„る文書ã¨ç”ãˆãŒæ›¸ã‹ã‚Œã¦ã„ãªã„文書を生æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ãŸã ã—,紙ã«å°åˆ·ã™ã‚‹æ–‡æ›¸ã‚’作æˆã™ã‚‹ã¨ãã«ã—ã‹ä½¿ãˆã¾ã›ã‚“。 \end{translateing} \psuedocontents{Requirements}{System Requirements}{剿æ¡ä»¶} \psuedocontents{Installation}{Installation}{インストール} \psuedocontents{Loading}{Loading}{èªã¿è¾¼ã¿} \psuedocontents{Usage}{Usage}{使用方法} \psuedocontents{moreinfo}{For More Information}{å•ã„åˆã‚ã›ãƒ»è©³ã—ãã¯} \psuedosection{Requirements}{System Requirements}{剿æ¡ä»¶} \begin{translateing} \textbullet\ \LaTeXe\ format\\ \textbullet\ \code{color} package\\ \textbullet\ \code{graphicx} package\\ \textbullet\ \code{xparse} package \noindent \textbullet\ \LaTeXe フォーマット\\ \textbullet\ \code{color} パッケージ\\ \textbullet\ \code{graphicx} パッケージ\\ \textbullet\ \code{xparse} パッケージ \end{translateing} \newpage \psuedosection{Installation}{Installation}{インストール} \begin{translateing} If not available, move hideanswer.sty file to\\\code{\$TEXMF/tex/latex/hideanswer}. ç›´ã¡ã«ä½¿ãˆãªã‘れã°ï¼Œhideanswer.sty ã‚’\\\code{\$TEXMF/tex/latex/hideanswer}\\%(\TeX ãŒè¦‹ã¤ã‘ã‚‰ã‚Œã‚‹å ´æ‰€ï¼‰ ã«ç½®ã„ã¦ãã ã•ã„。 \end{translateing} \psuedosection{Loading}{Loading}{èªã¿è¾¼ã¿} \begin{translateing} To use this package, load .sty file with |\usepackage{hideanswer}| command in preamble. ã“ã®ãƒ‘ッケージを使用ã™ã‚‹ã«ã¯ï¼Œãƒ—リアンブルã«\commandtojskip|\usepackage{hideanswer}| ã¨æ›¸ã„ã¦ãã ã•ã„。 No package option is available. オプションã¯ã‚りã¾ã›ã‚“。 \end{translateing} \psuedosection{Usage}{Usage}{使用方法} \begin{translateing} \textsf{PRECAUTIONS:}\\ In this package, hiding text is accomplished by changing the color to white. Therefore, the hidden content will be known to the recipient in the PDF file. This package was developed for printing on paper. \noindent\textsf{使用å‰ã®æ³¨æ„:}\\ ã“ã®ãƒ‘ッケージã«ãŠã„ã¦ï¼Œæ–‡å—ã‚’éžè¡¨ç¤ºã«ã™ã‚‹ã“ã¨ã¯è‰²ã‚’白ã«å¤‰ãˆã‚‹ã“ã¨ã«ã‚ˆã£ã¦å®Ÿç¾ã—ã¦ã„ã¾ã™ã€‚ ã—ãŸãŒã£ã¦ï¼ŒPDFファイルã§ã¯éš ã—ãŸå†…容ãŒç›¸æ‰‹ã«ä¼ã‚ã£ã¦ã—ã¾ã„ã¾ã™ã€‚ ã“ã®ãƒ‘ッケージã¯ç´™ã«å°åˆ·ã—ã¦ä½¿ã†ãŸã‚ã«é–‹ç™ºã•れã¾ã—ãŸã€‚ \end{translateing} \macroexplanation{\sethideanswer} \begin{translateing} After this command, the answer is hidden. Usually, this instruction is used to switch the generation of question and answer sheets, depending on whether or not this instruction is written at the beginning of the document. ã“ã®å‘½ä»¤ä»¥é™ã§ã¯ç”ãˆãŒéš ã•れã¾ã™ã€‚ãµã¤ã†ï¼Œæ–‡æ›¸ã®æœ€åˆã«ã“ã®å‘½ä»¤ã‚’書ãã‹å¦ã‹ã§å•題用紙ã¨è§£ç”用紙ã®ç”Ÿæˆã‚’切り替ãˆã‚‹ãŸã‚ã«ä½¿ã„ã¾ã™ã€‚ \end{translateing} \macroexplanation{\unsethideanswer} \begin{translateing} After this command, the answer appears. ã“ã®å‘½ä»¤ä»¥é™ã§ã¯ç”ãˆãŒç¾ã‚Œã¾ã™ã€‚ \end{translateing} \newpage \macroexplanation{\hideanswer{<text>}} \begin{translateing} |<text>| is hidden. In |\hideanswer*{<text>}|, the hidden and visible parts are reversed. |<text>|\commandtojskip ã¨æ›¸ã‹ã‚ŒãŸéƒ¨åˆ†ãŒéš ã•れã¾ã™ã€‚ |\hideanswer*{<text>}|\commandtojskip ã§ã¯ï¼Œéš ã•れるã¨ãã¨ç¾ã‚Œã‚‹ã¨ããŒé€†ã«ãªã‚Šã¾ã™ã€‚ \end{translateing} \begin{lstlisting} A\hideanswer{B}A, C\hideanswer*{D}C. \end{lstlisting} \hspace*{0.14\textwidth}Under |\unsethideanswer| (or default):\\ \unsethideanswer \begin{macroexample} A\hideanswer{B}A, C\hideanswer*{D}C. \end{macroexample} \hspace*{0.14\textwidth}Under |\sethideanswer|:\\ \sethideanswer \begin{macroexample} A\hideanswer{B}A, C\hideanswer*{D}C. \end{macroexample} \newpage \macroexplanation{environment hideanswerdiv} \begin{translateing} The written part inside the environment is hidden. It may be used to hide long answers. In |hideanswerdiv*|, the hidden and visible parts are reversed. 環境ã®å†…å´ã«æ›¸ã‹ã‚ŒãŸéƒ¨åˆ†ãŒéš ã•れã¾ã™ã€‚é•·ã„ç”ãˆã‚’éš ã™ãŸã‚ã«ç”¨ã„ã‚‹ã¨ã‚ˆã„ã§ã—ょã†ã€‚ |hideanswerdiv*|\commandtojskip ã§ã¯ï¼Œéš ã•れるã¨ãã¨ç¾ã‚Œã‚‹ã¨ããŒé€†ã«ãªã‚Šã¾ã™ã€‚ \end{translateing} \begin{lstlisting} E \begin{hideanswerdiv} \[F\] \end{hideanswerdiv}% E G \begin{hideanswerdiv*} \[H\] \end{hideanswerdiv*}% G \end{lstlisting} \hspace*{0.14\textwidth}Under |\unsethideanswer| (or default):\\ \unsethideanswer \begin{macroexample} E \begin{hideanswerdiv} \[F\] \end{hideanswerdiv}% E G \begin{hideanswerdiv*} \[H\] \end{hideanswerdiv*}% G \end{macroexample} \hspace*{0.14\textwidth}Under |\sethideanswer|:\\ \sethideanswer \begin{macroexample} E \begin{hideanswerdiv} \[F\] \end{hideanswerdiv}% E G \begin{hideanswerdiv*} \[H\] \end{hideanswerdiv*}% G \end{macroexample} \newpage \macroexplanation{\smashanswer{<text>}} \begin{translateing} |<text>| is hidden and the next sentence is placed as if it were not there. In |\smashanswer*{<text>}|, the hidden and visible parts are reversed. |<text>|\commandtojskip ã¨æ›¸ã‹ã‚ŒãŸéƒ¨åˆ†ãŒéš ã•れ,ãれãŒãªã„ã‹ã®ã‚ˆã†ã«æ¬¡ã®æ–‡ãŒç½®ã‹ã‚Œã¾ã™ã€‚ |\smashanswer*{<text>}|\commandtojskip ã§ã¯ï¼Œéš ã•れるã¨ãã¨ç¾ã‚Œã‚‹ã¨ããŒé€†ã«ãªã‚Šã¾ã™ã€‚ \end{translateing} \begin{lstlisting} I\smashanswer{J}I, K\smashanswer*{L}K. \end{lstlisting} \hspace*{0.14\textwidth}Under |\unsethideanswer| (or default):\\ \unsethideanswer \begin{macroexample} I\smashanswer{J}I, K\smashanswer*{L}K. \end{macroexample} \hspace*{0.14\textwidth}Under |\sethideanswer|:\\ \sethideanswer \begin{macroexample} I\smashanswer{J}I, K\smashanswer*{L}K. \end{macroexample} \newpage \macroexplanation{environment smashanswerdiv} \begin{translateing} The written part inside the environment is hidden and the next sentence is placed as if it were not there. It may be used to hide long answers. In |smashanswerdiv*|, the hidden and visible parts are reversed. 環境ã®å†…å´ã«æ›¸ã‹ã‚ŒãŸéƒ¨åˆ†ãŒéš ã•れ,ãれãŒãªã„ã‹ã®ã‚ˆã†ã«æ¬¡ã®æ–‡ãŒç½®ã‹ã‚Œã¾ã™ã€‚ é•·ã„ç”ãˆã‚’éš ã™ãŸã‚ã«ç”¨ã„ã‚‹ã¨ã‚ˆã„ã§ã—ょã†ã€‚ |smashanswerdiv*|\commandtojskip ã§ã¯ï¼Œéš ã•れるã¨ãã¨ç¾ã‚Œã‚‹ã¨ããŒé€†ã«ãªã‚Šã¾ã™ã€‚ \end{translateing} \begin{lstlisting} M% \begin{smashanswerdiv} \[N\] \end{smashanswerdiv}% M O% \begin{smashanswerdiv*} \[P\] \end{smashanswerdiv*}% O \end{lstlisting} \hspace*{0.14\textwidth}Under |\unsethideanswer| (or default):\\ \unsethideanswer \begin{macroexample} M% \begin{smashanswerdiv} \[N\] \end{smashanswerdiv}% M O% \begin{smashanswerdiv*} \[P\] \end{smashanswerdiv*}% O \end{macroexample} \hspace*{0.14\textwidth}Under |\sethideanswer|:\\ \sethideanswer \begin{macroexample} M% \begin{smashanswerdiv} \[N\] \end{smashanswerdiv}% M O% \begin{smashanswerdiv*} \[P\] \end{smashanswerdiv*}% O \end{macroexample} \newpage \macroexplanation{\hidegraphics[<includegraphics option>]{<file>}} \begin{translateing} The graphic is hidden. The options are the same as for |\includegraphics| since |\includegraphics| is loaded internally. In |\hidegraphics*|, the hidden and visible parts are reversed. èªã¿è¾¼ã‚“ã ç”»åƒãŒéš ã•れã¾ã™ã€‚ |\includegraphics|を内部ã§èªã¿è¾¼ã¿ã¾ã™ã®ã§ï¼Œã‚ªãƒ—ションã¯\commandtojskip|\includegraphics|ã®ã‚‚ã®ã¨åŒæ§˜ã§ã™ã€‚ |\hidegraphics*|\commandtojskip ã§ã¯ï¼Œéš ã•れるã¨ãã¨ç¾ã‚Œã‚‹ã¨ããŒé€†ã«ãªã‚Šã¾ã™ã€‚ \end{translateing} \macroexplanation{\smashraphics[<includegraphics option>]{<file>}} \begin{translateing} The graphic is hidden and the next sentence is placed as if it were not there. The options are the same as for |\includegraphics| since |\includegraphics| is loaded internally. In |\hidegraphics*|, the hidden and visible parts are reversed. èªã¿è¾¼ã‚“ã ç”»åƒãŒéš ã•れ,ãれãŒãªã„ã‹ã®ã‚ˆã†ã«æ¬¡ã®æ–‡ãŒç½®ã‹ã‚Œã¾ã™ã€‚ |\includegraphics|を内部ã§èªã¿è¾¼ã¿ã¾ã™ã®ã§ï¼Œã‚ªãƒ—ションã¯\commandtojskip|\includegraphics|ã®ã‚‚ã®ã¨åŒæ§˜ã§ã™ã€‚ |\smashraphics*|\commandtojskip ã§ã¯ï¼Œéš ã•れるã¨ãã¨ç¾ã‚Œã‚‹ã¨ããŒé€†ã«ãªã‚Šã¾ã™ã€‚ \end{translateing} \macroexplanation{\switchanswer{<text under unsethide>}{<text under sethide>}}\\ \macroexplanation{\switchanswer*{<text under sethide>}{<text under unsethide>}} \begin{translateing} Switching between hidden and visible sentences. Since |\switchanswer(*)| does not remember the length of the sentence, the position of the next sentence moves. éš ã•れã¦ã„ã‚‹ã¨ãã¨ç¾ã‚Œã¦ã„ã‚‹ã¨ãã§æ–‡ç« を切り替ãˆã¾ã™ã€‚ |\switchanswer(*)|\commandtojskip ã¯æ–‡ç« ã®é•·ã•を覚ãˆã¾ã›ã‚“ã‹ã‚‰ï¼Œæ¬¡ã®æ–‡ã®ä½ç½®ãŒå‹•ãã¾ã™ã€‚ \end{translateing} \psuedosection{contact}{Contact}{å•ã„åˆã‚ã›} \noindent\hspace*{\fill}\begin{tabular}{rl} Yukoh KUSAKABE:&\url{https://www.metaphysica.info/}\\ &\url{https://x.com/metaphysicainfo}\\ &(screen-name, 日下部幽考 in Japanese) \end{tabular}\hspace*{\fill} \end{document}