# 2503회 추가 문제 처리방법

## 체크 할 변경 문항

* 문제1
  * 쪽 번호 매기기 (A,B,C 순으로) (28번)
  * 가운데 아래 (29번)
    * ***문제1, 2 모두적용*** 채점기준 변동으로 인해  
    기존 1페이지(SECTION[1]태그) 기준 제외

    > ~~//SECTION[1]~~//PAGENUM/@Pos

## 추가 문항

* 문제1
  * 문단 첫글자 장식
    * 8번 : 모양 (2줄)
      * 줄 간격 160%일때 높이, 너비 2600  
    줄 간격 180%일때 높이, 너비 2800  
    그 사이의 값 일 경우 정답처리

      ```xpath
      boolean(//RECTANGLE[.//CHAR[text()='지']][.//SIZE[(@Height >= 2600 and @Height <= 2800) and (@Width >= 2600 and @Width <= 2800)]])
      ```

    * 9번 : 글씨체 (궁서체)
      * 기존 글씨체 찾는 xpath구문과 동일

      ```xpath
      //FONTFACE[@Lang="Hangul"]/FONT[@Id=//CHARSHAPE[@Id=//TEXT[CHAR[text()='지']]/@CharShape]/FONTID/@Hangul]/@Name
      ```

    * 10번 : 색상(RGB:105,155,55)
      * '지'를 포함하는 RECTANGLE요소의 자손 WINDOWBRUSH태그의 @FaceColor속성

      ```xpath
      //RECTANGLE[.//CHAR[text()='지']]//WINDOWBRUSH/@FaceColor
      ```

    * 11번 : 본문과의 간격 : 3.0mm
      * '지'를 포함하는 RECTANGLE요소의 자손 OUTSIDEMARGIN태그의 @Right속성
        * ***한글문서에서 본문과의 간격 항목을 변경하면 @Right속성만 변함***

      ```xpath
      //RECTANGLE[.//CHAR[text()='지']]//OUTSIDEMARGIN/@Right
      ```

  * 문제 1의 줄간격 180% 설정 (30번)
    * 1페이지에 속한 모든 문단의 줄간격이 180이 아닌것이 하나도 없을 경우

    ```xpath
    not(//PARASHAPE[@Id=//SECTION[1]/P/@ParaShape]/PARAMARGIN[@LineSpacing!='180'])
    ```

* 문제2

  * 각주 번호모양 (28번)
    * 1,2,3 : Digit
    * ①,②,③ : CircledDigit
    * I,II,III : RomanCapital
    * i,ii,iii : RomanSmall
      * 항목이 많아 채점 시 파악

      ```xpath
      //P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type
      ```

  * 영단어 Hybrid (29번)
    * 문서 전체 CHAR태그 내 Hybrid 단어가 들어가 있으면 정답
    * "영단어 미입력, 대소문자/오타 시 전체 감점" 처리방법
      * ***오타 체크 시 Hybrid (해당 문항의 영단어)를 제외 필요***

    ```xpath
    boolean(//CHAR[contains(text(),'Hybrid')])
    ```

  * 블록 계산식 (44번)
    * 표 **마지막 행/열** 과 **마지막-1 행/열**의 자손 FIELDBEGIN태그의 @Command속성 확인
    * @Command속성이 '=SUM'으로 시작하고 '결과값'으로 끝나는지 확인
      * 계산식을 입력하는 방법에 따라 *계산식*,*블록계산식*,*자동계산식*으로 다양하게 입력가능하고  
      xml 파일에도 속성값이 바뀌는 경우가 있다

    ```xpath
    boolean(//TABLE[1]/ROW[last()]/CELL[last()]//FIELDBEGIN[starts-with(@Command, '=SUM') and substring(@Command, string-length(@Command) - 2) = '190'] and //TABLE[1]/ROW[last()]/CELL[last()-1]//FIELDBEGIN[starts-with(@Command, '=SUM') and substring(@Command, string-length(@Command) - 2) = '290'])
    ```

  * **값 축** 주 눈금선 (46번)
    * 차트의 값 축(보통 세로축) 눈금선 옵션이 부여되었는지 확인하는 문항인데  
      차트 생성하면 기본적으로 부여되어 있어서 따로 항목을 제거하지 않는 이상 정답일 듯하다

    ```xpath
    //c:valAx/c:majorTickMark/@val
    ```

  * 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용) (49번)
    * 계산식 행의 제목(마지막 행 1열 "합계")이 차트 데이터 항목에 포함되어 있지 않으면 정답처리
    * 혹여나 불필요한 '범례' 속성 제외

    ```xpath
    not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계'])
    ```
