我为我的课本创建了一个布尔值studentversion
,它可以在 CarLatex 的建议下隐藏或显示一些老师的内容。(参见主题:https://tex.stackexchange.com/a/478695/169294)
是否可以为真/假语句链接一个关键词?在我看来,我希望有布尔值:'version',可以设置为'student'(真)或'teacher'(假)。这样我就可以写:\setbool{version}{teacher}
而不是\setbool{studentversion}{false}
。
MWE 将是:
\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{etoolbox}
%%Current behaviour
\newbool{studentversion}
\setbool{studentversion}{false}
%%Desired behaviour
%\newbool{version}
%\setbool{version}{teacher}
\begin{document}
\ifbool{studentversion}%
{The studentversion boolean is set to true}%
{The studentversion boolean is set to false}
\end{document}
我想这是一个细节,但我确信它可以帮助我使我的文件更清晰,以供以后使用。
答案1
以下是一个替代语法的建议。我们定义一个新命令\setversion
,该命令以 或student
作为teacher
参数,并studentversion
相应地设置布尔值。对于任何其他参数,都会报告错误。
\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{etoolbox}
%%Current behaviour
\newbool{studentversion}
\setbool{studentversion}{false}
%%Desired behaviour
%\newbool{version}
%\setbool{version}{teacher}
\newcommand\setversion[1]{%
\def\tempa{#1}%
\def\tempb{student}%
\ifx\tempa\tempb
\setbool{studentversion}{true}%
\else
\def\tempb{teacher}%
\ifx\tempa\tempb
\setbool{studentversion}{false}%
\else
\errmessage{Unknown value for studentversion: #1}%
\fi
\fi
}
\begin{document}
\setversion{student}%
\ifbool{studentversion}%
{The studentversion boolean is set to true}%
{The studentversion boolean is set to false}
\setversion{teacher}%
\ifbool{studentversion}%
{The studentversion boolean is set to true}%
{The studentversion boolean is set to false}
% \setversion{other}%
\end{document}
输出