現在大学で出題されたレポート問題を解いており,問題の出題形式に合わせてプリアンブルで
\renewcommand{thesection}{第\kansuji\arabic{section}問}
\renewcommand{thesubsection}{\arabic{section}.}
\renewcommand{thesubsubsection}{(\alph{subsubsection})}
としているのですが,これだと\subsection{}や\subsubsection{}で1.や(a)と出力された後に改行されてから解答本文が始まる形になります。
この改行をなくして設問番号を書いた後に改行せずに解答本文が続くような形式に変更したいのですが,プリアンブルにどのような記述を加えればよいでしょうか?
あと,(a),(b)の番号を\subsectionを跨ぐ毎に(a)に戻したいのでこちらもプリアンブルに
\makeatletter
\@addtoreset{subsubsection}{subsection}
\makeatother
としたのですが,上手くいきません。こちらはどうすればよいでしょうか?
2点になって恐縮ですが,よろしくお願いします。
ご希望の体裁の場合に\subsectionや\subsubsectionを使うのは得策だとは思われないのですが,ひとまずご質問に答えるとしますと,以下のような感じでしょうか:
------------------------------------------------------------
\documentclass{jarticle}
\usepackage{plext}
%\renewcommand{thesection}{第\kansuji\arabic{section}問}
\renewcommand{\thesection}{第\Kanji{section}問}
%\renewcommand{thesubsection}{\arabic{section}.}
\renewcommand{\thesubsection}{\arabic{subsection}.}
\renewcommand{\thesubsubsection}{(\alph{subsubsection})}
\makeatletter
\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
{1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}%
% {.5\Cvs \@plus.3\Cvs}%
{-.5zw}%
% {\reset@font\large\bfseries}}
{\reset@font\normalsize\bfseries}}
\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}%
{1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}%
% {.5\Cvs \@plus.3\Cvs}%
{-.5zw}%
{\reset@font\normalsize\bfseries}}
%\def\@seccntformat#1{\csname the#1\endcsname\quad}
\def\@seccntformat#1{\csname the#1\endcsname}
\makeatother
\begin{document}
\section{}
あいうえお
\subsection{}
かきくけこ
\subsubsection{}
さしすせそ
\subsubsection{}
たちつてと
\subsection{}
\subsubsection{}
\subsubsection{}
\end{document}
------------------------------------------------------------
[1] \section, \subsection, \subsubsectionの後で改行されるのは,\@startsectionの第5引数が正だからです.
[2] 何もしなくとも,普通はカウンタsubsubsectionはカウンタsubsectionがインクリメントされるとクリアされます(\newcounter{subsubsection}[subsection]と定義されているので).
いずれにせよ,\subsection等を使うよりも,enumerate環境や類似のパッケージを使ったほうが良いように思われます.
------------------------------------------------------------
\documentclass{jarticle}
\usepackage{plext}
%\renewcommand{thesection}{第\kansuji\arabic{section}問}
\renewcommand{\thesection}{第\Kanji{section}問}
%\renewcommand{thesubsection}{\arabic{section}.}
\renewcommand{\thesubsection}{\arabic{subsection}.}
\renewcommand{\thesubsubsection}{(\alph{subsubsection})}
\makeatletter
\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
{1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}%
% {.5\Cvs \@plus.3\Cvs}%
{-.5zw}%
% {\reset@font\large\bfseries}}
{\reset@font\normalsize\bfseries}}
\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}%
{1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}%
% {.5\Cvs \@plus.3\Cvs}%
{-.5zw}%
{\reset@font\normalsize\bfseries}}
%\def\@seccntformat#1{\csname the#1\endcsname\quad}
\def\@seccntformat#1{\csname the#1\endcsname}
\makeatother
\begin{document}
\section{}
あいうえお
\subsection{}
かきくけこ
\subsubsection{}
さしすせそ
\subsubsection{}
たちつてと
\subsection{}
\subsubsection{}
\subsubsection{}
\end{document}
------------------------------------------------------------
[1] \section, \subsection, \subsubsectionの後で改行されるのは,\@startsectionの第5引数が正だからです.
[2] 何もしなくとも,普通はカウンタsubsubsectionはカウンタsubsectionがインクリメントされるとクリアされます(\newcounter{subsubsection}[subsection]と定義されているので).
いずれにせよ,\subsection等を使うよりも,enumerate環境や類似のパッケージを使ったほうが良いように思われます.
上の2014年01月19日(日曜日)05:44の匿名です.
enumitemパッケージやeasylistパッケージを見てみたのですが,箇条書きにおいて,
[1] ラベルのみを太字にする
[2] ラベルは階層に関係なく左端に寄せる
という条件について,enumitemでは [1] がうまくいき,easylistでは [2] がうまくいきましたが,両方を満たすようには,私にはできませんでした.あとはお詳しい方にお任せいたします.
なお,
>\setlengthで\itemindentを弄ってみましたが何も変わりませんでした。
とのことですが,\itemindentの調整は,list環境の定義時でないと無理なのではないかと思います.
enumitemパッケージやeasylistパッケージを見てみたのですが,箇条書きにおいて,
[1] ラベルのみを太字にする
[2] ラベルは階層に関係なく左端に寄せる
という条件について,enumitemでは [1] がうまくいき,easylistでは [2] がうまくいきましたが,両方を満たすようには,私にはできませんでした.あとはお詳しい方にお任せいたします.
なお,
>\setlengthで\itemindentを弄ってみましたが何も変わりませんでした。
とのことですが,\itemindentの調整は,list環境の定義時でないと無理なのではないかと思います.
直接list環境を使ってみました:
\documentclass{jarticle}
\usepackage{plext}
\newcounter{num_i}
\newcounter{num_a}[num_i]
\newenvironment{num_i}
{\list{\textbf{\arabic{num_i}.}}
{\usecounter{num_i}
\setlength{\labelwidth}{2zw}
\setlength{\labelsep}{0zw}
\setlength{\leftmargin}{\labelwidth}
\renewcommand{\makelabel}[1]{\makebox[\labelwidth][l]{##1}}
}}
{\endlist}
\newenvironment{num_a}
{\list{\textbf{(\alph{num_a})}}
{\usecounter{num_a}
\setlength{\labelwidth}{2zw}
\setlength{\labelsep}{0zw}
\setlength{\leftmargin}{0pt}
\renewcommand{\makelabel}[1]{\makebox[\labelwidth][l]{##1}}
}}
{\endlist}
\newcommand{\aiueo}{あいうえおかきくけこさしすせそたちつてとなにぬねの
はひふへほまみむめもやゆよらりるれろわをん\par}
\renewcommand{\thesection}{第\Kanji{section}問}
\begin{document}
\section{}
\aiueo
\begin{num_i}
\item \aiueo
\item \aiueo
\begin{num_a}
\item \aiueo
\item \aiueo
\end{num_a}
\item \aiueo
\begin{num_a}
\item \aiueo
\end{num_a}
\end{num_i}
\aiueo
\end{document}
\documentclass{jarticle}
\usepackage{plext}
\newcounter{num_i}
\newcounter{num_a}[num_i]
\newenvironment{num_i}
{\list{\textbf{\arabic{num_i}.}}
{\usecounter{num_i}
\setlength{\labelwidth}{2zw}
\setlength{\labelsep}{0zw}
\setlength{\leftmargin}{\labelwidth}
\renewcommand{\makelabel}[1]{\makebox[\labelwidth][l]{##1}}
}}
{\endlist}
\newenvironment{num_a}
{\list{\textbf{(\alph{num_a})}}
{\usecounter{num_a}
\setlength{\labelwidth}{2zw}
\setlength{\labelsep}{0zw}
\setlength{\leftmargin}{0pt}
\renewcommand{\makelabel}[1]{\makebox[\labelwidth][l]{##1}}
}}
{\endlist}
\newcommand{\aiueo}{あいうえおかきくけこさしすせそたちつてとなにぬねの
はひふへほまみむめもやゆよらりるれろわをん\par}
\renewcommand{\thesection}{第\Kanji{section}問}
\begin{document}
\section{}
\aiueo
\begin{num_i}
\item \aiueo
\item \aiueo
\begin{num_a}
\item \aiueo
\item \aiueo
\end{num_a}
\item \aiueo
\begin{num_a}
\item \aiueo
\end{num_a}
\end{num_i}
\aiueo
\end{document}
既にレポートはご提出されてしまったかも知れませんが,若干の改善(?)を:
・カウンタを使うのをやめる
・書式設定は\listの第一引数ではなく\makelabelで行う
------------------------------------------------------------
\documentclass{jarticle}
\newenvironment{answer}
{\list{}
{\setlength{\labelwidth}{2zw}
\setlength{\labelsep}{0zw}
\setlength{\leftmargin}{\labelwidth}
\renewcommand{\makelabel}[1]{\makebox[\labelwidth][l]{\textbf{##1}}}
}}
{\endlist}
\begin{document}
\begin{answer}
\item[1.]
\item[(a)]
\item[(b)]
\item[2.]
\item[(a)]
\item[(b)]
\end{answer}
\end{document}
------------------------------------------------------------
description環境の場合のように\itemの引数に“1.”や“(a)”を手入力するようにしてみました.第二階層の\listもなくしました.
\sectionや\itemにカウンタを仕込むのは,\sectionや\itemの順番を後から入れ替えても正しくナンバリングされるため(著者がそれを意識しなくても済むため)なのでしょうが,今回のような場合ですと,これでは当該\subsubsection{}なり\itemなりが問の何番に対応しているのかが原稿上では分からなくなってしまいます.
なので,一見面倒そうに見えても,番号は手入力をしたほうが使い勝手が良いのではないかと思い直しました.
(結局は,わざわざ環境を定義する必要もなかったかも知れません・・・)
・カウンタを使うのをやめる
・書式設定は\listの第一引数ではなく\makelabelで行う
------------------------------------------------------------
\documentclass{jarticle}
\newenvironment{answer}
{\list{}
{\setlength{\labelwidth}{2zw}
\setlength{\labelsep}{0zw}
\setlength{\leftmargin}{\labelwidth}
\renewcommand{\makelabel}[1]{\makebox[\labelwidth][l]{\textbf{##1}}}
}}
{\endlist}
\begin{document}
\begin{answer}
\item[1.]
\item[(a)]
\item[(b)]
\item[2.]
\item[(a)]
\item[(b)]
\end{answer}
\end{document}
------------------------------------------------------------
description環境の場合のように\itemの引数に“1.”や“(a)”を手入力するようにしてみました.第二階層の\listもなくしました.
\sectionや\itemにカウンタを仕込むのは,\sectionや\itemの順番を後から入れ替えても正しくナンバリングされるため(著者がそれを意識しなくても済むため)なのでしょうが,今回のような場合ですと,これでは当該\subsubsection{}なり\itemなりが問の何番に対応しているのかが原稿上では分からなくなってしまいます.
なので,一見面倒そうに見えても,番号は手入力をしたほうが使い勝手が良いのではないかと思い直しました.
(結局は,わざわざ環境を定義する必要もなかったかも知れません・・・)